12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- name: Test one step migrations
- on:
- push:
- branches-ignore:
- - 'dependabot/**'
- - 'renovate/**'
- pull_request:
- jobs:
- pre_job:
- runs-on: ubuntu-latest
- outputs:
- should_skip: ${{ steps.skip_check.outputs.should_skip }}
- steps:
- - id: skip_check
- uses: fkirc/skip-duplicate-actions@v5
- with:
- paths: '["Gemfile*", ".ruby-version", "**/*.rb", ".github/workflows/test-migrations-one-step.yml", "lib/tasks/tests.rake"]'
- test:
- runs-on: ubuntu-latest
- needs: pre_job
- if: needs.pre_job.outputs.should_skip != 'true'
- strategy:
- fail-fast: false
- matrix:
- postgres:
- - 14-alpine
- - 15-alpine
- services:
- postgres:
- image: postgres:${{ matrix.postgres}}
- env:
- POSTGRES_PASSWORD: postgres
- POSTGRES_USER: postgres
- options: >-
- --health-cmd pg_isready
- --health-interval 10s
- --health-timeout 5s
- --health-retries 5
- ports:
- - 5432:5432
- redis:
- image: redis:7-alpine
- options: >-
- --health-cmd "redis-cli ping"
- --health-interval 10s
- --health-timeout 5s
- --health-retries 5
- ports:
- - 6379:6379
- env:
- CONTINUOUS_INTEGRATION: true
- DB_HOST: localhost
- DB_USER: postgres
- DB_PASS: postgres
- DISABLE_SIMPLECOV: true
- RAILS_ENV: test
- BUNDLE_CLEAN: true
- BUNDLE_FROZEN: true
- BUNDLE_WITHOUT: 'development production'
- BUNDLE_JOBS: 3
- BUNDLE_RETRY: 3
- steps:
- - uses: actions/checkout@v4
- - name: Set up Ruby environment
- uses: ./.github/actions/setup-ruby
- - name: Create database
- run: './bin/rails db:create'
- - name: Run historical migrations with data population
- run: './bin/rails tests:migrations:prepare_database'
- - name: Run all remaining migrations
- run: './bin/rails db:migrate'
- - name: Check migration result
- run: './bin/rails tests:migrations:check_database'
|