0

我在自托管系统中使用 Drone CI (0.7)。它连接到 GitLab 和我的私人注册表并且工作得很好!

但是,我想对.drone.yml文件做更多的事情。尤其是在将图像发布到注册表时。

文档展示了如何进行替换,但没有解释这些变量是如何设置的。以下是文档中的示例:

pipeline:
  docker:
    image: plugins/docker
+   tags: ${DRONE_TAG}

这正是我想做的。在 repo(在发布分支上)创建一个 git 标签,并让该标签成为我的 Docker 映像的标签。

git tag -a v1.0 -m "Initial release"当时我试过了git push origin v1.0。Drone CI 构建在我Tag Hooks为存储库设置好之后开始,但是当构建完成并将图像发布到注册表时,标签设置为latest. 推送常规代码更改提交时也会发生这种情况。

这是需要使用 CLI 完成的事情,还是我的.drone.yml文件中缺少某些内容(发布在下面)?它看起来像是我需要设置的环境变量,但是在提交代码以开始构建之前必须设置它(我假设)似乎很奇怪......

任何和所有的帮助表示赞赏!

pipeline:
  build:
    image: node:latest
    commands:
      - npm install
      - npm test
  docker:
    image: plugins/docker
    repo: private.registry.com/tester
    registry: private.registry.com
    secrets: [ docker_username, docker_password ]
    tags: ${DRONE_TAG}
    when:
      branch: release
4

1 回答 1

1

实际上docker,只有在将新提交推送到分支时才会触发您的步骤release,您应该使用标记事件。

哟应该有一些类似的配置

tags:
  - latest
  - ${DRONE_TAG##v}
when:
  event: tag

注意 ${DRONE_TAG##v} 将去掉前缀v,因为你命名你的标签v1.0无人机会将其解析为

tags:
  - latest
  - 1.0
when:
  event: tag
于 2017-09-06T05:57:58.490 回答