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