Example GitHub Action Scripts

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}}
		    -locations="/migrations"
            -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}}
		    -locations="/migrations"
            -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 }}



Didn't find what you were looking for?