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