Loading .gitlab-ci.yml +23 −3 Original line number Diff line number Diff line # NoCost CI/CD:build → test → Docker 推送到 GitLab Container Registry # NoCost CI/CD:build → test → Docker 推送 → tag 时自动发布 Release stages: - build - test - docker - release variables: DOTNET_VERSION: "10.0" Loading Loading @@ -36,8 +37,27 @@ docker: script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" - docker build -f src/NoCost/Dockerfile -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" . - docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:latest" - | if [ -n "$CI_COMMIT_TAG" ]; then docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" else docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:latest" fi - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" - docker push "$CI_REGISTRY_IMAGE:latest" - | if [ -n "$CI_COMMIT_TAG" ]; then docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" else docker push "$CI_REGISTRY_IMAGE:latest" fi rules: - if: '$CI_COMMIT_BRANCH == "master"' - if: '$CI_COMMIT_TAG' release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest script: - release-cli create --name "NoCost $CI_COMMIT_TAG" --tag-name "$CI_COMMIT_TAG" --ref "$CI_COMMIT_SHA" --description "NoCost $CI_COMMIT_TAG 自动发布。Docker 镜像:$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" rules: - if: '$CI_COMMIT_TAG' Loading
.gitlab-ci.yml +23 −3 Original line number Diff line number Diff line # NoCost CI/CD:build → test → Docker 推送到 GitLab Container Registry # NoCost CI/CD:build → test → Docker 推送 → tag 时自动发布 Release stages: - build - test - docker - release variables: DOTNET_VERSION: "10.0" Loading Loading @@ -36,8 +37,27 @@ docker: script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" - docker build -f src/NoCost/Dockerfile -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" . - docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:latest" - | if [ -n "$CI_COMMIT_TAG" ]; then docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" else docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:latest" fi - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" - docker push "$CI_REGISTRY_IMAGE:latest" - | if [ -n "$CI_COMMIT_TAG" ]; then docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" else docker push "$CI_REGISTRY_IMAGE:latest" fi rules: - if: '$CI_COMMIT_BRANCH == "master"' - if: '$CI_COMMIT_TAG' release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest script: - release-cli create --name "NoCost $CI_COMMIT_TAG" --tag-name "$CI_COMMIT_TAG" --ref "$CI_COMMIT_SHA" --description "NoCost $CI_COMMIT_TAG 自动发布。Docker 镜像:$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG" rules: - if: '$CI_COMMIT_TAG'