-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 8b43bcd
Showing
68 changed files
with
1,266 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# See https://help.github.com/articles/ignoring-files for more about ignoring files. | ||
# | ||
# If you find yourself ignoring temporary files generated by your text editor | ||
# or operating system, you probably want to add a global ignore instead: | ||
# git config --global core.excludesfile '~/.gitignore_global' | ||
|
||
# Ignore bundler config. | ||
/.bundle | ||
|
||
# Ignore all logfiles and tempfiles. | ||
/log/* | ||
/tmp/* | ||
!/log/.keep | ||
!/tmp/.keep | ||
|
||
# Ignore uploaded files in development | ||
/storage/* | ||
!/storage/.keep | ||
|
||
/node_modules | ||
/yarn-error.log | ||
|
||
/public/assets | ||
.byebug_history | ||
|
||
# Ignore master key for decrypting credentials and more. | ||
/config/master.key | ||
|
||
# Ignore dotenv files: | ||
**/*.env | ||
!**/*example*.env | ||
|
||
# Ignore RSpec state: | ||
/spec/examples.txt | ||
|
||
# Ignore Test Coverage output: | ||
/coverage | ||
|
||
.local | ||
|
||
# Ignore container's home directory artifacts; | ||
/.cache | ||
/.gem | ||
/.pki | ||
/.yarnrc | ||
.vscode/settings.json | ||
|
||
# Ignore Codeclimate stuff | ||
.rubocop.yml | ||
.rubocop-rails.yml | ||
.reek.yml | ||
.scss-lint.yml | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
ruby-2.6.2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
source 'https://rubygems.org' | ||
git_source(:github) { |repo| "https://github.com/#{repo}.git" } | ||
|
||
ruby '2.6.2' | ||
|
||
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' | ||
gem 'rails', '~> 5.2.3' | ||
# Use postgresql as the database for Active Record | ||
gem 'pg', '>= 0.18', '< 2.0' | ||
# Use Puma as the app server | ||
gem 'puma', '~> 3.11' | ||
# Use SCSS for stylesheets | ||
gem 'sass-rails', '~> 5.0' | ||
# Use Uglifier as compressor for JavaScript assets | ||
gem 'uglifier', '>= 1.3.0' | ||
# See https://github.com/rails/execjs#readme for more supported runtimes | ||
# gem 'mini_racer', platforms: :ruby | ||
|
||
# Use CoffeeScript for .coffee assets and views | ||
gem 'coffee-rails', '~> 4.2' | ||
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder | ||
gem 'jbuilder', '~> 2.5' | ||
# Use Redis adapter to run Action Cable in production | ||
# gem 'redis', '~> 4.0' | ||
# Use ActiveModel has_secure_password | ||
# gem 'bcrypt', '~> 3.1.7' | ||
|
||
# Use ActiveStorage variant | ||
# gem 'mini_magick', '~> 4.8' | ||
|
||
# Use Capistrano for deployment | ||
# gem 'capistrano-rails', group: :development | ||
|
||
# Reduces boot times through caching; required in config/boot.rb | ||
gem 'bootsnap', '>= 1.1.0', require: false | ||
|
||
group :development, :test do | ||
# Call 'byebug' anywhere in the code to stop execution and get a debugger console | ||
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] | ||
end | ||
|
||
group :development do | ||
# Access an interactive console on exception pages or by calling 'console' anywhere in the code. | ||
gem 'web-console', '>= 3.3.0' | ||
gem 'listen', '>= 3.0.5', '< 3.2' | ||
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring | ||
gem 'spring' | ||
gem 'spring-watcher-listen', '~> 2.0.0' | ||
end | ||
|
||
|
||
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem | ||
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,238 @@ | ||
# TESTAPP | ||
|
||
-- PLEASE ADD A DESCRIPTION -- | ||
|
||
## Table of contents | ||
|
||
* [Client Details](#client-details) | ||
* [Environment URLS](#environment-urls) | ||
* [Da Team](#team) | ||
* [Management resources](#management-resources) | ||
* [Setup the project](#setup-the-project) | ||
* [Running the stack for development](#running-the-stack-for-development) | ||
* [Stop the project](#stop-the-project) | ||
* [Restoring the database](#restoring-the-database) | ||
* [Debugging](#debugging) | ||
* [Running specs](#running-specs) | ||
* [Contributing](CONTRIBUTING.md) | ||
* [PR Template](PULL_REQUEST_TEMPLATE.md) | ||
* [Analyzing code for issues](#analyzing-code) | ||
|
||
### Client Details | ||
|
||
| Name | Email | Role | Slack | | ||
| ------------- | ------------- | ------------- | ------------- | | ||
| Client name | [email protected] | CEO | @client | | ||
| Client name | [email protected] | CEO | @client | | ||
| Client name | [email protected] | CEO | @client | | ||
|
||
|
||
### Environment URLS | ||
|
||
* **Production** - [https://TESTAPP-production.herokuapp.com](https://TESTAPP-production.herokuapp.com) | ||
* **Staging** - [https://TESTAPP-staging.herokuapp.com](https://TESTAPP-staging.herokuapp.com) | ||
|
||
### Da team | ||
|
||
| Name | Email | Role | | ||
| ------------- | ------------- | ------------- | | ||
| FirstName LastName | [email protected] | Development | | ||
| FirstName LastName | [email protected] | Development | | ||
|
||
### Management tools | ||
|
||
You should ask for access to this tools if you don't have it already: | ||
|
||
* [Github repo](https://github.com/IcaliaLabs/TESTAPP) | ||
* [Pivotal tracker project](https://www.pivotaltracker.com/) | ||
* [Client Slack](https://change-me.slack.com/) | ||
* [Heroku](https://heroku.com) | ||
|
||
## Development | ||
|
||
### Setup the project | ||
|
||
You'll definitely want to install [`plis`](https://github.com/IcaliaLabs/plis), as in this case will | ||
let you bring up the containers needed for development. This is done by running the command | ||
`plis start`, which will start up the services in the `development` group (i.e. rails | ||
and sidekiq), along with their dependencies (posgres, redis, etc). | ||
|
||
Alternatively, you can use the more verbose `docker-compose` like you usually would. Both | ||
methods of starting containers will be shown, but keep in mind out of | ||
every plis/docker-compose pair of commands you only need to choose one. | ||
|
||
After installing please you can follow this simple steps: | ||
|
||
1. Clone this repository into your local machine | ||
|
||
```bash | ||
$ git clone [email protected]:IcaliaLabs/testapp.git | ||
|
||
``` | ||
2. Copy the `example.env` file to `.env` in the project's source directory. | ||
|
||
```bash | ||
$ cd testapp | ||
$ cp example.env .env | ||
``` | ||
|
||
The container can be started with both of these files being empty, but they must exist. | ||
Talk to any team member to get the contents of each file so the | ||
application works correctly. | ||
|
||
3. Run the web service in bash mode to get inside the container by using | ||
the following command: | ||
|
||
plis: | ||
|
||
```bash | ||
$ plis run web bash | ||
``` | ||
|
||
docker-compose: | ||
|
||
```bash | ||
$ docker-compose run web bash | ||
``` | ||
|
||
4. Inside the container you need to migrate the database: | ||
|
||
``` | ||
% rails db:migrate | ||
``` | ||
|
||
### Running the stack for Development | ||
|
||
1. Fire up a terminal and run: | ||
|
||
plis: | ||
|
||
```bash | ||
$ plis start | ||
``` | ||
|
||
docker-compose: | ||
|
||
```bash | ||
$ docker-compose up | ||
``` | ||
|
||
That command will lift every service TESTAPP needs, such as the `rails server`, `postgres`, and `redis`. | ||
|
||
|
||
It may take a while before you see anything, you can follow the logs of the containers with: | ||
|
||
``` | ||
$ docker-compose logs | ||
``` | ||
|
||
Once you see an output like this: | ||
|
||
``` | ||
web_1 | => Booting Puma | ||
web_1 | => Rails 5.1.3 application starting in development on http://0.0.0.0:3000 | ||
web_1 | => Run `rails server -h` for more startup options | ||
web_1 | => Ctrl-C to shutdown server | ||
web_1 | Listening on 0.0.0.0:3000, CTRL+C to stop | ||
``` | ||
|
||
This means the project is up and running. | ||
|
||
### Stop the project | ||
|
||
In order to stop TESTAPP as a whole you can run: | ||
|
||
``` | ||
% plis stop | ||
``` | ||
|
||
This will stop every container, but if you need to stop one in particular, you can specify it like: | ||
|
||
``` | ||
% plis stop web | ||
``` | ||
|
||
`web` is the service name located on the `docker-compose.yml` file, there you can see the services name and stop each of them if you need to. | ||
|
||
### Restoring the database | ||
|
||
You probably won't be working with a blank database, so once you are able to run TESTAPP you can restore the database, to do it, first stop all services: | ||
|
||
``` | ||
% plis stop | ||
``` | ||
|
||
Then just lift up the `db` service: | ||
|
||
``` | ||
% plis start db | ||
``` | ||
|
||
The next step is to login to the database container: | ||
|
||
``` | ||
% docker exec -ti testapp_db_1 bash | ||
``` | ||
|
||
This will open up a bash session in to the database container. | ||
|
||
Up to this point we just need to download a database dump and copy under `TESTAPP/backups/`, this directory is mounted on the container, so you will be able to restore it with: | ||
|
||
``` | ||
root@a3f695b39869:/# bin/restoredb testapp_dev db/backups/<databaseDump> | ||
``` | ||
|
||
If you want to see how this script works, you can find it under `bin/restoredb` | ||
|
||
Once the script finishes its execution you can just exit the session from the container and lift the other services: | ||
|
||
``` | ||
% plis start | ||
``` | ||
|
||
### Debugging | ||
|
||
We know you love to use `debugger`, and who doesn't, and with Docker is a bit tricky, but don't worry, we have you covered. | ||
|
||
Just run this line at the terminal and you can start debugging like a pro: | ||
|
||
``` | ||
% plis attach web | ||
``` | ||
|
||
This will display the logs from the rails app, as well as give you access to stop the execution on the debugging point as you would expect. | ||
|
||
**Take note that if you kill this process you will kill the web service, and you will probably need to lift it up again.** | ||
|
||
### Running specs | ||
|
||
To run specs, you can do: | ||
|
||
``` | ||
$ plis run test rspec | ||
``` | ||
|
||
Or for a specific file: | ||
|
||
``` | ||
$ plis run test rspec spec/models/user_spec.rb | ||
``` | ||
|
||
### Analyzing code for issues | ||
|
||
We use codeclimate to analyze code & detect issues. Install [Codeclimate CLI](https://github.com/codeclimate/codeclimate#packages) | ||
and then run the following commands: | ||
|
||
```bash | ||
1: Fetch the codeclimate engine configurations - we continuously update them, | ||
so it is a good idea to run this command often: | ||
codeclimate prepare | ||
|
||
2: You might not have the codeclimate engines downloaded. While this is not | ||
required, doing this miht prevent you from thinking codeclimate is stuck on | ||
the `structure` and `duplication` checks, when in fact they are huge images :( | ||
codeclimate engine:install | ||
|
||
3: Finally, run codeclimate to analyze the code: | ||
codeclimate analyze | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# Add your own tasks in files placed in lib/tasks ending in .rake, | ||
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. | ||
|
||
require_relative 'config/application' | ||
|
||
Rails.application.load_tasks |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
//= link_tree ../images | ||
//= link_directory ../javascripts .js | ||
//= link_directory ../stylesheets .css |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
// This is a manifest file that'll be compiled into application.js, which will include all the files | ||
// listed below. | ||
// | ||
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, or any plugin's | ||
// vendor/assets/javascripts directory can be referenced here using a relative path. | ||
// | ||
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the | ||
// compiled file. JavaScript code in this file should be added after the last require_* statement. | ||
// | ||
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details | ||
// about supported directives. | ||
// | ||
//= require rails-ujs | ||
//= require activestorage | ||
//= require_tree . |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
// Action Cable provides the framework to deal with WebSockets in Rails. | ||
// You can generate new channels where WebSocket features live using the `rails generate channel` command. | ||
// | ||
//= require action_cable | ||
//= require_self | ||
//= require_tree ./channels | ||
|
||
(function() { | ||
this.App || (this.App = {}); | ||
|
||
App.cable = ActionCable.createConsumer(); | ||
|
||
}).call(this); |
Empty file.
Oops, something went wrong.