官方文档: https://docs.liquibase.com/workflows/liquibase-community/setup-gitlab-cicd.html
//第三方免费的Gitlab且支持自动化工作流 == 自行注册账号测试
https://jihulab.com/
update_schemas.sh
#!/bin/bash
LBSCHEMANAMES="${1:-"lrc_blog1 lrc_blog2 lrc_blog3"}"
for LBSCHEMA in $LBSCHEMANAMES
do
/liquibase/liquibase --classpath=./lib/mysql-connector-java-8.0.25.jar --changeLogFile=./parent-changelog.xml --username=root --password=2329073340Lin --url="jdbc:mysql://数据库IP:3306/lrc_blog1?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=UTC" --contexts=${LBSCHEMA} --defaultSchemaName=${LBSCHEMA} status --verbose
/liquibase/liquibase --classpath=./lib/mysql-connector-java-8.0.25.jar --changeLogFile=./parent-changelog.xml --username=root --password=2329073340Lin --url="jdbc:mysql://数据库IP:3306/lrc_blog1?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=UTC" --contexts=${LBSCHEMA} --defaultSchemaName=${LBSCHEMA} update
/liquibase/liquibase --classpath=./lib/mysql-connector-java-8.0.25.jar --changeLogFile=./parent-changelog.xml --username=root --password=2329073340Lin --url="jdbc:mysql://数据库IP:3306/lrc_blog1?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&serverTimezone=UTC" --contexts=${LBSCHEMA} --defaultSchemaName=${LBSCHEMA} history
done
.gitlab-ci.yml
image: liquibase/liquibase:latest
build-job:
stage: build
script:
- echo "你好,$GITLAB_USER_LOGIN,数据库结构开始部署更新"
- ./update_schemas.sh
- tar -czvf ${CI_PIPELINE_IID}_LB_artifact.tar.gz changelog
- echo "打包产物"
artifacts:
paths:
- ${CI_PIPELINE_IID}_LB_artifact.tar.gz
expire_in: 1 week
test-job1:
stage: test
script:
- echo "此任务正在测试中"
test-job2:
stage: test
script:
- echo "这个工作测试了一些东西,但是比test-job1需要更多的时间"
- echo "echo命令执行完毕后,再执行sleep命令20秒"
- echo "模拟的测试运行时间比test-job1长20秒"
- sleep 20
deploy-prod:
stage: deploy
script:
- echo "该作业从$CI_COMMIT_BRANCH分支部署一些内容"
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_39651356/article/details/125863631
内容来源于网络,如有侵权,请联系作者删除!