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

Gitlab Action - 自动化工作流

官方文档: 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分支部署一些内容"


Liquibase学习 - 配合GitLab自动化部署工作流使用_第1张图片

你可能感兴趣的:(Liquibase,学习,自动化,java,gitlab,liquibase)