1
0
mirror of https://github.com/upx/upx.git synced 2025-08-07 22:46:51 +08:00

Update CI.

This commit is contained in:
Markus F.X.J. Oberhumer
2020-12-05 14:04:46 +01:00
parent c7cfe8b608
commit 05a0b3557a
2 changed files with 94 additions and 17 deletions

View File

@ -14,7 +14,7 @@ on:
workflow_dispatch:
jobs:
rebuild-stubs:
job-ci-rebuild-and-verify-stubs:
name: 'Rebuild stubs'
runs-on: ubuntu-16.04
steps:
@ -31,11 +31,9 @@ jobs:
uses: actions/checkout@v2
with: { submodules: true }
- name: 'Rebuild and verify stubs'
run: |
export C=gcc X=rebuild-stubs TRAVIS_OS_NAME=linux
bash ./.github/travis_build.sh
run: env C=gcc X=rebuild-stubs TRAVIS_OS_NAME=linux bash ./.github/travis_build.sh
build-and-test-upx:
job-ci-linux-toolchains:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
@ -71,20 +69,99 @@ jobs:
run: |
cd ..; mkdir -p deps build/github; cd deps
wget -q -O - https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.xz | tar -xJ
wget -q -O - https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.xz | tar -xJ
git clone --depth=1 https://github.com/upx/upx-testsuite
- name: 'Build'
run: |
if [[ ${{ matrix.name }} =~ linux-(clang|gcc) ]]; then
export C=${{matrix.C}} B=${{matrix.B}} T=${{matrix.T}} X=${{matrix.X}} TRAVIS_OS_NAME=linux
export BUILD_LOCAL_UCL=1
bash ./.github/travis_build.sh
fi
export C=${{matrix.C}} B=${{matrix.B}} T=${{matrix.T}} X=${{matrix.X}} TRAVIS_OS_NAME=linux
export BUILD_LOCAL_UCL=1
bash ./.github/travis_build.sh
- name: 'Run test suite'
run: |
export C=${{matrix.C}} B=${{matrix.B}} T=${{matrix.T}} X=${{matrix.X}} TRAVIS_OS_NAME=linux
bash ./.github/travis_testsuite_1.sh
job-ci-windows-toolchains:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- { name: amd64-win64-msvc-14.2, os: windows-2019, C: msvc-14.2-x64, A: x64 }
- { name: i386-win32-msvc-14.2, os: windows-2019, C: msvc-14.2-x86, A: x86 }
steps:
- name: 'Check out code'
uses: actions/checkout@v2
with: { submodules: true }
- name: 'Prepare sources'
run: |
$C="${{ matrix.C }}"
Get-Command bash,cat,chmod,cmp,cp,curl,date,env,file,git,gzip,mkdir,mv,openssl,readlink,rm,rmdir,sed,sha256sum,sort,ssh,ssh-add,ssh-agent,ssh-keyscan,tar,touch,which
cd ..; md build,build\$C,deps; cd deps
curl -sS -L --retry 5 -o ucl-1.03.tar.gz "https://github.com/upx/upx/releases/download/v3.00/ucl-1.03.tar.gz"
curl -sS -L --retry 5 -o zlib-1.2.8.tar.gz "https://github.com/upx/upx/releases/download/v3.00/zlib-1.2.8.tar.gz"
git clone --depth=1 https://github.com/upx/upx-testsuite
tar -xzf ucl-1.03.tar.gz
tar -xzf zlib-1.2.8.tar.gz
# patch UCL for newer msvc (vsnprintf issue)
sed -i '/# *define.*snprintf *_v*snprintf$/d' ucl-1.03/acc/acc_auto.h
- name: 'Set up Developer Command Prompt'
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.A }}
- name: 'Build'
shell: cmd
run: |
set C=${{ matrix.C }}
set B=release
@REM setup directories following the VPATH build in travis_build.sh
where cl & where link
set BDIR=\a\upx\build\%C%\%B%
md %BDIR% %BDIR%\ucl-1.03 %BDIR%\upx %BDIR%\upx-testsuite %BDIR%\zlib-1.2.8
set DEFS=-D_CRT_SECURE_NO_WARNINGS
git rev-parse --short=12 HEAD > %BDIR%\upx\.GITREV.txt
@REM build UCL
cd %BDIR%\ucl-1.03
set s=\a\upx\deps\ucl-1.03
cl -MT -O2 -W4 %DEFS% -I%s%\include -I%s% -c %s%\src\*.c
link -lib -out:ucl.lib *.obj
@REM build zlib
cd %BDIR%\zlib-1.2.8
cl -MT -O2 -W2 %DEFS% -c \a\upx\deps\zlib-1.2.8\*.c
link -lib -out:zlib.lib *.obj
@REM build UPX
cd %BDIR%\upx
set s=\a\upx\upx\src
cat .GITREV.txt
set /p GITREV=<.GITREV.txt
cl -MT -EHsc -J -O2 -W4 -WX -DUPX_VERSION_GITREV="""%GITREV%""" %DEFS% -DUCL_NO_ASM -I%s%\lzma-sdk -I\a\upx\deps\ucl-1.03\include -I\a\upx\deps\zlib-1.2.8 -Feupx.exe %s%\*.cpp %BDIR%\ucl-1.03\ucl.lib %BDIR%\zlib-1.2.8\zlib.lib
- name: 'Basic tests'
shell: cmd
run: |
set C=${{ matrix.C }}
set B=release
cd \a\upx\build\%C%\%B%\upx
set UPX=--no-color --no-progress
.\upx.exe --version
.\upx.exe upx.exe -o upx_packed.exe
dir *.exe
.\upx.exe -l upx_packed.exe
.\upx.exe -t upx_packed.exe
.\upx_packed.exe --version
- name: 'Run test suite'
shell: cmd
run: |
set C=${{ matrix.C }}
set B=release
bash ./.github/travis_testsuite_1.sh
# vim:set ts=2 sw=2 et: