From 7226dfd39440fb47336a2bbbc3e6a464abe869f6 Mon Sep 17 00:00:00 2001 From: Chever John Date: Wed, 17 Jun 2026 10:01:47 +0800 Subject: [PATCH] feat: add GitLab CI pipeline for multi-service Docker build Build all 5 iloom services (gateway, auth, purchaser, textile, washing) as Docker images and push to Harbor registry. - main branch: tagged as main- - git tag v*: tagged with version number Co-Authored-By: Claude --- .gitlab-ci.yml | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..e6511c5 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,57 @@ +stages: + - build + +variables: + HARBOR_REGISTRY: harbor-in-k3s.cheverjohn.me + HARBOR_PROJECT: iloom + DOCKER_TLS_CERTDIR: "/certs" + +.build-template: &build-template + stage: build + image: docker:27 + services: + - docker:27-dind + before_script: + - echo "$HARBOR_PASSWORD" | docker login $HARBOR_REGISTRY -u "$HARBOR_USER" --password-stdin + script: + - | + if [ -n "$CI_COMMIT_TAG" ]; then + TAG="$CI_COMMIT_TAG" + else + TAG="main-${CI_COMMIT_SHORT_SHA}" + fi + - docker build -t $HARBOR_REGISTRY/$HARBOR_PROJECT/$IMAGE_NAME:$TAG -f $DOCKERFILE_PATH . + - docker push $HARBOR_REGISTRY/$HARBOR_PROJECT/$IMAGE_NAME:$TAG + rules: + - if: $CI_COMMIT_BRANCH == "main" + - if: $CI_COMMIT_TAG =~ /^v/ + +build-gateway: + <<: *build-template + variables: + IMAGE_NAME: iloom-gateway + DOCKERFILE_PATH: gateway/Dockerfile + +build-auth-service: + <<: *build-template + variables: + IMAGE_NAME: iloom-auth-service + DOCKERFILE_PATH: auth-service/Dockerfile + +build-purchaser-service: + <<: *build-template + variables: + IMAGE_NAME: iloom-purchaser-service + DOCKERFILE_PATH: purchaser-service/Dockerfile + +build-textile-service: + <<: *build-template + variables: + IMAGE_NAME: iloom-textile-service + DOCKERFILE_PATH: textile-service/Dockerfile + +build-washing-service: + <<: *build-template + variables: + IMAGE_NAME: iloom-washing-service + DOCKERFILE_PATH: washing-service/Dockerfile