お元気そうで残念です

仕事とか趣味のメモを残します

Drone CIで/を含むブランチ名をタグに使いたい

.tagsファイルに書き込むとtagとして使用してくれます。

/を含むとpush出来ないため、-に置き換えてtagsに書き込む必要があります。
$DRONE_BRANCHにブランチ名が含まれているため、echo -n $DRONE_BRANCH | sed -r 's,/,-,g' >> .tagsとしましょう。

また、commit shaもtagにしたい場合は、echo -n ",${DRONE_COMMIT_SHA:0:5}" >> .tags でしていできます。
${DRONE_COMMIT_SHA:0:5} とすることでcommit shaの上位5桁だけを利用できます。

以下が簡単なmanifest例です。ブランチ名とsha、latestをtagにしています。

kind: pipeline
name: default
- name: tag
  image: docker
  commands:
  - echo -n $DRONE_BRANCH | sed -r 's,/,-,g' >> .tags
  - echo -n ",${DRONE_COMMIT_SHA:0:5},latest" >> .tags
  volumes:
  - name: docker
    path: /root/.docker

- name: docker build & push
  image: plugins/docker
  settings:
    repo: custom-docker-registry.hogehoge.mogemoge/hugehuge/poge
    tags: latest
    registry: custom-docker-registry.hogehoge.mogemoge
    username: 
      from_secret: username
    password:
      from_secret: password
  volumes:
  - name: docker
    path: /root/.docker

volumes:
- name: docker
  temp: {}