github.com/goreleaser/nfpm/v2@v2.44.0/.github/workflows/build.yml (about)

     1  name: build
     2  
     3  concurrency:
     4    group: ${{ github.head_ref || github.ref_name }}
     5    cancel-in-progress: true
     6  
     7  on:
     8    push:
     9      tags:
    10        - v*
    11      branches:
    12        - main
    13      paths:
    14        - "go.*"
    15        - "**/*.go"
    16        - "Taskfile.yml"
    17        - "Dockerfile"
    18        - ".github/workflows/*.yml"
    19        - "testdata/**"
    20        - ".goreleaser.yml"
    21    pull_request:
    22      paths:
    23        - "go.*"
    24        - "**/*.go"
    25        - "Taskfile.yml"
    26        - "Dockerfile"
    27        - ".github/workflows/*.yml"
    28        - "testdata/**"
    29        - ".goreleaser.yml"
    30  
    31  permissions:
    32    contents: read
    33  
    34  jobs:
    35    license-check:
    36      runs-on: ubuntu-latest
    37      steps:
    38        - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
    39        - uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
    40          with:
    41            go-version: stable
    42        - name: Check licenses
    43          run: go run github.com/google/go-licenses/v2@latest check --allowed_licenses=MIT,Apache-2.0,BSD-3-Clause,BSD-2-Clause,ISC ./...
    44    semgrep:
    45      uses: caarlos0/meta/.github/workflows/semgrep.yml@c7f17af352dac91fa6c785d06ebac8547f1abdd3 # v0.1.0
    46    ruleguard:
    47      uses: caarlos0/meta/.github/workflows/ruleguard.yml@c7f17af352dac91fa6c785d06ebac8547f1abdd3 # v0.1.0
    48      with:
    49        go-version: stable
    50        args: "-disable largeloopcopy"
    51    unit-tests:
    52      strategy:
    53        matrix:
    54          os: [ubuntu-latest, macos-latest, windows-latest]
    55      runs-on: ${{ matrix.os }}
    56      steps:
    57        - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
    58        - uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
    59          with:
    60            go-version: stable
    61        - uses: go-task/setup-task@0ab1b2a65bc55236a3bc64cde78f80e20e8885c2 # v1.0.0
    62          with:
    63            repo-token: ${{ secrets.GITHUB_TOKEN }}
    64        - run: task setup
    65        - run: task test
    66        - uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
    67          if: matrix.os == 'ubuntu-latest'
    68          with:
    69            token: ${{ secrets.CODECOV_TOKEN }}
    70            file: ./coverage.txt
    71    acceptance-tests:
    72      strategy:
    73        matrix:
    74          pkgFormat: [deb, rpm, apk, archlinux, ipk]
    75          pkgPlatform: [amd64, arm64, 386, ppc64le, armv6, armv7, s390x]
    76      runs-on: ubuntu-latest
    77      env:
    78        DOCKER_CLI_EXPERIMENTAL: "enabled"
    79        NO_TEST_PPC64LE: "true"
    80      steps:
    81        - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
    82        - uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
    83          with:
    84            go-version: stable
    85        - uses: go-task/setup-task@0ab1b2a65bc55236a3bc64cde78f80e20e8885c2 # v1.0.0
    86          with:
    87            repo-token: ${{ secrets.GITHUB_TOKEN }}
    88        - uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
    89        - uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
    90        - run: task setup
    91        - run: task acceptance
    92          env:
    93            TEST_PATTERN: "/${{ matrix.pkgFormat }}/${{ matrix.pkgPlatform }}/"
    94    windows-build-pkgs:
    95      needs: [unit-tests]
    96      runs-on: windows-latest
    97      steps:
    98        - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
    99        - uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0
   100          with:
   101            go-version: stable
   102        - uses: go-task/setup-task@0ab1b2a65bc55236a3bc64cde78f80e20e8885c2 # v1.0.0
   103          with:
   104            repo-token: ${{ secrets.GITHUB_TOKEN }}
   105        - shell: bash
   106          run: |
   107            echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
   108        - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
   109          with:
   110            path: dist/
   111            key: ${{ env.sha_short }}
   112            enableCrossOsArchive: true
   113        - run: task acceptance:windows:package
   114    install-windows-pkgs:
   115      runs-on: ubuntu-latest
   116      needs: [windows-build-pkgs]
   117      steps:
   118        - uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
   119        - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
   120          with:
   121            go-version: stable
   122        - uses: go-task/setup-task@0ab1b2a65bc55236a3bc64cde78f80e20e8885c2 # v1.0.0
   123          with:
   124            repo-token: ${{ secrets.GITHUB_TOKEN }}
   125        - shell: bash
   126          run: |
   127            echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
   128        - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
   129          with:
   130            path: dist/
   131            key: ${{ env.sha_short }}
   132            enableCrossOsArchive: true
   133        - run: task acceptance:windows:install
   134    dependabot:
   135      needs: [license-check, unit-tests, acceptance-tests, install-windows-pkgs]
   136      runs-on: ubuntu-latest
   137      permissions:
   138        pull-requests: write
   139        contents: write
   140      if: ${{ github.actor == 'dependabot[bot]' && github.event_name == 'pull_request'}}
   141      steps:
   142        - id: metadata
   143          uses: dependabot/fetch-metadata@08eff52bf64351f401fb50d4972fa95b9f2c2d1b # v2.4.0
   144          with:
   145            github-token: "${{ secrets.GITHUB_TOKEN }}"
   146        - run: |
   147            gh pr review --approve "$PR_URL"
   148            gh pr merge --squash --auto "$PR_URL"
   149          env:
   150            PR_URL: ${{github.event.pull_request.html_url}}
   151            GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}