CI updates

This commit is contained in:
Markus F.X.J. Oberhumer
2023-09-06 12:48:30 +02:00
parent ac398f1ffe
commit 3b098b845a
2 changed files with 82 additions and 10 deletions
+6 -6
View File
@@ -14,7 +14,7 @@ jobs:
# ...and also uses a subdirectory "upx with space" in order to detect possible quoting issues # ...and also uses a subdirectory "upx with space" in order to detect possible quoting issues
# ...and also uses ccache as we are running the same build-script again and again # ...and also uses ccache as we are running the same build-script again and again
if: github.repository_owner == 'upx' if: github.repository_owner == 'upx'
strategy: { matrix: { container: ['alpine:3.9','alpine:edge'] } } strategy: { matrix: { container: ['alpine:3.9','alpine:3.18','alpine:edge'] } }
name: ${{ format('gcc by-hand {0}', matrix.container) }} name: ${{ format('gcc by-hand {0}', matrix.container) }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ${{ matrix.container }} container: ${{ matrix.container }}
@@ -24,7 +24,7 @@ jobs:
# install ccache, g++, git and various POSIX shells # install ccache, g++, git and various POSIX shells
shells="bash dash loksh mksh zsh" shells="bash dash loksh mksh zsh"
case ${{ matrix.container }} in case ${{ matrix.container }} in
*:edge) shells="$shells oksh yash" ;; *:3.18 | *:edge) shells="$shells oksh yash" ;;
esac esac
echo "installing shells: $shells" echo "installing shells: $shells"
apk update && apk upgrade && apk add ccache g++ git $shells apk update && apk upgrade && apk add ccache g++ git $shells
@@ -60,16 +60,16 @@ jobs:
- name: 'Build by-hand with mksh -o sh' - name: 'Build by-hand with mksh -o sh'
run: 'mksh -o sh "./upx with space/misc/scripts/build_upx_by_hand.sh"' run: 'mksh -o sh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
- name: 'Build by-hand with oksh' - name: 'Build by-hand with oksh'
if: ${{ contains(matrix.container, ':edge') }} if: endsWith(matrix.container, ':3.18') || endsWith(matrix.container, ':edge')
run: 'oksh "./upx with space/misc/scripts/build_upx_by_hand.sh"' run: 'oksh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
- name: 'Build by-hand with oksh -o posix' - name: 'Build by-hand with oksh -o posix'
if: ${{ contains(matrix.container, ':edge') }} if: endsWith(matrix.container, ':3.18') || endsWith(matrix.container, ':edge')
run: 'oksh -o posix "./upx with space/misc/scripts/build_upx_by_hand.sh"' run: 'oksh -o posix "./upx with space/misc/scripts/build_upx_by_hand.sh"'
- name: 'Build by-hand with oksh -o sh' - name: 'Build by-hand with oksh -o sh'
if: ${{ contains(matrix.container, ':edge') }} if: endsWith(matrix.container, ':3.18') || endsWith(matrix.container, ':edge')
run: 'oksh -o sh "./upx with space/misc/scripts/build_upx_by_hand.sh"' run: 'oksh -o sh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
- name: 'Build by-hand with yash' - name: 'Build by-hand with yash'
if: ${{ contains(matrix.container, ':edge') }} if: endsWith(matrix.container, ':3.18') || endsWith(matrix.container, ':edge')
run: 'yash "./upx with space/misc/scripts/build_upx_by_hand.sh"' run: 'yash "./upx with space/misc/scripts/build_upx_by_hand.sh"'
- name: 'Build by-hand with zsh' - name: 'Build by-hand with zsh'
run: 'zsh "./upx with space/misc/scripts/build_upx_by_hand.sh"' run: 'zsh "./upx with space/misc/scripts/build_upx_by_hand.sh"'
@@ -32,15 +32,15 @@ jobs:
steps: steps:
- name: ${{ format('Install packages {0}', matrix.container) }} - name: ${{ format('Install packages {0}', matrix.container) }}
run: | run: |
apk update && apk upgrade && apk add bash cmake coreutils git make tar apk update && apk upgrade && apk add bash cmake coreutils file git make tar xz
apk add mingw-w64-gcc apk add mingw-w64-gcc
test "${{ matrix.i686_mingw }}" = "true" && apk add i686-mingw-w64-gcc test "${{ matrix.i686_mingw }}" = "true" && apk add i686-mingw-w64-gcc
test "${{ matrix.wine }}" = "true" && apk add wine test "${{ matrix.wine }}" = "true" && apk add wine
true true
- name: ${{ format('Check out UPX {0} source code', github.ref_name) }} - name: ${{ format('Check out UPX {0} source code', github.ref_name) }}
run: | run: |
# this seems to be needed when running in a container (beause of UID mismatch??) # this seems to be needed for Wine when running in a container (beause of UID mismatch??)
mkdir ~/.wine mkdir -p -v ~/.wine
# this seems to be needed when running in a container (beause of UID mismatch??) # this seems to be needed when running in a container (beause of UID mismatch??)
git config --global --add safe.directory '*' git config --global --add safe.directory '*'
git clone --branch "$GITHUB_REF_NAME" --depth 1 https://github.com/upx/upx . git clone --branch "$GITHUB_REF_NAME" --depth 1 https://github.com/upx/upx .
@@ -73,7 +73,7 @@ jobs:
with: with:
name: ${{ env.artifact_name }} name: ${{ env.artifact_name }}
path: tmp/artifact path: tmp/artifact
- name: ${{ format('Run test suite level {0}', env.UPX_TESTSUITE_LEVEL) }} - name: ${{ format('Run test suite') }}
if: ${{ matrix.wine }} if: ${{ matrix.wine }}
run: | run: |
git clone --depth=1 https://github.com/upx/upx-testsuite ../upx-testsuite git clone --depth=1 https://github.com/upx/upx-testsuite ../upx-testsuite
@@ -89,3 +89,75 @@ jobs:
env -C build/extra/cross-windows-mingw64/debug upx_exe=./upx.exe bash "$testsuite_1" env -C build/extra/cross-windows-mingw64/debug upx_exe=./upx.exe bash "$testsuite_1"
UPX_TESTSUITE_LEVEL=4 \ UPX_TESTSUITE_LEVEL=4 \
env -C build/extra/cross-windows-mingw64/release upx_exe=./upx.exe bash "$testsuite_1" env -C build/extra/cross-windows-mingw64/release upx_exe=./upx.exe bash "$testsuite_1"
- name: 'Run basic tests under Wine - mingw32/debug'
if: ${{ matrix.wine && matrix.i686_mingw }}
shell: bash
run: |
set -ex -o pipefail
cd build/extra/cross-windows-mingw32/debug
[[ -f upx && ! -f upx.exe ]] && mv -i -v upx upx.exe
pwd; file ./upx.exe
wine=wine64
tt='./upx.exe'
$wine ./upx.exe --version-short
$wine ./upx.exe -3 $tt -o tt.packed.exe
$wine ./upx.exe -l tt.packed.exe
$wine ./upx.exe -t tt.packed.exe
$wine ./upx.exe -d tt.packed.exe -o tt.unpacked.exe
$wine ./tt.packed.exe --version-short
$wine ./tt.unpacked.exe --version-short
- name: 'Run basic tests under Wine - mingw32/release'
if: ${{ matrix.wine && matrix.i686_mingw }}
shell: bash
run: |
set -ex -o pipefail
cd build/extra/cross-windows-mingw32/release
[[ -f upx && ! -f upx.exe ]] && mv -i -v upx upx.exe
pwd; file ./upx.exe
wine=wine64
tt='./upx.exe'
$wine ./upx.exe --version-short
$wine ./upx.exe -3 $tt -o tt.packed.exe
$wine ./upx.exe -l tt.packed.exe
$wine ./upx.exe -t tt.packed.exe
$wine ./upx.exe -d tt.packed.exe -o tt.unpacked.exe
$wine ./tt.packed.exe --version-short
$wine ./tt.unpacked.exe --version-short
- name: 'Run basic tests under Wine - mingw64/debug'
if: ${{ matrix.wine }}
shell: bash
run: |
set -ex -o pipefail
cd build/extra/cross-windows-mingw64/debug
[[ -f upx && ! -f upx.exe ]] && mv -i -v upx upx.exe
pwd; file ./upx.exe
wine=wine64
tt='./upx.exe'
$wine ./upx.exe --version-short
$wine ./upx.exe -3 $tt -o tt.packed.exe
$wine ./upx.exe -l tt.packed.exe
$wine ./upx.exe -t tt.packed.exe
$wine ./upx.exe -d tt.packed.exe -o tt.unpacked.exe
$wine ./tt.packed.exe --version-short
$wine ./tt.unpacked.exe --version-short
- name: 'Run basic tests under Wine - mingw64/release'
if: ${{ matrix.wine }}
shell: bash
run: |
set -ex -o pipefail
cd build/extra/cross-windows-mingw64/release
[[ -f upx && ! -f upx.exe ]] && mv -i -v upx upx.exe
pwd; file ./upx.exe
wine=wine64
tt='./upx.exe'
$wine ./upx.exe --version-short
$wine ./upx.exe -3 $tt -o tt.packed.exe
$wine ./upx.exe -l tt.packed.exe
$wine ./upx.exe -t tt.packed.exe
$wine ./upx.exe -d tt.packed.exe -o tt.unpacked.exe
$wine ./tt.packed.exe --version-short
$wine ./tt.unpacked.exe --version-short