diff options
| author | theofficialgman <28281419+theofficialgman@users.noreply.github.com> | 2025-09-03 02:10:28 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-03 08:10:28 +0200 |
| commit | 2de6058c6adb37cb2333aa653da77ac145cc26b5 (patch) | |
| tree | 6775d7970282329fdf3f624481f52f6f3edc362f /.github/workflows | |
| parent | 986e271280272f239a38efc5bbeda80f5717070a (diff) | |
| download | box64-2de6058c6adb37cb2333aa653da77ac145cc26b5.tar.gz box64-2de6058c6adb37cb2333aa653da77ac145cc26b5.zip | |
[CI] Added ARM64-GCC-8 target (Ubuntu Bionic) (#2987)
* add ARM64-GCC-8 target uses taiki-e/checkout-action@v1 instead of actions/checkout@v4 due to ubuntu bionic container not having new enough nodejs or glibc to run most github actions does not build build Trace target due to ubuntu bionic not having the libzydis-dev package adds cmake ppa for a newer cmake version that box64 requires uses gcc-8 specifically (instead of bionic's default gcc-7) due to historically better compatibility with box64 (and it has been used for years now by installation scripts and other ci such as https://github.com/Pi-Apps-Coders/box64-debs) * comptibility for old glibc * nodejs * zstd * exclude static build --------- Co-authored-by: Yang Liu <numbksco@gmail.com>
Diffstat (limited to '.github/workflows')
| -rw-r--r-- | .github/workflows/release.yml | 46 |
1 files changed, 43 insertions, 3 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a6245124..d8c035e9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,12 +25,17 @@ on: - "CMakeLists.txt" - "**/*.yml" +defaults: + run: + # needed on container images which could default to sh + shell: bash + jobs: build: strategy: fail-fast: false matrix: - platform: [X64, RISCV, RK3588, ARM64, ANDROID, TERMUX, LARCH64, ANDROID_GLIBC, WOW64] + platform: [X64, RISCV, RK3588, ARM64, ANDROID, TERMUX, LARCH64, ANDROID_GLIBC, WOW64, ARM64-GCC-8] type: [Release, Trace, StaticBuild, Box32] os: [ubuntu-latest, ubuntu-22.04-arm] exclude: @@ -68,20 +73,37 @@ jobs: type: StaticBuild - platform: WOW64 type: Box32 + - platform: ARM64-GCC-8 + os: ubuntu-latest + - platform: ARM64-GCC-8 + type: Trace + - platform: ARM64-GCC-8 + type: StaticBuild - platform: ANDROID type: Trace - platform: TERMUX type: Trace - platform: LARCH64 type: Trace + include: + - platform: ARM64-GCC-8 + image: arm64v8/ubuntu:18.04 runs-on: ${{ matrix.os }} + container: + image: ${{ matrix.image || '' }} steps: - name: "Checkout Box64 Repository" + if: ${{ matrix.platform != 'ARM64-GCC-8' }} uses: actions/checkout@v4 + - name: "Checkout Box64 Repository (No NodeJS)" + if: ${{ matrix.platform == 'ARM64-GCC-8' }} + uses: taiki-e/checkout-action@v1 + - name: Get all the unique changed directory names id: changed-files-dir-names + if: ${{ matrix.platform != 'ARM64-GCC-8' }} uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46 with: dir_names: "true" @@ -139,9 +161,15 @@ jobs: - name: "Environment preparation" if: steps.early-exit.outcome == 'failure' run: | - sudo apt-get update + if [[ ${{ matrix.platform }} == 'ARM64-GCC-8' ]]; then + apt-get update + apt install -y sudo + else + sudo apt-get update + zydis_package=libzydis-dev + fi if [[ ${{ matrix.platform }} != 'X64' && ${{ matrix.platform }} != 'RISCV' && ${{ matrix.platform }} != 'LARCH64' ]]; then - sudo apt-get -y install git cmake make python3 patchelf libzydis-dev + sudo apt-get -y install git cmake make python3 patchelf $zydis_package if [[ ${{ matrix.platform }} == 'ANDROID' || ${{ matrix.platform }} == 'TERMUX' ]]; then sudo apt-get -y install p7zip wget -q https://dl.google.com/android/repository/android-ndk-r26b-linux.zip @@ -164,6 +192,18 @@ jobs: wget -q https://github.com/mstorsjo/llvm-mingw/releases/download/${LLVM_MINGW_VERSION}/llvm-mingw-${LLVM_MINGW_VERSION}-ucrt-ubuntu-22.04-aarch64.tar.xz tar -xf llvm-mingw-${LLVM_MINGW_VERSION}-ucrt-ubuntu-22.04-aarch64.tar.xz echo "MINGW_COMPILER_PATH=$PWD/llvm-mingw-${LLVM_MINGW_VERSION}-ucrt-ubuntu-22.04-aarch64/bin" >> $GITHUB_ENV + elif [[ ${{ matrix.platform }} == 'ARM64-GCC-8' ]]; then + # some of these dependencies may be unnecessary to explicitly install depending on the image + sudo apt-get -y install git software-properties-common lsb-release \ + wget curl build-essential autoconf automake \ + pkg-config ca-certificates \ + python3 make gettext zstd \ + gcc-8 g++-8 + sudo add-apt-repository ppa:theofficialgman/cmake-bionic -y + sudo apt update + sudo apt install -y cmake + echo "BOX64_PLATFORM_MARCRO=-DARM64=1" >> $GITHUB_ENV + echo "BOX64_COMPILER=aarch64-linux-gnu-gcc-8" >> $GITHUB_ENV else sudo apt-get -y install git gcc-aarch64-linux-gnu echo "BOX64_PLATFORM_MARCRO=-D${{ matrix.platform }}=1" >> $GITHUB_ENV |