Using Liquibase and Docker in your CI/CD Pipeline
Many CI/CD tools allow you to deliver changes through your pipeline. Some tools control Liquibase through a plugin and others leverage the Liquibase CLI in a native deployment or a Docker container. This guide contains an example of the Travis CI configuration for running the Liquibase Docker container within your CI/CD Pipeline.
Travis CI is a continuous integration platform, which automates and manages deployments. It supports your development process by automatically building and testing code changes and providing immediate feedback on the success of the change.
Note: For more information, see the Travis CI documentation.
.travis.yml file is required for Travis CI to run your pipeline. Use the Liquibase example file, which contains attributes described in the table.
Represents the language your app uses.
Represents your operating system.
Allows to use Docker in your pipeline.
Includes global environment variables used to define fields required by Liquibase.
|before_install||Pulls the version of Liquibase Docker image that you want to use in your pipeline.|
To use Liquibase and Docker with Travis CI, you needed to:
- Ensure that you have a GitHub account.
Note: For more information on how to create a GitHub account, see Signing Up for GitHub.
Running Liquibase and Docker with Travis CI
The following steps are based on the example
.travis.yml file and an H2 database. If you want to try it with your changelog and database, you can make a pull request against liquibase-travisci-example repository with your operation, changelog, database username, password, and JDBC URL.
To run Liquibase and Docker with Travis CI:
- Fork the liquibase-travisci-example repository by selecting the Fork button at the upper-right corner of the
- Clone the
liquibase-travisci-examplerepository by running the following in the CLI:
git clone firstname.lastname@example.org:/liquibase/liquibase-travisci-example.git
- Create a new git branch for your changes by running:
git checkout -b <your_branch_name>
example/changelogs/samplechangelog.h2.sqlto add a new changeset. Replace yourname with a unique identifier.
--changeset yourname:yourname1 --rollback DROP TABLE yourname; CREATE TABLE yourname ( id int primary key, name varchar(50) not null, )
- Add, commit, and push your changes to GitHub.
git add example/changelogs/samplechangelog.h2.sql git commit -m "yourname: Adding new changeset for example" git push origin <your_branch_name>
Your commit triggers a build in Travis CI and executes Liquibase update.
Troubleshooting Issues with Liquibase and Travis CI
If your build fails due to a validation error, verify that your changeset’s
id are unique in the changelog file. If the Liquibase update fails, verify that your table name is unique in the changelog.