Gitlab CI/CD 不会 运行 我的部署阶段

Gitlab CI/CD will not run my deploy stage

Gitlab 新手 CI/CD。我的构建作业运行良好,但部署作业从未执行过。我删除了所有规则,但仍然没有 运行.

这是我的 .gitlab-ci.yml 文件的内容:

build-job:
  stage: build
  script:
    - echo "STAGE - BUILD"
    - echo $CI_JOB_STAGE
    - echo $CI_COMMIT_MESSAGE
    - echo $CI_COMMIT_BRANCH
    - echo $CI_ENVIRONMENT_NAME
    - mkdir bin
    - mkdir obj
    - "dotnet build"


deploy-to-staging:
  stage: deploy
  script:
    - echo "STAGE - DEPLOY (STAGING)"

知道为什么 Gitlab 会跳过部署阶段吗?我必须明确定义我的阶段吗?我试过了,但没有任何区别(这些行在 yml 文件的底部有一段时间):

stages:
  - build
  - deploy

虽然在 stages documentation 中没有明确说明,但您通常应该将它们设置在顶部。

如果遇到 yaml invalid 故障,请使用 CI lint tool 仔细检查间距等,而无需 运行 管道。

请记住:

  1. 如果作业失败,则不会开始下一阶段。
  2. 如果您不定义阶段,那么它会使用构建、测试、部署。
  3. 任何未定义阶段的作业都假定为 test
  4. 任何不使用的阶段都应该简单地隐藏起来。但是,确切的行为可能取决于您使用的 GitLab 版本。 (如果内存正确,这已更改,但我不能手头的合并请求。)

如您在 the official documentation of Gitlab CI 中所见,通过定义 stages,将指定作业的顺序和执行顺序。

所以下面的 gitlab-ci.yml 应该有效:

stages: 
  - build
  - deploy


build-job:
  stage: build
  script:
    - echo "STAGE - BUILD"
    - echo $CI_JOB_STAGE
    - echo $CI_COMMIT_MESSAGE
    - echo $CI_COMMIT_BRANCH
    - echo $CI_ENVIRONMENT_NAME
    - mkdir bin
    - mkdir obj
    - "dotnet build"


deploy-to-staging:
  stage: deploy
  script:
    - echo "STAGE - DEPLOY (STAGING)"

截图: