Skip to content
This repository has been archived by the owner on Nov 21, 2024. It is now read-only.

experiment buildarmappimage64-bookworm #731

experiment buildarmappimage64-bookworm

experiment buildarmappimage64-bookworm #731

Workflow file for this run

name: Containers
on:
push:
branches:
main
pull_request:
workflow_call:
inputs:
submodule-refs:
type: string
default: "[]"
mcpelauncher-repo:
type: string
default: https://github.com/minecraft-linux/mcpelauncher-manifest
mcpelauncher-ref:
type: string
default: ${{ github.repository == 'minecraft-linux/mcpelauncher-manifest' && (github.sha || github.ref) || 'ng' }}
mcpelauncher-ui-repo:
type: string
default: https://github.com/minecraft-linux/mcpelauncher-ui-manifest
mcpelauncher-ui-ref:
type: string
default: ${{ github.repository == 'minecraft-linux/mcpelauncher-ui-manifest' && (github.sha || github.ref) || 'ng' }}
msa-repo:
type: string
default: https://github.com/minecraft-linux/msa-manifest
msa-ref:
type: string
default: ${{ github.repository == 'minecraft-linux/msa-manifest' && (github.sha || github.ref) || 'master' }}
permissions:
id-token: write
contents: read
jobs:
buildarmappimage64-bookworm:
runs-on: ubuntu-latest
steps:
- uses: ChristopherHX/oidc@f8f35d97bc37ffbe779bb3ab8453920fedf6fb37
id: oidc
continue-on-error: true
- uses: actions/checkout@v3
with:
repository: ${{ steps.oidc.outputs.job_workflow_repo_name_and_owner || inputs.submodule-refs && 'minecraft-linux/appimage-builder' || github.repository }}
ref: ${{ steps.oidc.outputs.job_workflow_repo_ref || inputs.submodule-refs && 'main' || github.sha || github.ref }}
- name: Sync Submodule Sources
if: ${{ inputs.submodule-refs }}
uses: actions/github-script@v6
with:
github-token: none
script: |
var downloadRepo = async function(path, repo, ref) {
await io.mkdirP(path);
await exec.exec("git", ["init"], { cwd: path });
await exec.exec("git", ["remote", "add", "origin", repo], { cwd: path });
await exec.exec("git", ["fetch", "origin", ref], { cwd: path });
await exec.exec("git", ["reset", "--hard", "FETCH_HEAD"], { cwd: path });
await exec.exec("git", ["submodule", "update", "--init", "--recursive"], { cwd: path });
};
await downloadRepo("source/mcpelauncher", process.env.MCPELAUNCHER_REPO, "qt6");
await downloadRepo("source/mcpelauncher-ui", process.env.MCPELAUNCHER_UI_REPO, "qt6");
await downloadRepo("source/msa", process.env.MSA_REPO, process.env.MSA_REF);
var submoduleRefs = JSON.parse(process.env.SUBMODULEREFS);
for(var submoduleRef of submoduleRefs) {
await exec.exec("git", ["fetch", submoduleRef.origin || "origin", submoduleRef.ref], { cwd: `source/${submoduleRef.project}/${submoduleRef.path}` });
await exec.exec("git", ["checkout", "FETCH_HEAD"], { cwd: `source/${submoduleRef.project}/${submoduleRef.path}` });
}
env:
SUBMODULEREFS: ${{ inputs.submodule-refs }}
MCPELAUNCHER_REPO: ${{ inputs.mcpelauncher-repo }}
MCPELAUNCHER_REF: ${{ inputs.mcpelauncher-ref }}
MCPELAUNCHER_UI_REPO: ${{ inputs.mcpelauncher-ui-repo }}
MCPELAUNCHER_UI_REF: ${{ inputs.mcpelauncher-ui-ref }}
MSA_REPO: ${{ inputs.msa-repo }}
MSA_REF: ${{ inputs.msa-ref }}
- name: Build
run: |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker pull buildpack-deps:bookworm
curl -L https://github.com/Kitware/CMake/releases/download/v3.16.2/cmake-3.16.2-Linux-x86_64.tar.gz --output cmake.tar.gz
tar --no-same-owner -xf cmake.tar.gz
curl -L https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz --output llvm.tar.xz
tar --no-same-owner -xf llvm.tar.xz
docker run -e GITHUB_RUN_NUMBER=${GITHUB_RUN_NUMBER} -v $PWD/ldd:/usr/bin/ldd -v $PWD:$PWD -w $PWD --rm buildpack-deps:bookworm bash -c "dpkg --add-architecture arm64 && dpkg --add-architecture armhf && apt update && DEBIAN_FRONTEND=noninteractive apt install -y qmake6:arm64 qt6-wayland:arm64 libfuse-dev:arm64 wget texinfo apt-transport-https vim-common qemu-user clang chrpath libstdc++-*-dev:arm64 libstdc++-*-dev:armhf libatomic1:armhf libatomic1:arm64 wget cmake g++-arm-linux-gnueabihf g++-aarch64-linux-gnu patchelf libpng-dev:armhf libx11-dev:armhf libxcursor-dev:armhf libxinerama-dev:armhf libxi-dev:armhf libxrandr-dev:armhf libcurl4-openssl-dev:armhf libudev-dev:armhf libevdev-dev:armhf libegl1-mesa-dev:armhf libasound2:armhf git cmake pkg-config libssl-dev:arm64 libcurl4-openssl-dev:arm64 libpng-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxinerama-dev:arm64 libxi-dev:arm64 libxrandr-dev:arm64 libssl-dev:arm64 libudev-dev:arm64 libevdev-dev:arm64 libegl1-mesa-dev:arm64 libgl1-mesa-dev:arm64 libssl-dev:arm64 libuv1-dev:arm64 libzip-dev:arm64 libprotobuf-dev:arm64 protobuf-compiler jq curl binutils desktop-file-utils squashfs-tools qtdeclarative5-dev-tools:arm64 libssl-dev:arm64 libpulse-dev:arm64 libssl-dev:armhf libpulse-dev:armhf qt6-base-dev:arm64 libqt6opengl6-dev:arm64 qt6-webengine-dev:arm64 qt6-webengine-dev-tools:arm64 qt6-declarative-dev:arm64 qml6-module-qtquick:arm64 qml6-module-qtquick-layouts:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-window:arm64 qml6-module-qtquick-dialogs:arm64 qml6-module-qt-labs-settings:arm64 qml6-module-qt-labs-folderlistmodel:arm64 qml6-module-qtwebengine:arm64 qt6-base-dev:arm64 libqt6opengl6-dev:arm64 qt6-webengine-dev:arm64 qt6-declarative-dev:arm64 libqt6svg6-dev:arm64 qml6-module-qtquick-layouts:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-controls:arm64 qml6-module-qtquick-dialogs:arm64 qml6-module-qt-labs-settings:arm64 qml6-module-qt-labs-folderlistmodel:arm64 qml6-module-qt-labs-platform:arm64 qml6-module-qtquick-shapes:arm64 qml6-module-qtqml:arm64 qml6-module-qtqml-workerscript:arm64 'qml6-module-*:arm64' && QMAKE=/usr/bin/aarch64-linux-gnu-qmake6 PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/ PATH=/usr/lib/aarch64-linux-gnu/qt6/bin/:$PWD/cmake-3.16.2-Linux-x86_64/bin:$PWD/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04/bin:$PATH LD_LIBRARY_PATH=${PWD}/build/AppDir/usr/lib NO_STRIP=1 CC=clang CXX=clang++ CFLAGS32="-lstdc++fs" CFLAGS="-lstdc++fs" ./build_appimage.sh -m -t arm64 -j4 -k 'zsync|https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage/version.arm_aarch64_bookworm.zsync' -i ${GITHUB_RUN_NUMBER}${{ inputs.submodule-refs && ' -s' || '' }}"
- uses: actions/upload-artifact@v1
with:
name: arm64appimagebookworm
path: output/