CI updates

This commit is contained in:
Markus F.X.J. Oberhumer 2025-01-08 12:57:52 +01:00
parent a846e483be
commit e4668e5328
1 changed files with 17 additions and 17 deletions

View File

@ -19,8 +19,8 @@ env:
UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO: 1
UPX_DEBUG_TEST_LIBC_QSORT: 1
ZSTD_CLEVEL: 9
# 2024-12-06
ZIG_DIST_VERSION: 0.14.0-dev.2384+cbc05e0b1
# 2025-01-08
ZIG_DIST_VERSION: 0.14.0-dev.2627+6a21d18ad
jobs:
job-rebuild-and-verify-stubs:
@ -83,10 +83,7 @@ jobs:
include:
- { os: ubuntu-20.04, use_extra: true }
- { os: ubuntu-22.04, use_extra: true, use_wine: true }
# GitHub ubuntu-24.04 is BETA; BUG: currently i386 programs can abort with "The futex facility returned an unexpected error code"
# THIS IS A KNOWN ISSUE: https://github.com/actions/runner-images/issues/9848
# { os: ubuntu-24.04, use_extra: true, use_wine: true }
- { os: ubuntu-24.04 } # TODO later: enable extra+wine once the GitHub VM is fixed
- { os: ubuntu-24.04, use_extra: true, use_wine: true }
name: ${{ format('{0}', matrix.os) }}
runs-on: ${{ matrix.os }}
steps:
@ -488,19 +485,19 @@ jobs:
- { zig_target: aarch64-linux-musl, qemu: qemu-aarch64 }
- { zig_target: aarch64-macos.11.0-none }
- { zig_target: aarch64-windows-gnu }
- { zig_target: arm-linux-musleabihf, zig_flags: -mcpu=cortex_a5, qemu: qemu-arm }
- { zig_target: armeb-linux-musleabihf, zig_flags: -mcpu=cortex_a5, qemu: qemu-armeb }
# { zig_target: i386-linux-gnu.2.3.4, zig_flags: -march=i586 }
- { zig_target: arm-linux-musleabihf, qemu: qemu-arm }
- { zig_target: armeb-linux-musleabihf, qemu: qemu-armeb }
- { zig_target: i386-linux-gnu.2.3.4, zig_flags: -march=i586 }
- { zig_target: i386-linux-musl, zig_flags: -march=i586, qemu: qemu-i386 }
- { zig_target: i386-windows-gnu }
- { zig_target: mips-linux-musleabihf, qemu: qemu-mips }
- { zig_target: mips-linux-musleabi, zig_flags: -msoft-float, qemu: qemu-mips }
- { zig_target: mipsel-linux-musleabihf, qemu: qemu-mipsel }
- { zig_target: mips-linux-musleabihf, qemu: qemu-mips }
- { zig_target: mipsel-linux-musleabi, zig_flags: -msoft-float, qemu: qemu-mipsel }
- { zig_target: powerpc-linux-musleabi, qemu: qemu-ppc }
- { zig_target: mipsel-linux-musleabihf, qemu: qemu-mipsel }
- { zig_target: powerpc-linux-musleabihf, qemu: qemu-ppc }
- { zig_target: powerpc64-linux-musl, qemu: qemu-ppc64 }
- { zig_target: powerpc64le-linux-musl, qemu: qemu-ppc64le }
# { zig_target: x86_64-linux-gnu.2.3.4, qemu: qemu-x86_64 } # can use QEMU because of gcompat
- { zig_target: x86_64-linux-gnu.2.3.4, qemu: qemu-x86_64 } # can use QEMU because of gcompat
- { zig_target: x86_64-linux-musl, qemu: qemu-x86_64 }
- { zig_target: x86_64-macos.11.0-none }
- { zig_target: x86_64-windows-gnu }
@ -508,8 +505,6 @@ jobs:
runs-on: ubuntu-latest
container: ${{ contains(matrix.qemu, 'qemu-armeb') && 'alpine:3.19' || 'alpine:3.20' }} # qemu-armeb bug
env:
# zig is currently missing winpthreads; see https://github.com/ziglang/zig/issues/10989
UPX_CONFIG_EXPECT_THREADS: ${{ contains(matrix.zig_target, '-windows') && 'OFF' || 'ON' }}
UPX_CONFIG_HAVE_WORKING_BUILD_RPATH: ''
# for zig-cc wrapper scripts (see below):
ZIG_CPPFLAGS: -DUPX_DOCTEST_CONFIG_MULTITHREADING
@ -568,10 +563,15 @@ jobs:
# -fPIE is for compilation only => also use the correct linker flag "-pie"
# INFO: it seems the zig driver does handle this automatically(??), so not really needed
if test "X$ZIG_PIC" = "X-fPIE"; then true;
echo "ZIG_FLAGS=$ZIG_FLAGS --start-no-unused-arguments -pie --end-no-unused-arguments" >> $GITHUB_ENV
ZIG_FLAGS="$ZIG_FLAGS --start-no-unused-arguments -pie --end-no-unused-arguments"
echo "UPX_CONFIG_DISABLE_SHARED_LIBS=ON" >> $GITHUB_ENV # conflicts with ZIG_PIC/ZIG_FLAGS
fi
- run: set -x; zig version; zig-cc --version; zig-cxx --version
# zig bug TODO later: need -Wno-unused-command-line-argument
case "$ZIG_TARGET" in
powerpc*) ZIG_FLAGS="$ZIG_FLAGS -Wno-unused-command-line-argument" ;;
esac
echo "ZIG_FLAGS=$ZIG_FLAGS" >> $GITHUB_ENV
# run: set -x; zig version; zig-cc --version; zig-cxx --version
- run: zig-cc -E -x c -dM /dev/null # list predefined macros for C
- run: zig-cxx -E -x c++ -dM /dev/null # list predefined macros for C++
- name: ${{ format('Build Release with zig-cc -target {0} {1}', env.ZIG_TARGET, env.ZIG_PIC) }}