chore: add xBSD pipelines #89
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: bsd | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
permissions: | |
contents: read | |
env: | |
GNU_TAR_VERSION: "1.35" | |
GO_VERSION_DRAGONFLY: "1.23.3" | |
GO_VERSION_FREEBSD: "123" | |
GO_VERSION_NETBSD: "123" | |
GO_VERSION_OPENBSD: "1.23.1" | |
GO_VERSION_SOLARIS: "1.23.3" | |
# To spin up one of the VMs below, see the "Debug Shell" section here: https://github.com/vmactions | |
jobs: | |
test_freebsd: | |
name: Run end-to-end tests on FreeBSD | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
- name: test-e2e | |
uses: vmactions/freebsd-vm@v1 | |
with: | |
copyback: false | |
envs: 'GO_VERSION_FREEBSD GNU_TAR_VERSION' | |
usesh: true | |
prepare: | | |
pkg update -f | |
pkg install -y \ | |
bash \ | |
git \ | |
gmake \ | |
gnugrep \ | |
go${GO_VERSION_FREEBSD} \ | |
gsed \ | |
gtar \ | |
python \ | |
wget | |
run: | | |
echo "::group::Setup prerequisites" | |
set -eu | |
mkdir bin | |
ln -s $(which go${GO_VERSION_FREEBSD}) $(pwd)/bin/go | |
ln -s $(which ggrep) $(pwd)/bin/grep | |
ln -s $(which gmake) $(pwd)/bin/make | |
ln -s $(which gsed) $(pwd)/bin/sed | |
ln -s $(which gtar) $(pwd)/bin/tar | |
export PATH=$(pwd)/bin:$PATH | |
echo "::endgroup::" | |
echo "::group::Print environment information" | |
uname -a | |
echo "GOOS: $(go env GOOS)" | |
echo "GOARCH: $(go env GOARCH)" | |
echo "::endgroup::" | |
echo "::group::Run End-to-End Tests" | |
git config --global --add safe.directory $(pwd) | |
gmake test-e2e | |
echo "::endgroup::" | |
test_openbsd: | |
name: Run end-to-end tests on OpenBSD | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
- name: test-e2e | |
uses: vmactions/openbsd-vm@v1 | |
with: | |
copyback: false | |
envs: 'GO_VERSION_OPENBSD GNU_TAR_VERSION' | |
usesh: true | |
prepare: | | |
pkg_add -u | |
pkg_add \ | |
bash \ | |
ggrep \ | |
git \ | |
gmake \ | |
go-${GO_VERSION_OPENBSD} \ | |
gsed \ | |
gtar-${GNU_TAR_VERSION}p0-static \ | |
python \ | |
wget | |
run: | | |
echo "::group::Setup prerequisites" | |
set -eu | |
mkdir bin | |
ln -s $(which ggrep) $(pwd)/bin/grep | |
ln -s $(which gmake) $(pwd)/bin/make | |
ln -s $(which gsed) $(pwd)/bin/sed | |
ln -s $(which gtar) $(pwd)/bin/tar | |
export PATH=$(pwd)/bin:$PATH | |
echo "::endgroup::" | |
echo "::group::Print environment information" | |
uname -a | |
echo "GOOS: $(go env GOOS)" | |
echo "GOARCH: $(go env GOARCH)" | |
echo "::endgroup::" | |
echo "::group::Run End-to-End Tests" | |
git config --global --add safe.directory $(pwd) | |
make test-e2e | |
echo "::endgroup::" | |
test_netbsd: | |
name: Run end-to-end tests on NetBSD | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
- name: test-e2e | |
uses: vmactions/netbsd-vm@v1 | |
with: | |
copyback: false | |
envs: 'GO_VERSION_NETBSD GNU_TAR_VERSION' | |
usesh: true | |
prepare: | | |
/usr/sbin/pkg_add -u | |
/usr/sbin/pkg_add \ | |
git \ | |
gmake \ | |
go${GO_VERSION_NETBSD} \ | |
grep \ | |
gsed \ | |
gtar-base-${GNU_TAR_VERSION}\ | |
python312 \ | |
wget | |
run: | | |
echo "::group::Setup prerequisites" | |
set -eu | |
mkdir bin | |
ln -s $(which go${GO_VERSION_NETBSD}) $(pwd)/bin/go | |
ln -s $(which ggrep) $(pwd)/bin/grep | |
ln -s $(which gmake) $(pwd)/bin/make | |
ln -s $(which gsed) $(pwd)/bin/sed | |
ln -s $(which gtar) $(pwd)/bin/tar | |
export PATH=$(pwd)/bin:$PATH | |
echo "::endgroup::" | |
echo "::group::Print environment information" | |
uname -a | |
echo "GOOS: $(go env GOOS)" | |
echo "GOARCH: $(go env GOARCH)" | |
echo "::endgroup::" | |
echo "::group::Run End-to-End Tests" | |
git config --global --add safe.directory $(pwd) | |
make test-e2e | |
echo "::endgroup::" | |
test_dragonfly: | |
name: Run end-to-end tests on DragonFly | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
- name: test-e2e | |
uses: vmactions/dragonflybsd-vm@v1 | |
with: | |
copyback: false | |
envs: 'GO_VERSION_DRAGONFLY' | |
usesh: true | |
prepare: | | |
pkg update && pkg upgrade -y | |
pkg install -y \ | |
bash \ | |
git \ | |
gmake \ | |
gnugrep \ | |
gsed \ | |
gtar \ | |
python3 \ | |
wget | |
run: | | |
echo "::group::Setup prerequisites" | |
set -eu | |
mkdir bin | |
export PATH=$(pwd)/bin:$PATH | |
GOGZ="go${GO_VERSION_DRAGONFLY}.dragonfly-amd64.tar.gz" | |
wget https://go.dev/dl/${GOGZ} | |
gtar xzf ${GOGZ} | |
ln -s $(pwd)/go/bin/go $(pwd)/bin/go | |
ln -s $(which ggrep) $(pwd)/bin/grep | |
ln -s $(which gmake) $(pwd)/bin/make | |
ln -s $(which gsed) $(pwd)/bin/sed | |
ln -s $(which gtar) $(pwd)/bin/tar | |
ln -s $(which python3) $(pwd)/bin/python | |
echo "::endgroup::" | |
echo "::group::Print environment information" | |
uname -a | |
echo "GOOS: $(go env GOOS)" | |
echo "GOARCH: $(go env GOARCH)" | |
echo "::endgroup::" | |
echo "::group::Run End-to-End Tests" | |
git config --global --add safe.directory $(pwd) | |
gmake test-e2e | |
echo "::endgroup::" | |
test_solaris: | |
name: Run end-to-end tests on Solaris | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
- name: test-e2e | |
uses: vmactions/solaris-vm@v1 | |
with: | |
copyback: false | |
envs: 'GO_VERSION_SOLARIS' | |
usesh: true | |
prepare: | | |
pkg update | |
pkg install \ | |
bash \ | |
curl \ | |
gcc \ | |
git \ | |
gnu-grep \ | |
gnu-make \ | |
gnu-sed \ | |
gnu-tar | |
run: | | |
echo "::group::Setup prerequisites" | |
set -eu | |
mkdir bin | |
export PATH=$(pwd)/bin:$PATH | |
GOGZ="go${GO_VERSION_SOLARIS}.solaris-amd64.tar.gz" | |
wget https://go.dev/dl/${GOGZ} | |
gtar xzf ${GOGZ} | |
ln -s $(pwd)/go/bin/go $(pwd)/bin/go | |
ln -s $(which ggrep) $(pwd)/bin/grep | |
ln -s $(which gmake) $(pwd)/bin/make | |
ln -s $(which gsed) $(pwd)/bin/sed | |
ln -s $(which gtar) $(pwd)/bin/tar | |
echo ">> building promu as it is not shipped for Solaris" | |
git clone https://github.com/prometheus/promu.git | |
cd promu | |
go build . | |
cd - | |
mkdir -p $(go env GOPATH)/bin | |
ln -s $(pwd)/promu/promu $(go env GOPATH)/bin/promu | |
export PATH=$(go env GOPATH)/bin:$PATH | |
echo "::endgroup::" | |
echo "::group::Print environment information" | |
uname -a | |
echo "GOOS: $(go env GOOS)" | |
echo "GOARCH: $(go env GOARCH)" | |
echo "::endgroup::" | |
echo "::group::Run End-to-End Tests" | |
git config --global --add safe.directory $(pwd) | |
make test-e2e | |
echo "::endgroup::" | |
test_macos: | |
name: Run end-to-end tests on macOS | |
runs-on: macos-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: | | |
brew install \ | |
bash \ | |
curl \ | |
git \ | |
grep \ | |
make \ | |
gnu-sed \ | |
gnu-tar \ | |
go \ | |
python3 | |
- name: test-e2e | |
run: | | |
echo "::group::Setup prerequisites" | |
set -eu | |
mkdir bin | |
ln -s $(which ggrep) $(pwd)/bin/grep | |
ln -s $(which gmake) $(pwd)/bin/make | |
ln -s $(which gsed) $(pwd)/bin/sed | |
ln -s $(which gtar) $(pwd)/bin/tar | |
export PATH=$(pwd)/bin:$PATH | |
echo "::endgroup::" | |
echo "::group::Print environment information" | |
uname -a | |
echo "GOOS: $(go env GOOS)" | |
echo "GOARCH: $(go env GOARCH)" | |
echo "::endgroup::" | |
echo "::group::Run End-to-End Tests" | |
git config --global --add safe.directory $(pwd) | |
make test-e2e | |
echo "::endgroup::" |