CI: Add macos on amd64 to test platforms #42
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
name: CI | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
branches: ['*'] | |
permissions: | |
contents: read | |
jobs: | |
test: | |
name: Test / Go ${{ matrix.go-version }} / ${{ matrix.os }}/${{ matrix.arch }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
go-version: ['1.21.x', '1.20.x'] | |
arch: ['amd64', '386', 'arm64'] | |
os: ['ubuntu-latest'] | |
include: | |
- os: 'macos-latest' | |
arch: 'amd64' | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: ${{ matrix.go-version }} | |
# GH runners use amd64 which also support 386. | |
# For other architectures, use qemu. | |
- name: Install QEMU | |
if: matrix.arch != 'amd64' && matrix.arch != '386' | |
uses: docker/setup-qemu-action@v3 | |
- name: Test ${{ matrix.arch }} | |
run: make test | |
env: | |
GOARCH: ${{ matrix.arch }} | |
# Only amd64/arm64 support RACE, disable it on all other architectures. | |
NO_RACE: ${{ (matrix.arch == 'amd64' || matrix.arch == 'arm64') && '' || '1' }} | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
name: Check out repository | |
- uses: actions/setup-go@v4 | |
name: Set up Go | |
with: | |
# Use the Go version specified in the go.mod for linting. | |
go-version-file: go.mod | |
cache: false # managed by golangci-lint | |
- uses: golangci/golangci-lint-action@v3 | |
name: Install golangci-lint | |
with: | |
version: latest | |
args: --version # make lint will run the linter | |
- name: Lint | |
run: make lint GOLANGCI_LINT_ARGS=--out-format=github-actions | |
# Write in a GitHub Actions-friendly format | |
# to annotate lines in the PR. |