[tst] Work around a limitation on Arch Linux in test_debuginfo #2
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: 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 |