From 724cb262ad4ba98166c7c41828f6f6ea4210b0ea Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Thu, 21 Nov 2024 15:00:48 +0100 Subject: [PATCH] test bsd Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com> --- .github/workflows/build.yml | 56 +++++++++++++++++++++++++++++++++++++ hack/Vagrantfile.freebsd | 18 ++++++++++++ hack/Vagrantfile.openbsd | 22 +++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 hack/Vagrantfile.freebsd create mode 100644 hack/Vagrantfile.openbsd diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6f6e1481..f3743984 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -234,6 +234,62 @@ jobs: name: test-reports-${{ env.TESTREPORTS_NAME }} path: ${{ env.TESTREPORTS_BASEDIR }} + test-bsd-unit: + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + os: + - freebsd + - openbsd + steps: + - + name: Prepare + run: | + echo "VAGRANT_FILE=hack/Vagrantfile.${{ matrix.os }}" >> $GITHUB_ENV + - + name: Checkout + uses: actions/checkout@v4 + - + name: Cache Vagrant boxes + uses: actions/cache@v4 + with: + path: ~/.vagrant.d/boxes + key: ${{ runner.os }}-vagrant-${{ matrix.os }}-${{ hashFiles(env.VAGRANT_FILE) }} + restore-keys: | + ${{ runner.os }}-vagrant-${{ matrix.os }}- + - + name: Install vagrant + run: | + set -x + sudo apt-get update + sudo apt-get install -y libvirt-daemon libvirt-daemon-system vagrant vagrant-libvirt ruby-libvirt + sudo systemctl enable --now libvirtd + sudo chmod a+rw /var/run/libvirt/libvirt-sock + vagrant plugin install vagrant-libvirt + vagrant --version + - + name: Set up vagrant + run: | + ln -sf ${{ env.VAGRANT_FILE }} Vagrantfile + vagrant up --no-tty + - + name: Test + run: | + vagrant ssh -- "cd /vagrant; SKIP_INTEGRATION_TESTS=1 go test -mod=vendor -coverprofile=coverage.txt -covermode=atomic ${{ env.TESTFLAGS }} ./..." + vagrant ssh -c "sudo cat /vagrant/coverage.txt" > coverage.txt + - + name: Upload coverage + if: always() + uses: codecov/codecov-action@v5 + with: + files: ./coverage.txt + env_vars: RUNNER_OS + flags: unit,${{ matrix.os }} + token: ${{ secrets.CODECOV_TOKEN }} + env: + RUNNER_OS: ${{ matrix.os }} + govulncheck: runs-on: ubuntu-24.04 permissions: diff --git a/hack/Vagrantfile.freebsd b/hack/Vagrantfile.freebsd new file mode 100644 index 00000000..f86df613 --- /dev/null +++ b/hack/Vagrantfile.freebsd @@ -0,0 +1,18 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +Vagrant.configure("2") do |config| + config.vm.box = "generic/freebsd14" + config.vm.boot_timeout = 900 + config.vm.synced_folder ".", "/vagrant", type: "rsync" + config.ssh.keep_alive = true + + config.vm.provision "init", type: "shell", run: "once" do |sh| + sh.inline = <<~SHELL + pkg bootstrap + pkg install -y go123 git + ln -s /usr/local/bin/go123 /usr/local/bin/go + go install gotest.tools/gotestsum@#{ENV['GOTESTSUM_VERSION']} + SHELL + end +end diff --git a/hack/Vagrantfile.openbsd b/hack/Vagrantfile.openbsd new file mode 100644 index 00000000..7b37deab --- /dev/null +++ b/hack/Vagrantfile.openbsd @@ -0,0 +1,22 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +Vagrant.configure("2") do |config| + config.vm.box = "generic/openbsd7" + config.vm.boot_timeout = 900 + config.vm.synced_folder ".", "/vagrant", type: "rsync" + config.ssh.keep_alive = true + + config.vm.provision "init", type: "shell", run: "once" do |sh| + sh.inline = <<~SHELL + # no packages for 7.4 at http://ftp.openbsd.org/pub/OpenBSD + export PKG_PATH="http://ftp.openbsd.org/pub/OpenBSD/7.5/packages/$(uname -m)/" + pkg_add -v git + + ftp https://go.dev/dl/go1.23.3.openbsd-amd64.tar.gz + tar -C /usr/local -xzf go1.23.3.openbsd-amd64.tar.gz + ln -s /usr/local/go/bin/go /usr/local/bin/go + go install gotest.tools/gotestsum@#{ENV['GOTESTSUM_VERSION']} + SHELL + end +end