goreleaser-publish.yml

 1name: goreleaser-publish
 2
 3on:
 4  push:
 5    tags:
 6      - v*.*.*
 7
 8concurrency:
 9  group: goreleaser
10  cancel-in-progress: true
11
12permissions:
13  contents: write
14  packages: write
15
16jobs:
17  goreleaser:
18    runs-on: ubuntu-latest
19    env:
20      DOCKER_CLI_EXPERIMENTAL: enabled
21    steps:
22      - name: Checkout
23        uses: actions/checkout@v2
24        with:
25          fetch-depth: 0
26
27      - name: Set up Go
28        uses: actions/setup-go@v2
29        with:
30          go-version: 1.17
31
32      - name: Login to DockerHub
33        uses: docker/login-action@v1
34        with:
35          username: ${{ secrets.DOCKERHUB_USERNAME }}
36          password: ${{ secrets.DOCKERHUB_TOKEN }}
37
38      - name: Login to GitHub Container Registry
39        uses: docker/login-action@v1
40        with:
41          registry: ghcr.io
42          username: ${{ github.repository_owner }}
43          password: ${{ secrets.GITHUB_TOKEN }}
44
45      - name: Set up QEMU
46        uses: docker/setup-qemu-action@v1
47
48      - name: Set up Docker Buildx
49        id: buildx
50        uses: docker/setup-buildx-action@v1
51
52      - name: Run GoReleaser
53        uses: goreleaser/goreleaser-action@v2
54        with:
55          distribution: goreleaser
56          version: latest
57          args: release --rm-dist --skip-sign
58        env:
59          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
60          HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}