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}}