代码之家  ›  专栏  ›  技术社区  ›  BurtonR

无人机CI获取和使用构建元数据

  •  0
  • BurtonR  · 技术社区  · 7 年前

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

    然而,我想用 .drone.yml

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

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

    这正是我想做的。在repo(发布分支上)上创建一个git标记,并将该标记作为Docker图像的标记。

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

    文件(张贴在下面)?它 就像我需要设置环境变量一样,但在提交代码开始构建之前必须设置(我假设)似乎很奇怪。。。

    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
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   jhernandez    7 年前

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

    你应该有一些类似的配置

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

    v ,因为您正在命名标签 v1.0

    tags:
      - latest
      - 1.0
    when:
      event: tag