Example CI/CD Pipelines
Published 11 October 2021
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.