diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a720721820c41bdd318d49dc93302cf295527f0f..a0ecab3cfee19b7ad230f407de6a6c51632fe4be 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -21,4 +21,5 @@ include:
   - local: '/build/ci/.build-container.yml'
   - local: '/build/ci/.test.yml'
   - local: '/build/ci/.terraform-ci.yml'
-  - local: '/build/ci/.deploy-k8s.yml'
\ No newline at end of file
+  - local: '/build/ci/.deploy-k8s.yml'
+  - local: '/build/ci/.uml-autogen-ci.yml'
diff --git a/build/ci/.uml-autogen-ci.yml b/build/ci/.uml-autogen-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..28ee54f267fe971524185099089dcffde1a07cca
--- /dev/null
+++ b/build/ci/.uml-autogen-ci.yml
@@ -0,0 +1,31 @@
+goplantuml:
+    image: golang:1.14
+    stage: .post
+    only:
+        - develop
+    when: manual
+    variables:
+        FILENAME: "home.md"
+        WIKI_URL: "${CI_SERVER_PROTOCOL}://project_${CI_PROJECT_ID}_bot3:${GOPLANTUML_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/${CI_PROJECT_PATH}.wiki.git"
+
+    script:
+    # install goplantuml
+    - go get github.com/jfeliu007/goplantuml/cmd/goplantuml
+    # remove old wiki folder
+    - rm -rf "/tmp/${CI_PROJECT_NAME}.wiki"
+    # clone and move to wiki folder
+    - cd /tmp
+    - git clone "${WIKI_URL}"
+    - cd "${CI_PROJECT_NAME}.wiki"
+
+    - echo '```plantuml' > "$FILENAME"
+    # run goplantuml
+    - goplantuml "${CI_PROJECT_DIR}/nucleus/" >> "$FILENAME"
+    - echo '```' >> "$FILENAME"
+
+    # git commit
+    - git config user.name "$GITLAB_USER_NAME"
+    - git config user.email "$GITLAB_USER_EMAIL"
+    - git add "$FILENAME"
+    - git commit -m "Auto-updated UML diagram via goplantuml CI job"
+    - git push origin "HEAD:master"