ci: update and improve FreeBSD CI (#24726)

This commit is contained in:
Laurent Cheylus 2025-06-15 19:26:50 +02:00 committed by GitHub
parent 6e271b2ae6
commit 099b57f1d0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -19,52 +19,84 @@ on:
- '!ci/freebsd_ci.vsh' - '!ci/freebsd_ci.vsh'
- '!cmd/tools/builders/**.v' - '!cmd/tools/builders/**.v'
### See https://github.com/vmactions/freebsd-vm ### See https://github.com/cross-platform-actions/action
### for a description of the used fields here ### for a description of the used fields here
jobs: jobs:
test-on-freebsd-14-2-x86: tcc-freebsd:
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 20 timeout-minutes: 20
name: Run a FreeBSD 14.2 x86 VM
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: Test in FreeBSD - name: Tests on FreeBSD with tcc
id: test-freebsd-14-2-runs-in-vm id: tests-freebsd-tcc
uses: vmactions/freebsd-vm@v1 uses: cross-platform-actions/action@v0.28.0
with: with:
release: '14.2' operating_system: freebsd
mem: 4096 version: '14.2'
usesh: true memory: 4G
copyback: false shell: sh
prepare: pkg install -y git sqlite3 bash sync_files: runner-to-vm
run: | run: |
sudo pkg install -y git sqlite3 gmake boehm-gc-threaded libiconv
# Mandatory: hostname not set in VM => some tests fail
sudo hostname -s freebsd-ci
echo "### OS infos"
uname -a
git config --global --add safe.directory . git config --global --add safe.directory .
make CFLAGS= gmake
./v symlink sudo ./v symlink
export VFLAGS='-cc tcc -no-retry-compilation'
./v run ci/freebsd_ci.vsh all ./v run ci/freebsd_ci.vsh all
##### Run a FreeBSD 14 x86 VM: clang-freebsd:
##### [ 2/25] C: 808.5 ms, R: 3.835 ms vlib/math/big/array_ops_test.v runs-on: ubuntu-latest
##### Run a FreeBSD 15 ARM VM timeout-minutes: 20
##### [ 1/25] C: 15992.4 ms, R: 146.582 ms vlib/math/big/array_ops_test.v steps:
##### => the overhead is too much to be practical for the full test suite. - uses: actions/checkout@v4
##### It is still nice, that it works at all though ... - name: Tests on FreeBSD with clang
## test-on-freebsd-15-aarch64: id: tests-freebsd-clang
## runs-on: ubuntu-latest uses: cross-platform-actions/action@v0.28.0
## name: Run a FreeBSD 15 ARM VM with:
## steps: operating_system: freebsd
## - uses: actions/checkout@v4 version: '14.2'
## - name: Test in FreeBSD memory: 4G
## id: test-freebsd-15-runs-in-vm shell: sh
## uses: vmactions/freebsd-vm@v1 sync_files: runner-to-vm
## with: run: |
## release: "15.0" sudo pkg install -y git sqlite3 gmake boehm-gc-threaded libiconv
## arch: aarch64 # Mandatory: hostname not set in VM => some tests fail
## ## cpu: 3 sudo hostname -s freebsd-ci
## mem: 4096 echo "### OS infos"
## usesh: true uname -a
## copyback: false git config --global --add safe.directory .
## prepare: pkg install -y git sqlite3 bash gmake
## run: | sudo ./v symlink
## ./.github/workflows/freebsd_ci.sh export VFLAGS='-cc clang'
./v run ci/freebsd_ci.vsh all
gcc-freebsd:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
- name: Tests on FreeBSD with gcc
id: tests-freebsd-gcc
uses: cross-platform-actions/action@v0.28.0
with:
operating_system: freebsd
version: '14.2'
memory: 4G
shell: sh
sync_files: runner-to-vm
run: |
sudo pkg install -y git sqlite3 gmake boehm-gc-threaded libiconv gcc
# Mandatory: hostname not set in VM => some tests fail
sudo hostname -s freebsd-ci
echo "### OS infos"
uname -a
git config --global --add safe.directory .
gmake
sudo ./v symlink
export VFLAGS='-cc gcc'
./v run ci/freebsd_ci.vsh all