Add gitlab-ci.yml
This commit is contained in:
commit
9d603036af
118
gitlab-ci.yml
Normal file
118
gitlab-ci.yml
Normal file
@ -0,0 +1,118 @@
|
||||
stages:
|
||||
- cleanup.views
|
||||
- diff.tables
|
||||
- diff.views
|
||||
|
||||
# -----------------------------------------------------------------------------------------
|
||||
.functions: &functions |
|
||||
function isUpToDateDiffTables() {
|
||||
status=$(mvn liquibase:status -Denv=diff.tables)
|
||||
if [[ $status == *'is up to date'* ]]; then
|
||||
echo "database is already up to date" & exit 0
|
||||
fi;
|
||||
}
|
||||
# -----------------------------------------------------------------------------------------
|
||||
.ssh_key_job: &ssh_key_job
|
||||
- eval $(ssh-agent -s)
|
||||
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
|
||||
- mkdir -p ~/.ssh
|
||||
- chmod 700 ~/.ssh
|
||||
- cp "$SSH_KNOWN_HOSTS" ~/.ssh/known_hosts
|
||||
- chmod 644 ~/.ssh/known_hosts
|
||||
- echo "$SSH_PRIVATE_KEY" >> ~/.ssh/id_rsa
|
||||
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------
|
||||
cleanup.views-job:
|
||||
stage: cleanup.views
|
||||
before_script:
|
||||
- *ssh_key_job
|
||||
script:
|
||||
- mvn liquibase:diff -Denv=cleanup.views -X > cleanup.views/liquibase_log/liquibase_log_diff.view-${CI_JOB_NAME}_${CI_PIPLINE_ID}.log
|
||||
- mvn liquibase:update -Denv=cleanup.views
|
||||
rules:
|
||||
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
||||
when: manual
|
||||
artifacts:
|
||||
paths:
|
||||
- cleanup.views/changelog-dir/diff.views.changelog/view-diifChangeLog-${CI_JOB_NAME}_${CI_PIPLINE_ID}.sql
|
||||
- cleanup.views/liquibase_log/liquibase_log_diff.view-${CI_JOB_NAME}_${CI_PIPLINE_ID}.log
|
||||
expire_in: 4 week
|
||||
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------
|
||||
diff.tables-job:
|
||||
stage: diff.tables
|
||||
before_script:
|
||||
- *ssh_key_job
|
||||
- *functions
|
||||
script:
|
||||
- mvn liquibase:diff -Denv=diff.tables -X > diff.tables/liquibase_log/liquibase_log_diff-$(date +%Y%m%d%H%M%S).log
|
||||
- sed -i 's/JSONB DEFAULT \x7B\x7D/\jsonb DEFAULT \x27\x7B\x7D\x27/g' diff.tables/changelog-dir/diff-changelog/*.sql
|
||||
- sed -i 's/JSONB DEFAULT \[\]/\jsonb DEFAULT \x27\[\]\x27/g' diff.tables/changelog-dir/diff-changelog/*.sql
|
||||
- sed -i 's/\x220001-01-01T00:00:00+00:00\x22/\x27\[\x220001-01-01T00:00:00+00:00\x22\]\x27/g' diff.tables/changelog-dir/diff-changelog/*.sql
|
||||
- sed -i 's/JSONB DEFAULT \x7B\x7D/\jsonb DEFAULT \x27\x7B\x7D\x27\x3A\x3Ajsonb/g' diff.tables/changelog-dir/diff-changelog/*.sql
|
||||
- sed -i 's/JSONB DEFAULT \[\]/\jsonb DEFAULT \x27\[\]\x27\x3A\x3Ajsonb/g' diff.tables/changelog-dir/diff-changelog/*.sql
|
||||
- sed -i 's/\x3F/\x3F\x3F/g' diff.tables/changelog-dir/diff-changelog/*.sql
|
||||
- mv diff.tables/changelog-dir/diff-changelog/*.sql diff.tables/changelog-dir/update-changelog/
|
||||
- mvn liquibase:update -Denv=diff.tables -X > diff.tables/liquibase_log/liquibase_log_update.tables-${CI_JOB_NAME}_${CI_PIPLINE_ID}.log
|
||||
- mvn liquibase:history -Denv=diff.tables > diff.tables/liquibase_log/liquibase_log_history.tables-${CI_JOB_NAME}_${CI_PIPLINE_ID}.log
|
||||
rules:
|
||||
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
||||
when: manual
|
||||
artifacts:
|
||||
paths:
|
||||
- diff.tables/changelog-dir/diff.changelog/tables-diffChangeLog-${CI_JOB_NAME}_${CI_PIPLINE_ID}.sql
|
||||
- diff.tables/liquibase_log/liquibase_log_history.tables-${CI_JOB_NAME}_${CI_PIPLINE_ID}.log
|
||||
- diff.tables/liquibase_log/liquibase_log_history.tables-${CI_JOB_NAME}_${CI_PIPLINE_ID}.log
|
||||
expire_in: 4 week
|
||||
|
||||
# -----------------------------------------------------------------------------------------
|
||||
|
||||
diff.views-job:
|
||||
stage: diff.views
|
||||
before_script:
|
||||
- *ssh_key_job
|
||||
script:
|
||||
- mvn liquibase:diff -Denv=diff.views -X > diff.views/liquibase_log/liquibase_log_diff.views-${CI_JOB_NAME}_${CI_PIPLINE_ID}.log
|
||||
- mvn liquibase:history -Denv=diff.views > diff.views/liquibase_log/liquibase_log_history.views-${CI_JOB_NAME}_${CI_PIPLINE_ID}.log
|
||||
- sed -i 's/JSONB DEFAULT \x7B\x7D/\jsonb DEFAULT \x27\x7B\x7D\x27/g' diff.views/changelog-dir/diff-changelog/*.sql
|
||||
- sed -i 's/JSONB DEFAULT \[\]/\jsonb DEFAULT \x27\[\]\x27/g' diff.views/changelog-dir/diff-changelog/*.sql
|
||||
- sed -i 's/\x220001-01-01T00:00:00+00:00\x22/\x27\[\x220001-01-01T00:00:00+00:00\x22\]\x27/g' diff.views/changelog-dir/diff-changelog/*.sql
|
||||
- sed -i 's/JSONB DEFAULT \x7B\x7D/\jsonb DEFAULT \x27\x7B\x7D\x27\x3A\x3Ajsonb/g' diff.views/changelog-dir/diff-changelog/*.sql
|
||||
- sed -i 's/JSONB DEFAULT \[\]/\jsonb DEFAULT \x27\[\]\x27\x3A\x3Ajsonb/g' diff.views/changelog-dir/diff-changelog/*.sql
|
||||
- sed -i 's/\x3F/\x3F\x3F/g' diff.views/changelog-dir/diff-changelog/*.sql
|
||||
- mv diff.views/changelog-dir/diff-changelog/*.sql diff.views/changelog-dir/update-changelog/
|
||||
- mvn liquibase:update -Denv=diff.views -X > diff.views/liquibase_log/liquibase_log_update.views-${CI_JOB_NAME}_${CI_PIPLINE_ID}.log
|
||||
- mvn liquibase:history -Denv=diff.views > diff.views/liquibase_log/liquibase_log_history.views-${CI_JOB_NAME}_${CI_PIPLINE_ID}.log
|
||||
- rm -rf diff.views/changelog-dir/update-changelog/*.sql
|
||||
rules:
|
||||
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
||||
when: manual
|
||||
artifacts:
|
||||
paths:
|
||||
- diff.views/liquibase_log/liquibase_log_diff.views-${CI_JOB_NAME}_${CI_PIPLINE_ID}.log
|
||||
- diff.views/liquibase_log/liquibase_log_update.views-${CI_JOB_NAME}_${CI_PIPLINE_ID}.log
|
||||
- diff.views/liquibase_log/liquibase_log_history.views-${CI_JOB_NAME}_${CI_PIPLINE_ID}.log
|
||||
expire_in: 4 week
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user