Example GitHub Action Scripts
Published 09 May 2024
Migrate
The following example uses Flyway on Docker and migrates pending migrations to a target database whose connection information is stored as a secret. To access Flyway Teams or Flyway Enterprise features a personal access token and email address need to be provided. These should also be provided as secrets.
- name: 'Flyway Migrate'
- on:
- push:
- branches:
- - main
- jobs:
- deploy:
- runs-on: ubuntu-latest
- steps:
- - name: Run Flyway Migrate
- uses: docker://redgate/flyway:11
- with:
- args: >-
- migrate
- -workingDirectory="/github/workspace/"
- -url="${{ secrets.FLYWAY_URL }}"
- -user="${{ secrets.FLYWAY_USER }}"
- -password="${{ secrets.FLYWAY_PASSWORD }}"
- env:
- FLYWAY_EMAIL: ${{ secrets.FLYWAY_EMAIL }}
- FLYWAY_TOKEN: ${{ secrets.FLYWAY_TOKEN }}
Change and Drift Reports
The following example uses Flyway on Docker and generates a change and drift report. Your target database connection information is stored as a secret and a build environment has been defined in the project's settings. To access Flyway Teams or Flyway Enterprise features a personal access token and email address need to be provided. These should also be provided as secrets.
- name: 'Flyway Report'
- on: pull_request
- jobs:
- report:
- runs-on: ubuntu-latest
- steps:
- - name: Run Flyway Report
- uses: docker://redgate/flyway:11
- with:
- args: >-
- check -changes -drift
- -workingDirectory="/github/workspace/"
- -url="${{ secrets.FLYWAY_URL }}"
- -user="${{ secrets.FLYWAY_USER }}"
- -password="${{ secrets.FLYWAY_PASSWORD }}"
- -check.buildEnvironment="build"
- env:
- FLYWAY_EMAIL: ${{ secrets.FLYWAY_EMAIL }}
- FLYWAY_TOKEN: ${{ secrets.FLYWAY_TOKEN }}