diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml new file mode 100644 index 00000000..9bfae78a --- /dev/null +++ b/.github/workflows/ruby.yml @@ -0,0 +1,54 @@ +name: TicketBooth CI +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + +jobs: + # Label of the container job + container-job: + # Containers must run in Linux based operating systems + runs-on: ubuntu-latest + # Docker Hub image that `container-job` executes in + container: node:10.18-jessie + + # Service containers to run with `container-job` + services: + postgres: + # Docker Hub image + image: postgres + # Provide the password for postgres + env: + POSTGRES_PASSWORD: postgres + # Set health checks to wait until postgres has started + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + redis: + # Docker Hub image + image: redis + # Set health checks to wait until redis has started + options: >- + --health-cmd "redis-cli ping" + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + steps: + - uses: niden/actions-memcached@v7 + - uses: actions/checkout@v4 + - uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1 + with: + ruby-version: '3.2.2' # Not needed with a .ruby-version file + - run: bundle install -j 12 + - run: | + bin/rails db:create + bin/rails db:migrate + bin/rails db:test:prepare + - run: bundle exec rspec --format documentation + - run: bundle exec rubocop +