Flyway

Example CI/CD Pipelines

Deploy projects in your CI/CD systems with the Flyway command line or Docker container.  This provides the flexibility to run on any agent (windows, linux, docker) and in any CI/CD system (Jenkins, Azure DevOps, Octopus Deploy, Team City, Xebia Labs, Urban Code, and more).

There are many different ways to set up a CI/CD pipeline. One possible setup looks like this:

  • Prep - just checks out the latest code from the repository
  • Build - clean and migrate a CI database to validate a new database can be created from scratch (or you can update an existing one), the migration scripts are valid, and see if there are any code analysis issues (learn more)
  • Unit test - run tests against the CI database (Redgate sponsors the tSQLt for SQL Server and utPLSQL for Oracle open-source testing frameworks)
  • Provision Acceptance
    • Provision an Acceptance (if this is a copy of Prod, consider masking the data)
    • Generate a change report and deployment script for your Acceptance Environment
    • Update Acceptance and run tests as necessary
  • Prepare Release
    • Generate a change report and deployment script for your Production Environment
    • You could also generate a rollback script at this point
  • Approval Gate 
    • Review the change report and deployment script for your Production Environment
    • Review and/or test the rollback script
    • Approve or Deny the release
  •  Deploy to Production
    • Check for drift to make sure your Acceptance rehearsal was a good test of the release
    • Update Production

See the following examples:  


We're working on more examples at https://github.com/red-gate/Flyway-Sample-Pipelines.  Get in touch with us if your CI/CD system is not listed or you need more help.


Didn't find what you were looking for?