diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..df5a023 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,33 @@ + +version: 2 +jobs: + build: + machine: + docker: + - image: alpine:3.4 + environment: + DATABASE_URL: postgres://127.0.0.1:5432 + RAILS_ENV: test + - image: circleci/postgres:9.6.2-alpine + environment: + POSTGRES_USER: root + POSTGRES_DB: circle-test_test + - image: redis + steps: + - checkout + - run: mkdir -p /tmp/artifacts + - run: + name: build_image + command: make build + - run: + name: run specs + command: | + make specs + - run: + name: rubocop + command: | + make rubocop + - run: + name: brakeman + command: | + make brakeman diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0258bdf --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM ruby:3.0.0 + +WORKDIR /var/gem + +COPY . . + +RUN gem install bundler:2.3.14 + +RUN bundle check > /dev/null 2>&1 || bundle install -j4 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3d9e8ae --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +build: + docker-compose build + +start: + docker-compose up + +specs: + docker-compose run --entrypoint ./scripts/specs web + +bash: + docker-compose exec web bash + +console: + docker-compose exec web bundle exec rails c + +brakeman: + docker-compose run --entrypoint ./scripts/brakeman web + +rubocop: + docker-compose run --entrypoint rubocop web diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..348d3d6 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,18 @@ +version: '2' + +services: + web: + build: + context: . + volumes: + - .:/var/gem + depends_on: + - db + db: + image: postgres:9.6.2-alpine + ports: + - '5432' + volumes: + - postgres96:/var/lib/postgresql/data +volumes: + postgres96: diff --git a/scripts/brakeman b/scripts/brakeman new file mode 100755 index 0000000..050c9c9 --- /dev/null +++ b/scripts/brakeman @@ -0,0 +1,5 @@ +#!/bin/bash + +brakeman --no-exit-on-warn --no-exit-on-error --no-pager --path components/api +brakeman --no-exit-on-warn --no-exit-on-error --no-pager --path components/chat +brakeman --no-exit-on-warn --no-exit-on-error --no-pager --path components/authentication diff --git a/scripts/specs b/scripts/specs new file mode 100755 index 0000000..31e7dd3 --- /dev/null +++ b/scripts/specs @@ -0,0 +1,5 @@ +#!/bin/bash + +bundle install +bundle exec rake db:create db:migrate RAILS_ENV=test +bundle exec rspec .