mirror of
https://github.com/prometheus/node_exporter.git
synced 2025-08-20 18:33:52 -07:00
* Update Go to 1.24 for all builds. * Update minimum Go version to 1.23. * Bump procfs library. Signed-off-by: Ben Kochie <superq@gmail.com>
314 lines
9.6 KiB
YAML
314 lines
9.6 KiB
YAML
name: bsd
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
GNU_TAR_VERSION: "1.35"
|
|
GO_VERSION_DRAGONFLY: "1.24.1"
|
|
GO_VERSION_FREEBSD: "123"
|
|
GO_VERSION_NETBSD: "1.24.1"
|
|
GO_VERSION_OPENBSD: "1.23.1"
|
|
GO_VERSION_SOLARIS: "1.24.1"
|
|
|
|
# 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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
- name: test-e2e
|
|
uses: vmactions/freebsd-vm@8873d98fd1413b5977cb2f7348fe329775159892 # v1.1.9
|
|
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
- name: test-e2e
|
|
uses: vmactions/openbsd-vm@7ac70b6de6f33efc74a90c1964afa3bcf0ee4401 # v1.1.6
|
|
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
- name: test-e2e
|
|
uses: vmactions/netbsd-vm@46a58bbf03682b4cb24142b97fa315ae52bed573 # v1.1.8
|
|
with:
|
|
copyback: false
|
|
envs: 'GO_VERSION_NETBSD GNU_TAR_VERSION'
|
|
usesh: true
|
|
prepare: |
|
|
/usr/sbin/pkg_add -u
|
|
/usr/sbin/pkg_add \
|
|
git \
|
|
gmake \
|
|
grep \
|
|
gsed \
|
|
gtar-base-${GNU_TAR_VERSION}\
|
|
python312 \
|
|
wget
|
|
run: |
|
|
echo "::group::Setup prerequisites"
|
|
set -eu
|
|
mkdir bin
|
|
GOGZ="go${GO_VERSION_NETBSD}.netbsd-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
|
|
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
- name: test-e2e
|
|
uses: vmactions/dragonflybsd-vm@e3c420e8a2362c2496fca6e76a291abd46f5d8e7 # v1.1.0
|
|
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
|
|
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
|
|
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_solaris:
|
|
name: Run end-to-end tests on Solaris
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout the repository
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
- name: test-e2e
|
|
uses: vmactions/solaris-vm@cc8f82fa1a7cc746153ec3f71bf11f311f16e225 # v1.1.1
|
|
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
|
|
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
|
|
export PATH=$(pwd)/bin:$PATH
|
|
|
|
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
- 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::"
|