0

タグがプッシュされると、GoReleaser & GitHub アクションは現在次のように構成されています。

# github action
name: Release

on:
  push:
    tags:
      - '*'

env:
  REF: ${{ github.event.inputs.tag || github.ref }}

jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Login to DockerHub
        uses: docker/login-action@v1
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}
      - name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v2
        with:
          version: latest
          args: release --rm-dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# .goreleaser.yaml snippet
dockers:
  - image_templates:
    - "foo/bar:latest"
    - "foo/bar:v{{ .Major }}"
    - "foo/bar:v{{ .Major }}.{{ .Minor }}"
    - "foo/bar:{{ .Tag }}"

現在のセットアップには、最新のリリースをカットするまで待たなければならないという欠点があります。これは、最新が GitHub のマスター ブランチと同期していないことも意味します。自動化されたテストが成功したときはいつでも、最新のものをビルドして公開したいと思います。

goreleaser にさまざまなシナリオでパブリッシュを構築してもらいたいです。

  1. プルリクエストをマスターにマージするたびに、最新のものをビルドしてプッシュします
  2. リリースにタグを付けるたびに、semver タグをビルドしてプッシュする

これを達成するための論理的な方法は、異なる .goreleaser.yml ファイルで動作する 2 つの github アクションを持つことです。ただし、問題は、goreleaser.yaml をオーバーライドする方法が見つからないことです。

4

1 に答える 1