From 3ed18c4f1ceb66d54095cd8a2ec8908371bbc98a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me> Date: Tue, 27 Feb 2024 14:15:27 +0100 Subject: [PATCH] CI/CD => Automatic push of the CHANGELOG.md to the documentation website repo --- NodeApp/.gitlab-ci/00_vars.yml | 16 +++++++- NodeApp/.gitlab-ci/07_stagePkgAndSign.yml | 4 +- NodeApp/.gitlab-ci/08_stageClean.yml | 8 ++-- NodeApp/.gitlab-ci/09_stageUpload.yml | 2 +- NodeApp/.gitlab-ci/10_stageRelease.yml | 47 +++++++++++++++++++++-- 5 files changed, 66 insertions(+), 11 deletions(-) diff --git a/NodeApp/.gitlab-ci/00_vars.yml b/NodeApp/.gitlab-ci/00_vars.yml index 642e2de..65955c8 100644 --- a/NodeApp/.gitlab-ci/00_vars.yml +++ b/NodeApp/.gitlab-ci/00_vars.yml @@ -34,4 +34,18 @@ variables: VERSION_DEV_SUFFIX: '-dev' VERSION_TEST_SUFFIX: '-test' - WIKI_FOLDER: Wiki \ No newline at end of file + WIKI_FOLDER: Wiki + + DOC_CHANGELOG_FILE: ZolaApp/content/changelog/projects/101_cli.md + DOC_FILE_BEGIN: | + +++ + title = "Dojo CLI" + slug = "dojo-cli" + weight = 101 + template = "docs/page.html" + + [extra] + lead = "Changelog of The Dojo CLI." + toc = true + top = false + +++ diff --git a/NodeApp/.gitlab-ci/07_stagePkgAndSign.yml b/NodeApp/.gitlab-ci/07_stagePkgAndSign.yml index 64032c5..9bc92c1 100644 --- a/NodeApp/.gitlab-ci/07_stagePkgAndSign.yml +++ b/NodeApp/.gitlab-ci/07_stagePkgAndSign.yml @@ -8,7 +8,7 @@ pkg_and_sign:debian: extends: .pkg_and_sign:debian -pkg_and_sign:debian-test: +pkg_and_sign:debian:test: parallel: matrix: - ARCH: [ "arm64", "amd64" ] @@ -29,7 +29,7 @@ pkg_and_sign:macos: extends: .pkg_and_sign:macos -pkg_and_sign:macos-test: +pkg_and_sign:macos:test: parallel: matrix: - BIN_FOLDER_MACOS_PKG_AND_SIGN: [ "$BIN_FOLDER_MACOS_ARM64", "$BIN_FOLDER_MACOS_X64" ] diff --git a/NodeApp/.gitlab-ci/08_stageClean.yml b/NodeApp/.gitlab-ci/08_stageClean.yml index 0885aa1..ef5ae4c 100644 --- a/NodeApp/.gitlab-ci/08_stageClean.yml +++ b/NodeApp/.gitlab-ci/08_stageClean.yml @@ -24,7 +24,7 @@ clean:packages: - if: '$CI_COMMIT_REF_PROTECTED == "true"' -clean:dev:release: +clean:release:dev: stage: clean tags: - gitlab_clean @@ -38,7 +38,7 @@ clean:dev:release: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' -clean:dev:packages: +clean:packages:dev: stage: clean tags: - gitlab_clean @@ -52,7 +52,7 @@ clean:dev:packages: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' -clean:latest:release: +clean:release:latest: stage: clean tags: - gitlab_clean @@ -64,7 +64,7 @@ clean:latest:release: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' -clean:pre-alpha:release: +clean:release:pre-alpha: stage: clean tags: - gitlab_clean diff --git a/NodeApp/.gitlab-ci/09_stageUpload.yml b/NodeApp/.gitlab-ci/09_stageUpload.yml index 19b77df..fac7c20 100644 --- a/NodeApp/.gitlab-ci/09_stageUpload.yml +++ b/NodeApp/.gitlab-ci/09_stageUpload.yml @@ -30,7 +30,7 @@ upload:packages: - if: '$CI_COMMIT_REF_PROTECTED == "true"' -upload:packages:wiki: +upload:packages:doc:wiki: stage: upload tags: - gitlab_package diff --git a/NodeApp/.gitlab-ci/10_stageRelease.yml b/NodeApp/.gitlab-ci/10_stageRelease.yml index d66bb5a..0bb9f18 100644 --- a/NodeApp/.gitlab-ci/10_stageRelease.yml +++ b/NodeApp/.gitlab-ci/10_stageRelease.yml @@ -1,4 +1,4 @@ -release:wiki: +release:doc:wiki: stage: release tags: - release @@ -47,6 +47,47 @@ release:wiki: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' +release:doc:changelog: + stage: release + tags: + - release + image: ubuntu:latest + script: + # Install dependencies + - apt-get update -y + - apt-get install -y openssh-client git unzip sshpass --fix-missing + + # Add SSH key + - eval `ssh-agent -s` + - echo "$DOC_GIT_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null + + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + + - echo "$DOC_GIT_SSH_PUBLIC_KEY" >> ~/.ssh/id_rsa.pub + - echo "$DOC_GIT_SSH_PRIVATE_KEY" >> ~/.ssh/id_rsa + + - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' + + # Set git config + - git config --global user.email "dojo@minelli.me" + - git config --global user.name "[Gitlab CI/CD] ${PROJECT_NAME}" + + # Pull repo + - git clone ssh://git@ssh.hesge.ch:10572/dojo_project/projects/ui/dojodoc.git + + # Do something after pulling your repo + - echo "${DOC_FILE_BEGIN}$(cat CHANGELOG.md)" > dojodoc/${DOC_CHANGELOG_FILE} + + # Push repo changes into current repo + - cd dojodoc + - git add ${DOC_CHANGELOG_FILE} + - git commit -m "[Gitlab CI/CD] ${PROJECT_NAME} => Automatic update of changelog" || echo "No changes, nothing to commit!" + - git push + rules: + - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' + + release:gitlab: stage: release tags: @@ -61,7 +102,7 @@ release:gitlab: - if: '$CI_COMMIT_REF_PROTECTED == "true"' -release:latest:gitlab: +release:gitlab:latest: stage: release tags: - release @@ -75,7 +116,7 @@ release:latest:gitlab: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' -release:pre-alpha:gitlab: +release:gitlab:pre-alpha: stage: release tags: - release -- GitLab