Liquibase学习 - 配合GitLab自动化部署工作流使用

x33g5p2x  于2022-07-20 转载在 其他  
字(2.0k)|赞(0)|评价(0)|浏览(649)
Gitlab Action - 自动化工作流

官方文档: https://docs.liquibase.com/workflows/liquibase-community/setup-gitlab-cicd.html

  1. //第三方免费的Gitlab且支持自动化工作流 == 自行注册账号测试
  2. https://jihulab.com/

update_schemas.sh

  1. #!/bin/bash
  2. LBSCHEMANAMES="${1:-"lrc_blog1 lrc_blog2 lrc_blog3"}"
  3. for LBSCHEMA in $LBSCHEMANAMES
  4. do
  5. /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
  6. /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
  7. /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
  8. done

.gitlab-ci.yml

  1. image: liquibase/liquibase:latest
  2. build-job:
  3. stage: build
  4. script:
  5. - echo "你好,$GITLAB_USER_LOGIN,数据库结构开始部署更新"
  6. - ./update_schemas.sh
  7. - tar -czvf ${CI_PIPELINE_IID}_LB_artifact.tar.gz changelog
  8. - echo "打包产物"
  9. artifacts:
  10. paths:
  11. - ${CI_PIPELINE_IID}_LB_artifact.tar.gz
  12. expire_in: 1 week
  13. test-job1:
  14. stage: test
  15. script:
  16. - echo "此任务正在测试中"
  17. test-job2:
  18. stage: test
  19. script:
  20. - echo "这个工作测试了一些东西,但是比test-job1需要更多的时间"
  21. - echo "echo命令执行完毕后,再执行sleep命令20秒"
  22. - echo "模拟的测试运行时间比test-job1长20秒"
  23. - sleep 20
  24. deploy-prod:
  25. stage: deploy
  26. script:
  27. - echo "该作业从$CI_COMMIT_BRANCH分支部署一些内容"

相关文章