From 98e33b9127cf94ee936ad2e97a021072751f4bfa Mon Sep 17 00:00:00 2001 From: Endial Fang Date: Wed, 6 Sep 2023 16:55:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E4=B8=B4=E6=97=B6?= =?UTF-8?q?=E9=95=9C=E5=83=8F=E7=9A=84=E6=B8=85=E7=90=86=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) 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: