github.com/goreleaser/goreleaser@v1.25.1/.github/workflows/release.yml (about) 1 name: release 2 3 on: 4 push: 5 branches: 6 - "main" 7 tags: 8 - "v*" 9 10 permissions: 11 contents: write 12 id-token: write 13 packages: write 14 15 jobs: 16 trigger-generate: 17 runs-on: ubuntu-latest 18 needs: [goreleaser] 19 steps: 20 - uses: benc-uk/workflow-dispatch@v1.2.3 21 if: startsWith(github.ref, 'refs/tags/v') 22 with: 23 repo: goreleaser/goreleaser 24 ref: main 25 token: ${{ secrets.GH_PAT }} 26 workflow: generate.yml 27 notify-goreleaser-cross: 28 runs-on: ubuntu-latest 29 needs: [trigger-generate] 30 steps: 31 - name: get version 32 if: startsWith(github.ref, 'refs/tags/v') 33 run: echo "RELEASE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV 34 - name: notify goreleaser-cross with new release 35 if: startsWith(github.ref, 'refs/tags/v') 36 uses: benc-uk/workflow-dispatch@v1.2.3 37 with: 38 token: ${{ secrets.GH_PAT }} 39 repo: goreleaser/goreleaser-cross 40 workflow: goreleaser-bump 41 inputs: '{ "tag" : "${{ env.RELEASE_TAG }}" }' 42 goreleaser-check-pkgs: 43 runs-on: ubuntu-latest 44 env: 45 DOCKER_CLI_EXPERIMENTAL: "enabled" 46 needs: [goreleaser] 47 if: github.ref == 'refs/heads/main' 48 strategy: 49 matrix: 50 format: [deb, rpm, apk] 51 steps: 52 - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3 53 with: 54 fetch-depth: 0 55 - uses: arduino/setup-task@b91d5d2c96a56797b48ac1e0e89220bf64044611 # v1 56 with: 57 version: 3.x 58 repo-token: ${{ secrets.GITHUB_TOKEN }} 59 - uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v2 60 - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 61 with: 62 path: | 63 ./dist/*.deb 64 ./dist/*.rpm 65 ./dist/*.apk 66 key: ${{ github.ref }} 67 - run: task goreleaser:test:${{ matrix.format }} 68 goreleaser: 69 runs-on: ubuntu-latest 70 env: 71 DOCKER_CLI_EXPERIMENTAL: "enabled" 72 steps: 73 - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v3 74 with: 75 fetch-depth: 0 76 - uses: arduino/setup-task@b91d5d2c96a56797b48ac1e0e89220bf64044611 # v1 77 with: 78 version: 3.x 79 repo-token: ${{ secrets.GITHUB_TOKEN }} 80 - uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v2 81 - uses: docker/setup-buildx-action@2b51285047da1547ffb1b2203d8be4c0af6b1f20 # v3 82 - name: setup-snapcraft 83 # FIXME: the mkdirs are a hack for https://github.com/goreleaser/goreleaser/issues/1715 84 run: | 85 sudo apt-get update 86 sudo apt-get -yq --no-install-suggests --no-install-recommends install snapcraft 87 mkdir -p $HOME/.cache/snapcraft/download 88 mkdir -p $HOME/.cache/snapcraft/stage-packages 89 - uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v4 90 with: 91 go-version: stable 92 - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4 93 with: 94 path: | 95 ./dist/*.deb 96 ./dist/*.rpm 97 ./dist/*.apk 98 key: ${{ github.ref }} 99 - uses: sigstore/cosign-installer@v3.4.0 100 - uses: anchore/sbom-action/download-syft@v0.15.10 101 - uses: crazy-max/ghaction-upx@v3 102 with: 103 install-only: true 104 - uses: cachix/install-nix-action@v26 105 with: 106 github_access_token: ${{ secrets.GITHUB_TOKEN }} 107 - name: dockerhub-login 108 if: startsWith(github.ref, 'refs/tags/v') 109 uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v2 110 with: 111 username: ${{ secrets.DOCKER_USERNAME }} 112 password: ${{ secrets.DOCKER_PASSWORD }} 113 - name: ghcr-login 114 if: startsWith(github.ref, 'refs/tags/v') 115 uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v2 116 with: 117 registry: ghcr.io 118 username: ${{ github.repository_owner }} 119 password: ${{ secrets.GITHUB_TOKEN }} 120 - name: snapcraft-login 121 if: startsWith(github.ref, 'refs/tags/v') 122 run: snapcraft login --with <(echo "${{ secrets.SNAPCRAFT_LOGIN }}") 123 - name: goreleaser-release 124 env: 125 GITHUB_TOKEN: ${{ secrets.GH_PAT }} 126 TWITTER_CONSUMER_KEY: ${{ secrets.TWITTER_CONSUMER_KEY }} 127 TWITTER_CONSUMER_SECRET: ${{ secrets.TWITTER_CONSUMER_SECRET }} 128 TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }} 129 TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} 130 MASTODON_CLIENT_ID: ${{ secrets.MASTODON_CLIENT_ID }} 131 MASTODON_CLIENT_SECRET: ${{ secrets.MASTODON_CLIENT_SECRET }} 132 MASTODON_ACCESS_TOKEN: ${{ secrets.MASTODON_ACCESS_TOKEN }} 133 COSIGN_PWD: ${{ secrets.COSIGN_PWD }} 134 FURY_TOKEN: ${{ secrets.FURY_TOKEN }} 135 DISCORD_WEBHOOK_ID: ${{ secrets.DISCORD_WEBHOOK_ID }} 136 DISCORD_WEBHOOK_TOKEN: ${{ secrets.DISCORD_WEBHOOK_TOKEN }} 137 AUR_KEY: ${{ secrets.AUR_KEY }} 138 run: task goreleaser