Revert "Disable illumos in CI for now" #89
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: 'test' | |
on: | |
pull_request: | |
paths: ['**.go', 'go.mod', '.github/workflows/*'] | |
push: | |
branches: ['main', 'aix'] | |
jobs: | |
# Test Windows and Linux with the latest Go version and the oldest we support. | |
test: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
- windows-latest | |
go: | |
- '1.17' | |
- '1.21' | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: checkout | |
uses: actions/checkout@v3 | |
- name: setup Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: ${{ matrix.go }} | |
- name: test | |
run: | | |
go test -parallel 1 -race ./... | |
# Test gccgo | |
testgcc: | |
runs-on: ubuntu-22.04 | |
name: test (ubuntu-22.04, gccgo 12.1) | |
steps: | |
- name: checkout | |
uses: actions/checkout@v3 | |
- name: test | |
run: | | |
sudo apt-get -y install gccgo-12 | |
go-12 test -parallel 1 ./... | |
# Test only the latest Go version on macOS; we use the macOS builders for BSD | |
# and illumos, and GitHub doesn't allow many of them to run concurrently. If | |
# it works on Windows and Linux with Go 1.17, then it probably does on macOS | |
# too. | |
testMacOS: | |
name: test | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- macos-11 | |
- macos-13 | |
go: | |
- '1.21' | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: checkout | |
uses: actions/checkout@v3 | |
- name: setup Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: ${{ matrix.go }} | |
- name: test | |
run: | | |
go test -parallel 1 -race ./... | |
# OpenBSD; no -race as the VM doesn't include the comp set. | |
# | |
# TODO: should probably add this, but on my local machine the tests time out | |
# with -race as the waits aren't long enough (OpenBSD is kind of slow), | |
# so should probably look into that first. Go 1.19 is supposed to have a | |
# much faster race detector, so maybe waiting until we have that is | |
# enough. | |
testOpenBSD: | |
runs-on: macos-12 | |
name: test (openbsd, 1.17) | |
steps: | |
- uses: actions/checkout@v3 | |
- name: test (openbsd, 1.17) | |
id: test | |
uses: vmactions/openbsd-vm@v0 | |
with: | |
prepare: pkg_add go | |
run: | | |
useradd -mG wheel action | |
su action -c 'go test -parallel 1 ./...' | |
# NetBSD | |
testNetBSD: | |
runs-on: macos-12 | |
name: test (netbsd, 1.20) | |
steps: | |
- uses: actions/checkout@v3 | |
- name: test (netbsd, 1.20) | |
id: test | |
uses: vmactions/netbsd-vm@v0 | |
with: | |
prepare: pkg_add go | |
# TODO: no -race for the same reason as OpenBSD (the timing; it does run). | |
run: | | |
useradd -mG wheel action | |
su action -c 'go120 test -parallel 1 ./...' | |
# illumos | |
testillumos: | |
runs-on: macos-12 | |
name: test (illumos, 1.19) | |
steps: | |
- uses: actions/checkout@v3 | |
- name: test (illumos, 1.19) | |
id: test | |
uses: papertigers/illumos-vm@r38 | |
with: | |
prepare: | | |
pkg install go-119 | |
run: | | |
useradd action | |
export GOCACHE=/tmp/go-cache | |
export GOPATH=/tmp/go-path | |
su action -c '/opt/ooce/go-1.19/bin/go test -parallel 1 ./...' | |
# Older Debian 6, for old Linux kernels. | |
testDebian6: | |
runs-on: macos-12 | |
name: test (debian6, 1.19) | |
strategy: | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache Vagrant boxes | |
uses: actions/cache@v3 | |
with: | |
path: ~/.vagrant.d/boxes | |
key: ${{ runner.os }}-vagrant-${{ hashFiles('Vagrantfile') }} | |
restore-keys: | | |
${{ runner.os }}-vagrant- | |
- name: setup Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.19' | |
- name: test (debian6, 1.19) | |
id: test | |
run: | | |
cp -f .github/workflows/Vagrantfile.debian6 Vagrantfile | |
export GOOS=linux | |
export GOARCH=amd64 | |
for p in $(go list ./...); do | |
go test -c -o ${p//\//-}.test $p | |
done | |
vagrant up | |
for t in *.test; do | |
vagrant ssh -c "/vagrant/$t -test.parallel 1" | |
done |