diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7ec664e..c536fb3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,10 +13,10 @@ variables: default: # 各 stage 使用的默认镜像,如果不定义,则为 gitlab-runner 创建时指定的镜像;各 stage 可以覆盖该值以使用不同的镜像 image: docker.colovu.com/library/docker:20.10.16 - # Gitlab-runner 配置的执行器为 Docker 时,需要 配置对应的 dind 服务 - services: - - name: docker.colovu.com/library/docker:20.10.16-dind - alias: docker + # Gitlab-runner 配置的执行器为 Docker 时,需要 配置对应的 dind 服务(这里使用Runner中配置的Dind服务) + #services: + # - name: docker.colovu.com/library/docker:20.10.16-dind + # alias: docker # 流水线中,各阶段都会执行的脚本命令,包括`before_script`(在各阶段 script 前执行)/`after_script`(在各阶段 script 后执行) before_script: - | @@ -27,15 +27,20 @@ default: fi - docker login -u "$HARBOR_USERNAME" -p "$HARBOR_PASSWORD" $HARBOR_URL +# 环境变量信息 +env-variables: + stage: .pre + script: + - export + # 编译阶段任务 build-arm64: stage: build tags: - arm64 script: - - export - - env - docker buildx build --platform=linux/arm64 --pull -t "$IMG_URL$IMG_TAG-linux-arm64" . --push + - docker rmi "$IMG_URL$IMG_TAG-linux-arm64" build-amd64: stage: build @@ -43,6 +48,7 @@ build-amd64: - amd64 script: - docker buildx build --platform=linux/amd64 --pull -t "$IMG_URL$IMG_TAG-linux-amd64" . --push + - docker rmi "$IMG_URL$IMG_TAG-linux-amd64" build-artifact: stage: build @@ -50,13 +56,15 @@ build-artifact: script: - docker manifest create "$IMG_URL$IMG_TAG" "$IMG_URL$IMG_TAG-linux-arm64" "$IMG_URL$IMG_TAG-linux-amd64" - docker manifest push "$IMG_URL$IMG_TAG" + - docker manifest rm "$IMG_URL$IMG_TAG" # 测试阶段任务 test: stage: test script: - - docker run --rm --platform=linux/arm64 "$IMG_URL$IMG_TAG" /bin/uname -a - - docker run --rm --platform=linux/amd64 "$IMG_URL$IMG_TAG" /bin/uname -a + - docker run --pull always --rm --platform=linux/arm64 "$IMG_URL$IMG_TAG" /bin/uname -a + - docker run --pull always --rm --platform=linux/amd64 "$IMG_URL$IMG_TAG" /bin/uname -a + - docker images -q "$IMG_URL" | sort -u | xargs docker rmi -f # 部署阶段任务 deploy: