123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- name: Test two 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-two-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 migrations up to v2.0.0
- run: './bin/rails db:migrate VERSION=20171010025614'
- - name: Populate database with test data
- run: './bin/rails tests:migrations:populate_v2'
- - name: Run pre-deployment migrations up to v2.4.0
- run: './bin/rails db:migrate VERSION=20180514140000'
- env:
- SKIP_POST_DEPLOYMENT_MIGRATIONS: true
- - name: Populate database with test data
- run: './bin/rails tests:migrations:populate_v2_4'
- - name: Run migrations up to v2.4.3
- run: './bin/rails db:migrate VERSION=20180707154237'
- env:
- SKIP_POST_DEPLOYMENT_MIGRATIONS: true
- - name: Populate database with test data
- run: './bin/rails tests:migrations:populate_v2_4_3'
- - name: Run all remaining pre-deployment migrations
- run: './bin/rails db:migrate'
- env:
- SKIP_POST_DEPLOYMENT_MIGRATIONS: true
- - name: Run all post-deployment migrations
- run: './bin/rails db:migrate'
- - name: Check migration result
- run: './bin/rails tests:migrations:check_database'
|