From df473415da06da8491decb5310aaf84c4f76941a Mon Sep 17 00:00:00 2001 From: Grant Date: Sun, 5 Jan 2025 17:54:53 -0700 Subject: [PATCH 01/12] Add doc folder & CI job --- .gitlab-ci.yml | 14 ++++++++++++++ doc/home.md | 3 +++ 2 files changed, 17 insertions(+) create mode 100644 doc/home.md diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 407b516..4990db1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,5 @@ stages: + - build - publish - deploy @@ -6,6 +7,19 @@ variables: REGISTRY: registry.sc07.dev IMAGE_NAME: sc07/canvas:edge +# sync /doc/ to internal wiki repo for UI access +# see #151 +build-wiki: + stage: build + rules: + - changes: + - doc/**/* + script: + - git status + - git checkout main + - git pull + - git push git@sc07.dev:2424/sc07/canvas.wiki.git `git subtree split -P doc main`:main --force + publish: stage: publish tags: diff --git a/doc/home.md b/doc/home.md new file mode 100644 index 0000000..c77d3cd --- /dev/null +++ b/doc/home.md @@ -0,0 +1,3 @@ +# Canvas + +Documentation example -- GitLab From 09ba8106ef7db6b6f41361df3b0fa428052d9eff Mon Sep 17 00:00:00 2001 From: Grant Date: Sun, 5 Jan 2025 17:56:53 -0700 Subject: [PATCH 02/12] [ci] exclude documentation changes from deploy --- .gitlab-ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4990db1..1ea2d97 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,6 +26,10 @@ publish: - red rules: - if: $CI_COMMIT_BRANCH == "main" + # exclude documentation changes from deploy + - changes: + - doc/**/* + when: never - changes: - ".gitlab/*" when: never @@ -45,6 +49,10 @@ deploy: - red rules: - if: $CI_COMMIT_BRANCH == "main" + # exclude documentation changes from deploy + - changes: + - doc/**/* + when: never - changes: - ".gitlab/*" when: never -- GitLab From 55a14c6cff7793f538c79f22b2f72be39ba01bf1 Mon Sep 17 00:00:00 2001 From: Grant Date: Sun, 5 Jan 2025 18:20:13 -0700 Subject: [PATCH 03/12] [ci] use alpine/git image --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1ea2d97..7f3e471 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,6 +10,7 @@ variables: # sync /doc/ to internal wiki repo for UI access # see #151 build-wiki: + image: alpine/git stage: build rules: - changes: -- GitLab From 47a5488aea44ac03002d99462643ceebf6119124 Mon Sep 17 00:00:00 2001 From: Grant Date: Sun, 5 Jan 2025 18:24:49 -0700 Subject: [PATCH 04/12] [ci] wrong image --- .gitlab-ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7f3e471..52907a9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,11 +10,13 @@ variables: # sync /doc/ to internal wiki repo for UI access # see #151 build-wiki: - image: alpine/git + image: alpine stage: build rules: - changes: - doc/**/* + before_script: + - apk add --no-cache git script: - git status - git checkout main -- GitLab From fb4ee61baad63fbb73ec56c3e18d75e99502b4db Mon Sep 17 00:00:00 2001 From: Grant Date: Sun, 5 Jan 2025 18:26:04 -0700 Subject: [PATCH 05/12] [ci] only exec on main branch --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 52907a9..c02436f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,6 +13,7 @@ build-wiki: image: alpine stage: build rules: + - if: $CI_COMMIT_BRANCH == "main" - changes: - doc/**/* before_script: -- GitLab From 03db5182df9ec8a048e1b3b5ef292ff729dd6c70 Mon Sep 17 00:00:00 2001 From: Grant Date: Sun, 5 Jan 2025 18:31:41 -0700 Subject: [PATCH 06/12] [ci] only on push to main, not mr --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c02436f..0161482 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,6 +13,7 @@ build-wiki: image: alpine stage: build rules: + - if: $CI_PIPELINE_SOURCE == "push" - if: $CI_COMMIT_BRANCH == "main" - changes: - doc/**/* @@ -29,6 +30,7 @@ publish: tags: - red rules: + - if: $CI_PIPELINE_SOURCE == "push" - if: $CI_COMMIT_BRANCH == "main" # exclude documentation changes from deploy - changes: @@ -52,6 +54,7 @@ deploy: tags: - red rules: + - if: $CI_PIPELINE_SOURCE == "push" - if: $CI_COMMIT_BRANCH == "main" # exclude documentation changes from deploy - changes: -- GitLab From 7871e0f541a9c4e6a9074cd5f672e7bb06ee2836 Mon Sep 17 00:00:00 2001 From: Grant Date: Sun, 5 Jan 2025 19:38:07 -0700 Subject: [PATCH 07/12] [ci] reformat gitlab-ci --- .gitlab-ci.yml | 87 +++++++++---------------------------------- .gitlab/ci/deploy.yml | 32 ++++++++++++++++ .gitlab/ci/wiki.yml | 12 ++++++ 3 files changed, 62 insertions(+), 69 deletions(-) create mode 100644 .gitlab/ci/deploy.yml create mode 100644 .gitlab/ci/wiki.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0161482..b98614e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,73 +1,22 @@ -stages: - - build - - publish - - deploy +include: + - local: ".gitlab/ci/wiki.yml" + rules: + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "main"' + - changes: + - doc/**/* + - local: ".gitlab/ci/deploy.yml" + rules: + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "main"' + - changes: + # exclude documentation changes from deploy + - "doc/**/*" + - ".gitlab/*" + when: never -variables: - REGISTRY: registry.sc07.dev - IMAGE_NAME: sc07/canvas:edge - -# sync /doc/ to internal wiki repo for UI access -# see #151 -build-wiki: - image: alpine +# dummy job, gitlab gets mad when no jobs exist (when the above are never imported) +dummy: stage: build - rules: - - if: $CI_PIPELINE_SOURCE == "push" - - if: $CI_COMMIT_BRANCH == "main" - - changes: - - doc/**/* - before_script: - - apk add --no-cache git script: - - git status - - git checkout main - - git pull - - git push git@sc07.dev:2424/sc07/canvas.wiki.git `git subtree split -P doc main`:main --force - -publish: - stage: publish - tags: - - red + - echo "dummy" rules: - - if: $CI_PIPELINE_SOURCE == "push" - - if: $CI_COMMIT_BRANCH == "main" - # exclude documentation changes from deploy - - changes: - - doc/**/* - when: never - - changes: - - ".gitlab/*" - when: never - - changes: - - "**/*.md" - when: manual - interruptible: true - before_script: - - echo $PAT | docker login $REGISTRY -u $GITLAB_USER_LOGIN --password-stdin - script: - - docker build . --tag $REGISTRY/$IMAGE_NAME - - docker push $REGISTRY/$IMAGE_NAME - -deploy: - stage: deploy - tags: - - red - rules: - - if: $CI_PIPELINE_SOURCE == "push" - - if: $CI_COMMIT_BRANCH == "main" - # exclude documentation changes from deploy - - changes: - - doc/**/* - when: never - - changes: - - ".gitlab/*" - when: never - - changes: - - "**/*.md" - when: manual - interruptible: true - script: - - cd $WORK_DIR - - docker compose pull - - docker compose up -d + - when: never diff --git a/.gitlab/ci/deploy.yml b/.gitlab/ci/deploy.yml new file mode 100644 index 0000000..69cbede --- /dev/null +++ b/.gitlab/ci/deploy.yml @@ -0,0 +1,32 @@ +variables: + REGISTRY: registry.sc07.dev + IMAGE_NAME: sc07/canvas:edge + +publish: + stage: publish + tags: + - red + rules: + - changes: + - "**/*.md" + when: manual + interruptible: true + before_script: + - echo $PAT | docker login $REGISTRY -u $GITLAB_USER_LOGIN --password-stdin + script: + - docker build . --tag $REGISTRY/$IMAGE_NAME + - docker push $REGISTRY/$IMAGE_NAME + +deploy: + stage: deploy + tags: + - red + rules: + - changes: + - "**/*.md" + when: manual + interruptible: true + script: + - cd $WORK_DIR + - docker compose pull + - docker compose up -d diff --git a/.gitlab/ci/wiki.yml b/.gitlab/ci/wiki.yml new file mode 100644 index 0000000..e715741 --- /dev/null +++ b/.gitlab/ci/wiki.yml @@ -0,0 +1,12 @@ +# sync /doc/ to internal wiki repo for UI access +# see #151 +build-wiki: + image: alpine + stage: build + before_script: + - apk add --no-cache git + script: + - git status + - git checkout main + - git pull + - git push git@sc07.dev:2424/sc07/canvas.wiki.git `git subtree split -P doc main`:main --force -- GitLab From 426c6305b23aef02607d4d31e3d00bf0b3156224 Mon Sep 17 00:00:00 2001 From: Grant Date: Sun, 5 Jan 2025 20:32:07 -0700 Subject: [PATCH 08/12] [ci] -- GitLab From 79d5932010d047ea2152f014ea1a201354461692 Mon Sep 17 00:00:00 2001 From: Grant Date: Sun, 5 Jan 2025 20:35:31 -0700 Subject: [PATCH 09/12] [ci] --- .gitlab-ci.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b98614e..16994d8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,22 +1,22 @@ -include: - - local: ".gitlab/ci/wiki.yml" - rules: - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "main"' - - changes: - - doc/**/* - - local: ".gitlab/ci/deploy.yml" - rules: - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "main"' - - changes: - # exclude documentation changes from deploy - - "doc/**/*" - - ".gitlab/*" - when: never +# include: +# - local: ".gitlab/ci/wiki.yml" +# rules: +# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "main"' +# - changes: +# - doc/**/* +# - local: ".gitlab/ci/deploy.yml" +# rules: +# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "main"' +# - changes: +# # exclude documentation changes from deploy +# - "doc/**/*" +# - ".gitlab/*" +# when: never # dummy job, gitlab gets mad when no jobs exist (when the above are never imported) dummy: stage: build script: - echo "dummy" - rules: - - when: never + # rules: + # - when: never -- GitLab From 05e8640c9403ea96cdea715497003de4d7bf25f9 Mon Sep 17 00:00:00 2001 From: Grant Date: Sun, 5 Jan 2025 20:39:25 -0700 Subject: [PATCH 10/12] [ci] --- .gitlab-ci.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 16994d8..b98614e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,22 +1,22 @@ -# include: -# - local: ".gitlab/ci/wiki.yml" -# rules: -# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "main"' -# - changes: -# - doc/**/* -# - local: ".gitlab/ci/deploy.yml" -# rules: -# - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "main"' -# - changes: -# # exclude documentation changes from deploy -# - "doc/**/*" -# - ".gitlab/*" -# when: never +include: + - local: ".gitlab/ci/wiki.yml" + rules: + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "main"' + - changes: + - doc/**/* + - local: ".gitlab/ci/deploy.yml" + rules: + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "main"' + - changes: + # exclude documentation changes from deploy + - "doc/**/*" + - ".gitlab/*" + when: never # dummy job, gitlab gets mad when no jobs exist (when the above are never imported) dummy: stage: build script: - echo "dummy" - # rules: - # - when: never + rules: + - when: never -- GitLab From 4570bb9dcfb8e72a01b4d704e3cd50b9cadc955d Mon Sep 17 00:00:00 2001 From: Grant Date: Sun, 5 Jan 2025 20:40:56 -0700 Subject: [PATCH 11/12] [ci] --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b98614e..1fd4539 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,5 +18,5 @@ dummy: stage: build script: - echo "dummy" - rules: - - when: never + # rules: + # - when: never -- GitLab From c66af9a8ade812e401ac5f53dd79a7dda09e287e Mon Sep 17 00:00:00 2001 From: Grant Date: Sun, 5 Jan 2025 21:22:02 -0700 Subject: [PATCH 12/12] [ci] proper testing --- .gitlab-ci.yml | 5 +++-- .gitlab/ci/wiki.yml | 8 ++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1fd4539..1f7569a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,12 +1,12 @@ include: - local: ".gitlab/ci/wiki.yml" rules: - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "main"' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH' - changes: - doc/**/* - local: ".gitlab/ci/deploy.yml" rules: - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "main"' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH' - changes: # exclude documentation changes from deploy - "doc/**/*" @@ -16,6 +16,7 @@ include: # dummy job, gitlab gets mad when no jobs exist (when the above are never imported) dummy: stage: build + interruptible: true script: - echo "dummy" # rules: diff --git a/.gitlab/ci/wiki.yml b/.gitlab/ci/wiki.yml index e715741..a197d8b 100644 --- a/.gitlab/ci/wiki.yml +++ b/.gitlab/ci/wiki.yml @@ -4,9 +4,13 @@ build-wiki: image: alpine stage: build before_script: - - apk add --no-cache git + - apk add --no-cache git git-subtree script: + - git config user.email "ci@sc07.company" + - git config user.name "ci" + - git remote remove gitlab-wiki || true + - git remote add gitlab-wiki "https://ci:$CI_TOKEN@sc07.dev/sc07/canvas.wiki.git" - git status - git checkout main - git pull - - git push git@sc07.dev:2424/sc07/canvas.wiki.git `git subtree split -P doc main`:main --force + - git push gitlab-wiki `git subtree split -P doc main`:main --force -- GitLab