name: Build on: workflow_dispatch: push: pull_request: env: DISABLE_KNAPSACK: true TIMEZONE: UTC jobs: test-models: runs-on: ubuntu-18.04 services: postgres: image: postgres:10 ports: ["5432:5432"] options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 env: POSTGRES_DB: open_food_network_test POSTGRES_USER: ofn POSTGRES_PASSWORD: f00d steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - uses: actions/setup-node@v2 with: node-version: '14.15.5' - name: Install JS dependencies run: yarn install --frozen-lockfile - name: Set up application.yml run: cp config/application.yml.example config/application.yml - name: Set up database run: | bundle exec rake db:create RAILS_ENV=test bundle exec rake db:schema:load RAILS_ENV=test - name: Run tests run: bundle exec rspec spec/models test-admin-features: runs-on: ubuntu-18.04 services: postgres: image: postgres:10 ports: ["5432:5432"] options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 env: POSTGRES_DB: open_food_network_test POSTGRES_USER: ofn POSTGRES_PASSWORD: f00d steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - uses: actions/setup-node@v2 with: node-version: '14.15.5' - name: Install JS dependencies run: yarn install --frozen-lockfile - name: Set up application.yml run: cp config/application.yml.example config/application.yml - name: Set up database run: | bundle exec rake db:create RAILS_ENV=test bundle exec rake db:schema:load RAILS_ENV=test - name: Run admin feature tests run: bundle exec rspec --profile -- spec/features/admin/*_spec.rb test-admin-features-folders: runs-on: ubuntu-18.04 services: postgres: image: postgres:10 ports: ["5432:5432"] options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 env: POSTGRES_DB: open_food_network_test POSTGRES_USER: ofn POSTGRES_PASSWORD: f00d steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - uses: actions/setup-node@v2 with: node-version: '14.15.5' - name: Install JS dependencies run: yarn install --frozen-lockfile - name: Set up application.yml run: cp config/application.yml.example config/application.yml - name: Set up database run: | bundle exec rake db:create RAILS_ENV=test bundle exec rake db:schema:load RAILS_ENV=test - name: Run admin feature tests run: bundle exec rspec --profile --pattern "spec/features/admin/*/*_spec.rb" test-consumer-features: runs-on: ubuntu-18.04 services: postgres: image: postgres:10 ports: ["5432:5432"] options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 env: POSTGRES_DB: open_food_network_test POSTGRES_USER: ofn POSTGRES_PASSWORD: f00d steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - uses: actions/setup-node@v2 with: node-version: '14.15.5' - name: Install JS dependencies run: yarn install --frozen-lockfile - name: Set up application.yml run: cp config/application.yml.example config/application.yml - name: Set up database run: | bundle exec rake db:create RAILS_ENV=test bundle exec rake db:schema:load RAILS_ENV=test - name: Run consumer feature tests run: bundle exec rspec --profile -- spec/features/consumer test-controllers: runs-on: ubuntu-18.04 services: postgres: image: postgres:10 ports: ["5432:5432"] options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 env: POSTGRES_DB: open_food_network_test POSTGRES_USER: ofn POSTGRES_PASSWORD: f00d steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - uses: actions/setup-node@v2 with: node-version: '14.15.5' - name: Install JS dependencies run: yarn install --frozen-lockfile - name: Set up application.yml run: cp config/application.yml.example config/application.yml - name: Set up database run: | bundle exec rake db:create RAILS_ENV=test bundle exec rake db:schema:load RAILS_ENV=test - name: Run tests run: bundle exec rspec spec/controllers test-other: runs-on: ubuntu-18.04 services: postgres: image: postgres:10 ports: ["5432:5432"] options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 env: POSTGRES_DB: open_food_network_test POSTGRES_USER: ofn POSTGRES_PASSWORD: f00d steps: - uses: actions/checkout@v2 - name: Set up Ruby uses: ruby/setup-ruby@v1 with: bundler-cache: true # runs 'bundle install' and caches installed gems automatically - uses: actions/setup-node@v2 with: node-version: '14.15.5' - name: Install JS dependencies run: yarn install --frozen-lockfile - name: Set up application.yml run: cp config/application.yml.example config/application.yml - name: Set up database run: | bundle exec rake db:create RAILS_ENV=test bundle exec rake db:schema:load RAILS_ENV=test - name: Run JS tests run: RAILS_ENV=test bundle exec rake karma:run - name: Run all other tests run: | bundle exec rspec \ spec/helpers/ \ spec/initializers/ \ spec/jobs/ \ spec/lib/ \ spec/mailers/ \ spec/queries/ \ spec/requests/ \ spec/serializers/ \ spec/services/ \ spec/validators/ \ spec/views - name: Run engines tests run: bundle exec rake ofn:specs:engines:rspec