name: Release on: workflow_dispatch: push: branches: - 'main' tags: - 'v*' env: GO_VERSION: 1.19 jobs: build: runs-on: ubuntu-latest env: GO111MODULE: on DOCKER_CLI_EXPERIMENTAL: "enabled" steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 - name: Set up Go uses: actions/setup-go@v3 with: go-version: ${{ env.GO_VERSION }} - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Cache Go modules uses: actions/cache@v1 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Tests run: | go mod tidy go test -v ./... # Login against a Docker registry except on PR # https://github.com/docker/login-action - name: Login to Docker Hub if: github.event_name != 'pull_request' uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Run GoReleaser uses: goreleaser/goreleaser-action@v3 if: success() && startsWith(github.ref, 'refs/tags/') with: version: latest args: release --rm-dist env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}