Update test patch #679
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json | |
name: "Main" | |
on: | |
push: | |
tags: ["*"] | |
branches: ["*"] | |
pull_request: | |
branches: ["*"] | |
workflow_dispatch: | |
permissions: {} | |
jobs: | |
gofmt: | |
name: "Gofmt" | |
runs-on: "ubuntu-latest" | |
permissions: | |
contents: "read" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" | |
- name: "Set up Go" | |
uses: "actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34" | |
with: | |
go-version-file: "./go.mod" | |
check-latest: true | |
- name: "Gofmt" | |
run: | | |
make gofmt | |
staticcheck: | |
name: "Staticcheck" | |
runs-on: "ubuntu-latest" | |
permissions: | |
contents: "read" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" | |
- name: "Set up Go" | |
uses: "actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34" | |
with: | |
go-version-file: "./go.mod" | |
check-latest: true | |
- name: "Staticcheck" | |
uses: "dominikh/staticcheck-action@fe1dd0c3658873b46f8c9bb3291096a617310ca6" | |
with: | |
install-go: false | |
test: | |
name: "Test on ${{ matrix.os }}" | |
needs: ["gofmt", "staticcheck"] | |
runs-on: "${{ matrix.os }}" | |
permissions: | |
contents: "read" | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["ubuntu-latest", "windows-latest", "macos-latest"] | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" | |
- name: "Set up Go" | |
uses: "actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34" | |
with: | |
go-version-file: "./go.mod" | |
check-latest: true | |
- name: "Test" | |
run: | | |
make test | |
test-race: | |
name: "Test race" | |
needs: ["gofmt", "staticcheck"] | |
runs-on: "ubuntu-latest" | |
permissions: | |
contents: "read" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" | |
- name: "Set up Go" | |
uses: "actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34" | |
with: | |
go-version-file: "./go.mod" | |
check-latest: true | |
- name: "Test race" | |
run: | | |
make test-race | |
test-e2e: | |
name: "Test e2e" | |
needs: ["gofmt", "staticcheck"] | |
runs-on: "ubuntu-24.04" | |
permissions: | |
contents: "read" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" | |
- name: "Set up Go" | |
uses: "actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34" | |
with: | |
go-version-file: "./go.mod" | |
check-latest: true | |
- name: "Test e2e" | |
run: | | |
make test-e2e | |
build: | |
name: >- | |
Build for | |
${{ matrix.go.GOOS }}-${{ matrix.go.GOARCH }} | |
${{ matrix.go.GOARM != '' && format('v{0}', matrix.go.GOARM) || '' }} | |
needs: ["test", "test-race", "test-e2e"] | |
runs-on: "ubuntu-latest" | |
permissions: | |
contents: "read" | |
strategy: | |
fail-fast: false | |
matrix: | |
go: | |
- { GOOS: "linux", GOARCH: "amd64" } | |
- { GOOS: "linux", GOARCH: "arm64" } | |
- { GOOS: "linux", GOARCH: "arm", GOARM: "7" } | |
- { GOOS: "linux", GOARCH: "arm", GOARM: "6" } | |
- { GOOS: "linux", GOARCH: "riscv64" } | |
- { GOOS: "linux", GOARCH: "ppc64le" } | |
- { GOOS: "linux", GOARCH: "s390x" } | |
- { GOOS: "windows", GOARCH: "amd64" } | |
- { GOOS: "windows", GOARCH: "arm64" } | |
- { GOOS: "darwin", GOARCH: "amd64" } | |
- { GOOS: "darwin", GOARCH: "arm64" } | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" | |
- name: "Set up Go" | |
uses: "actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34" | |
with: | |
go-version-file: "./go.mod" | |
check-latest: true | |
- name: "Build" | |
run: | | |
make build \ | |
GOOS="${{ matrix.go.GOOS }}" \ | |
GOARCH="${{ matrix.go.GOARCH }}" \ | |
GOARM="${{ matrix.go.GOARM }}" | |
file ./dist/*-*-* && gzip -nv ./dist/*-*-* | |
- name: "Upload artifacts" | |
uses: "actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1" | |
with: | |
name: "dist-${{ matrix.go.GOOS }}-${{ matrix.go.GOARCH }}-${{ matrix.go.GOARM }}" | |
path: "./dist/*.gz" | |
retention-days: 1 | |
build-push-docker: | |
name: "Build and push Docker images" | |
needs: ["build"] | |
runs-on: "ubuntu-latest" | |
permissions: | |
contents: "read" | |
packages: "write" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" | |
- name: "Set up QEMU" | |
uses: "docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392" | |
- name: "Set up Docker Buildx" | |
uses: "docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2" | |
- name: "Login to GitHub Container Registry" | |
if: "github.event_name != 'pull_request'" | |
uses: "docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567" | |
with: | |
registry: "ghcr.io" | |
username: "${{ github.actor }}" | |
password: "${{ secrets.GITHUB_TOKEN }}" | |
- name: "Login to Docker Hub" | |
if: "github.event_name != 'pull_request'" | |
uses: "docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567" | |
with: | |
registry: "docker.io" | |
username: "${{ secrets.DOCKERHUB_USERNAME }}" | |
password: "${{ secrets.DOCKERHUB_TOKEN }}" | |
- name: "Extract metadata" | |
id: "meta" | |
uses: "docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804" | |
with: | |
images: | | |
ghcr.io/${{ github.repository }} | |
docker.io/${{ github.repository }} | |
tags: | | |
type=ref,event=branch | |
type=semver,pattern=v{{version}} | |
type=semver,pattern=v{{major}}.{{minor}} | |
type=semver,pattern=v{{major}} | |
- name: "Build and push" | |
uses: "docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4" | |
with: | |
context: "./" | |
platforms: "linux/amd64,linux/arm64/v8,linux/arm/v7,linux/arm/v6,linux/riscv64,linux/ppc64le,linux/s390x" | |
tags: "${{ steps.meta.outputs.tags }}" | |
labels: "${{ steps.meta.outputs.labels }}" | |
push: "${{ github.event_name != 'pull_request' }}" | |
publish-github-release: | |
name: "Publish GitHub release" | |
if: "startsWith(github.ref, 'refs/tags/v')" | |
needs: ["build", "build-push-docker"] | |
runs-on: "ubuntu-latest" | |
permissions: | |
contents: "write" | |
steps: | |
- name: "Download artifacts" | |
uses: "actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806" | |
with: | |
pattern: "dist-*" | |
merge-multiple: true | |
path: "assets" | |
- name: "Publish" | |
uses: "hectorm/ghaction-release@066200d04c3549852afa243d631ea3dc93390f68" | |
with: | |
assets-path: "./assets/" |