diff options
| author | Janleyx <242423638+Janleyx@users.noreply.github.com> | 2026-07-18 10:08:42 -0400 |
|---|---|---|
| committer | Janleyx <242423638+Janleyx@users.noreply.github.com> | 2026-07-18 10:08:42 -0400 |
| commit | 722ac0cf338d659e2d0553431285fbfb0cd978b5 (patch) | |
| tree | 05f1192189a617ada106f322c1d55817281c4ce5 /.github/workflows/build-arm64-layer.yml | |
| parent | 85492d47cb79d3452e3b5d9113f34e364e081b0f (diff) | |
| download | decky-lsfg-vk-722ac0cf338d659e2d0553431285fbfb0cd978b5.tar.gz decky-lsfg-vk-722ac0cf338d659e2d0553431285fbfb0cd978b5.zip | |
add reproducible Armada ARM64 support
Diffstat (limited to '.github/workflows/build-arm64-layer.yml')
| -rw-r--r-- | .github/workflows/build-arm64-layer.yml | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/.github/workflows/build-arm64-layer.yml b/.github/workflows/build-arm64-layer.yml new file mode 100644 index 0000000..973a548 --- /dev/null +++ b/.github/workflows/build-arm64-layer.yml @@ -0,0 +1,72 @@ +name: Build ARM64 lsfg-vk layer + +on: + workflow_dispatch: + pull_request: + paths: + - .github/workflows/build-arm64-layer.yml + +permissions: + contents: read + +env: + SOURCE_REPOSITORY: https://github.com/FrankBarretta/lsfg-vk-android.git + SOURCE_COMMIT: 3e89e5439a98f55d5acb003d20039426ab24e69c + +jobs: + build: + name: Native AArch64 release build + runs-on: ubuntu-24.04-arm + + steps: + - name: Install build dependencies + run: | + sudo apt-get update + sudo apt-get install --yes --no-install-recommends \ + clang cmake g++ git libvulkan-dev ninja-build + + - name: Check out the pinned layer source + run: | + git init lsfg-vk-android + cd lsfg-vk-android + git remote add origin "${SOURCE_REPOSITORY}" + git fetch --depth=1 origin "${SOURCE_COMMIT}" + git checkout --detach FETCH_HEAD + git submodule update --init --recursive --depth=1 + test "$(git rev-parse HEAD)" = "${SOURCE_COMMIT}" + + - name: Build with static C++ runtimes + run: | + cmake -S lsfg-vk-android -B build -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER=clang \ + -DCMAKE_CXX_COMPILER=clang++ \ + -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF \ + -DCMAKE_SHARED_LINKER_FLAGS="-static-libstdc++ -static-libgcc -Wl,--exclude-libs,ALL" + cmake --build build --parallel 4 + strip --strip-unneeded build/liblsfg-vk.so + + - name: Verify and document the artifact + run: | + mkdir -p artifact + install -m 0755 build/liblsfg-vk.so artifact/liblsfg-vk-arm64.so + readelf -h artifact/liblsfg-vk-arm64.so | grep -q 'Machine:.*AArch64' + readelf -d artifact/liblsfg-vk-arm64.so | tee artifact/ELF-DYNAMIC.txt + ! grep -Eq 'libstdc\+\+\.so|libgcc_s\.so' artifact/ELF-DYNAMIC.txt + sha256sum artifact/liblsfg-vk-arm64.so | tee artifact/SHA256SUMS + { + echo "Source repository: ${SOURCE_REPOSITORY}" + echo "Source commit: ${SOURCE_COMMIT}" + echo "Runner: ubuntu-24.04-arm" + echo "Compiler: $(clang++ --version | head -n1)" + echo "CMake: $(cmake --version | head -n1)" + echo "Static runtimes: libstdc++ and libgcc" + } > artifact/SOURCE.txt + + - name: Upload ARM64 layer + uses: actions/upload-artifact@v4 + with: + name: lsfg-vk-arm64-${{ env.SOURCE_COMMIT }} + path: artifact/ + if-no-files-found: error + retention-days: 90 |
