Skip to content

[tst] Work around a limitation on Arch Linux in test_debuginfo #2

[tst] Work around a limitation on Arch Linux in test_debuginfo

[tst] Work around a limitation on Arch Linux in test_debuginfo #2

Workflow file for this run

name: FreeBSD
on:
push:
branches: [ main ]
paths-ignore:
- AUTHORS.md
- CC-BY-4.0.txt
- CHANGES.md
- CODE_OF_CONDUCT.md
- CONTRIBUTING.md
- COPYING
- COPYING.LIB
- HISTORY
- LICENSE-2.0.txt
- MISSING
- MIT.txt
- README.md
- RELEASE
- TODO
- 'contrib/**'
- 'data/**'
- 'doc/**'
- 'po/**'
- 'regress/**'
jobs:
freebsd:
runs-on: ubuntu-latest
# Environment variables for the job
env:
PATH: /home/runner/.local/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/bin:/sbin
# All of these steps run from within the main source
# directory, so think of that as your $PWD
steps:
# This means clone the git repo
- uses: actions/checkout@v4
# Within the container, install the dependencies, build,
# and run the test suite
- name: Build and run the test suite
uses: vmactions/freebsd-vm@v1
with:
envs: 'PATH'
usesh: true
# Requirements before the git clone can happen
prepare: |
env ASSUME_ALWAYS_YES=yes pkg update
pkg install -q -y git tree
# Run the build and test
run: |
# Install GNU make(1) so we can use the instreqs target
pkg install -q -y gmake
# Store exit codes for each step here for use in the next step
mkdir -p exitcodes
# Install build dependencies and set up the target
gmake instreqs
echo $? > exitcodes/instreqs
# Build the software
gmake debug
echo $? > exitcodes/build
# Run the test suite
gmake check
echo $? > exitcodes/test
# Process the exit codes outside the VM
- name: Check exit codes
run: |
for ec in exitcodes/* ; do
code="$(cat "${ec}" 2>/dev/null)"
[ -z "${code}" ] && code=0
[ ${code} -eq 0 ] || exit ${code}
done