From 875424b919aa5efbd5746bc953c54dbbb8be16a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me> Date: Tue, 27 Feb 2024 14:14:57 +0100 Subject: [PATCH] CI/CD => Automatic push of the CHANGELOG.md to the documentation website repo --- ExerciseChecker/.gitlab-ci/00_vars.yml | 16 ++++++- ExerciseChecker/.gitlab-ci/07_stageClean.yml | 6 +-- ExerciseChecker/.gitlab-ci/08_stageUpload.yml | 2 +- .../.gitlab-ci/09_stageRelease.yml | 43 ++++++++++++++++++- 4 files changed, 61 insertions(+), 6 deletions(-) diff --git a/ExerciseChecker/.gitlab-ci/00_vars.yml b/ExerciseChecker/.gitlab-ci/00_vars.yml index 1fcea07..a1b6112 100644 --- a/ExerciseChecker/.gitlab-ci/00_vars.yml +++ b/ExerciseChecker/.gitlab-ci/00_vars.yml @@ -24,4 +24,18 @@ variables: PACKAGE_REGISTRY_URL: "${GITLAB_API_PROJECT_URL}/packages/generic/${PROJECT_NAME}" - WIKI_FOLDER: Wiki \ No newline at end of file + WIKI_FOLDER: Wiki + + DOC_CHANGELOG_FILE: ZolaApp/content/changelog/projects/104_exercise-checker.md + DOC_FILE_BEGIN: | + +++ + title = "Dojo Exercise Checker" + slug = "dojo-exercise-checker" + weight = 104 + template = "docs/page.html" + + [extra] + lead = "Changelog of The Dojo Exercise Checker." + toc = true + top = false + +++ diff --git a/ExerciseChecker/.gitlab-ci/07_stageClean.yml b/ExerciseChecker/.gitlab-ci/07_stageClean.yml index f8b6dba..5d3fcba 100644 --- a/ExerciseChecker/.gitlab-ci/07_stageClean.yml +++ b/ExerciseChecker/.gitlab-ci/07_stageClean.yml @@ -22,7 +22,7 @@ clean:packages: - if: '$CI_COMMIT_REF_PROTECTED == "true"' -clean:dev:release: +clean:release:dev: stage: clean tags: - gitlab_clean @@ -35,7 +35,7 @@ clean:dev:release: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' -clean:dev:packages: +clean:packages:dev: stage: clean tags: - gitlab_clean @@ -48,7 +48,7 @@ clean:dev:packages: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' -clean:dev:dockerhub: +clean:dockerhub:dev: stage: clean tags: - clean diff --git a/ExerciseChecker/.gitlab-ci/08_stageUpload.yml b/ExerciseChecker/.gitlab-ci/08_stageUpload.yml index 4c9bd45..f5eab6c 100644 --- a/ExerciseChecker/.gitlab-ci/08_stageUpload.yml +++ b/ExerciseChecker/.gitlab-ci/08_stageUpload.yml @@ -1,4 +1,4 @@ -upload:packages:wiki: +upload:packages:doc:wiki: stage: upload tags: - gitlab_package diff --git a/ExerciseChecker/.gitlab-ci/09_stageRelease.yml b/ExerciseChecker/.gitlab-ci/09_stageRelease.yml index ad039e9..f025d16 100644 --- a/ExerciseChecker/.gitlab-ci/09_stageRelease.yml +++ b/ExerciseChecker/.gitlab-ci/09_stageRelease.yml @@ -15,7 +15,7 @@ release:dockerhub:latest: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH == "test"' -release:wiki: +release:doc:wiki: stage: release tags: - release @@ -63,6 +63,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: -- GitLab