This repository has been archived by the owner on Nov 21, 2024. It is now read-only.
experiment buildarmappimage64-bookworm #726
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: | |
build: | |
runs-on: ubuntu-latest | |
container: minecraftlinux/ci-xenial:0.0.1 | |
defaults: | |
run: | |
shell: bash | |
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, process.env.MCPELAUNCHER_REF); | |
await downloadRepo("source/mcpelauncher-ui", process.env.MCPELAUNCHER_UI_REPO, process.env.MCPELAUNCHER_UI_REF); | |
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: Download deps | |
run: | | |
curl -L http://releases.llvm.org/9.0.0/clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz --output llvm.tar.xz | |
tar --no-same-owner -xf llvm.tar.xz | |
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 | |
apt update | |
DEBIAN_FRONTEND=noninteractive apt -y install wget g++-multilib texinfo apt-transport-https vim-common desktop-file-utils | |
chmod +x llvm.sh | |
./llvm.sh 11 | |
DEBIAN_FRONTEND=noninteractive apt -y --allow-unauthenticated install libfuse-dev libc++-11-dev:i386 libc++abi-11-dev:i386 libegl1-mesa-dev:i386 zsync uuid-dev uuid-dev:i386 libxcursor-dev:i386 libxinerama-dev:i386 libxi-dev:i386 libxrandr-dev:i386 | |
- name: Run the buildscript | |
run: | | |
. /opt/qt59/bin/qt59-env.sh || : | |
export PATH=$PWD/clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04/bin:$PWD/cmake-3.16.2-Linux-x86_64/bin:$PATH | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH+"${LD_LIBRARY_PATH}:"}$PWD/clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04/lib:${PWD}/build/AppDir/usr/lib | |
export CC=clang | |
export CXX=clang++ | |
./build_appimage.sh -j4 -q quirks-ubuntu-1604.sh -k "zsync|https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage/version.x86_64.zsync" -i ${GITHUB_RUN_NUMBER}${{ inputs.submodule-refs && ' -s' || '' }} | |
- name: create update info | |
run: | | |
cd output | |
file=(*.AppImage) | |
echo build_id=2000$'\n'download_url=https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage/${file} > version.amd64 | |
- uses: actions/upload-artifact@v1 | |
with: | |
name: x86_64.AppImage | |
path: output/ | |
build32: | |
runs-on: ubuntu-latest | |
container: minecraftlinux/ci-xenial:0.0.1 | |
defaults: | |
run: | |
shell: bash | |
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, process.env.MCPELAUNCHER_REF); | |
await downloadRepo("source/mcpelauncher-ui", process.env.MCPELAUNCHER_UI_REPO, process.env.MCPELAUNCHER_UI_REF); | |
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: Download deps | |
run: | | |
curl -L http://releases.llvm.org/9.0.0/clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz --output llvm.tar.xz | |
tar --no-same-owner -xf llvm.tar.xz | |
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 | |
apt update | |
DEBIAN_FRONTEND=noninteractive apt -y remove qt59base qt59declarative qt59quickcontrols qt59quickcontrols2 qt59svg qt59webengine libcurl4-openssl-dev libzip-dev libuv1-dev | |
DEBIAN_FRONTEND=noninteractive apt -y install wget g++-multilib texinfo apt-transport-https vim-common desktop-file-utils libcurl4-openssl-dev:i386 libssl-dev:i386 libgl1-mesa-dev:i386 libuv1-dev:i386 libzip-dev:i386 libprotobuf-dev:i386 qt59base:i386 qt59declarative:i386 qt59quickcontrols:i386 qt59quickcontrols2:i386 qt59svg:i386 qt59webengine:i386 libxcursor-dev:i386 libxinerama-dev:i386 libxi-dev:i386 libxrandr-dev:i386 | |
chmod +x llvm.sh | |
./llvm.sh 11 | |
DEBIAN_FRONTEND=noninteractive apt -y --allow-unauthenticated install libfuse-dev:i386 libc++-11-dev:i386 libc++abi-11-dev:i386 libegl1-mesa-dev:i386 zsync | |
- name: Run the buildscript | |
run: | | |
. /opt/qt59/bin/qt59-env.sh || : | |
export PATH=$PWD/clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04/bin:$PWD/cmake-3.16.2-Linux-x86_64/bin:$PATH | |
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH+"${LD_LIBRARY_PATH}:"}$PWD/clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04/lib:${PWD}/build/AppDir/usr/lib | |
export CC=clang | |
export CXX=clang++ | |
export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig/ | |
./build_appimage.sh -t x86 -j4 -q quirks-ubuntu-1604-32.sh -k "zsync|https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage/version.i386.zsync" -i ${GITHUB_RUN_NUMBER}${{ inputs.submodule-refs && ' -s' || '' }} | |
- name: create update info | |
run: | | |
cd output | |
file=(*.AppImage) | |
echo build_id=2000$'\n'download_url=https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage/${file} > version.x86 | |
- uses: actions/upload-artifact@v1 | |
with: | |
name: i386.AppImage | |
path: output/ | |
buildbusterappimage: | |
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, process.env.MCPELAUNCHER_REF); | |
await downloadRepo("source/mcpelauncher-ui", process.env.MCPELAUNCHER_UI_REPO, process.env.MCPELAUNCHER_UI_REF); | |
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:buster | |
docker run -e GITHUB_RUN_NUMBER=${GITHUB_RUN_NUMBER} -v $PWD/ldd:/usr/bin/ldd -v $PWD:$PWD -w $PWD --rm buildpack-deps:buster bash -c "dpkg --add-architecture i386 && dpkg --add-architecture armhf && apt update && DEBIAN_FRONTEND=noninteractive apt install -y libfuse-dev:armhf wget texinfo apt-transport-https vim-common qemu-user clang chrpath libstdc++-8-dev:armhf libatomic1:armhf python3-pip wget g++-arm-linux-gnueabihf patchelf libegl1-mesa:i386 zlib1g:i386 libstdc++6:i386 libgl1-mesa-dri:i386 libasound2:i386 pulseaudio:i386 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 qt5-default:armhf git cmake pkg-config qtbase5-dev:armhf qtwebengine5-dev:armhf libssl-dev:armhf libcurl4-openssl-dev:armhf libpng-dev:armhf libx11-dev:armhf libxi-dev:armhf libssl-dev:armhf libudev-dev:armhf libevdev-dev:armhf libegl1-mesa-dev:armhf libgl1-mesa-dev:armhf libssl-dev:armhf libuv1-dev:armhf libzip-dev:armhf libprotobuf-dev:armhf protobuf-compiler qtdeclarative5-dev:armhf libqt5svg5-dev:armhf qml-module-qtwebengine:armhf qml-module-qtquick2:armhf qml-module-qtquick-layouts:armhf qml-module-qtquick-controls:armhf qml-module-qtquick-controls2:armhf qml-module-qtquick-window2:armhf qml-module-qtquick-dialogs:armhf qml-module-qt-labs-settings:armhf qml-module-qt-labs-folderlistmodel:armhf jq curl binutils desktop-file-utils squashfs-tools qtdeclarative5-dev-tools:armhf libssl-dev:armhf libpulse-dev:armhf && 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 && QMAKE=/usr/bin/arm-linux-gnueabihf-qmake PATH=/usr/lib/arm-linux-gnueabihf/qt5/bin/:\$PWD/cmake-3.16.2-Linux-x86_64/bin:$PATH:\$PATH LD_LIBRARY_PATH=\${PWD}/build/AppDir/usr/lib NO_STRIP=1 CC=clang CXX=clang++ CFLAGS32="-lstdc++fs" CFLAGS="-lstdc++fs" PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig/ ./build_appimage.sh -t armhf -j4 -k 'zsync|https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage/version.armhf.zsync' -i ${GITHUB_RUN_NUMBER}${{ inputs.submodule-refs && ' -s' || '' }}" | |
- name: Generate update info | |
run: | | |
cd output | |
file=(*.AppImage) | |
sudo bash -c "echo build_id=2000$'\n'download_url=https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage/${file} > version.armhfbuster" || : | |
- uses: actions/upload-artifact@v1 | |
with: | |
name: armhfappimagebuster | |
path: output/ | |
buildarmappimage64: | |
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, process.env.MCPELAUNCHER_REF); | |
await downloadRepo("source/mcpelauncher-ui", process.env.MCPELAUNCHER_UI_REPO, process.env.MCPELAUNCHER_UI_REF); | |
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:bionic | |
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/sources.list:/etc/apt/sources.list -v $PWD:$PWD -w $PWD --rm buildpack-deps:bionic bash -c "dpkg --add-architecture arm64 && dpkg --add-architecture armhf && apt update && DEBIAN_FRONTEND=noninteractive apt install -y libfuse-dev:arm64 wget texinfo apt-transport-https vim-common qemu-user clang-10 chrpath libstdc++-8-dev:arm64 libstdc++-8-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 qt5-default:arm64 git cmake pkg-config qtbase5-dev:arm64 qtwebengine5-dev:arm64 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 qtdeclarative5-dev:arm64 libqt5svg5-dev:arm64 qml-module-qtwebengine:arm64 qml-module-qtquick2:arm64 qml-module-qtquick-layouts:arm64 qml-module-qtquick-controls:arm64 qml-module-qtquick-controls2:arm64 qml-module-qtquick-window2:arm64 qml-module-qtquick-dialogs:arm64 qml-module-qt-labs-settings:arm64 qml-module-qt-labs-folderlistmodel:arm64 jq curl binutils desktop-file-utils squashfs-tools qtdeclarative5-dev-tools:arm64 libssl-dev:arm64 libpulse-dev:arm64 libssl-dev:armhf libpulse-dev:armhf && QMAKE=/usr/bin/aarch64-linux-gnu-qmake PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/ PATH=/usr/lib/aarch64-linux-gnu/qt5/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-10 CXX=clang++-10 CFLAGS32="-lstdc++fs" CFLAGS="-lstdc++fs" ./build_appimage.sh -t arm64 -j4 -k 'zsync|https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage/version.arm_aarch64.zsync' -i ${GITHUB_RUN_NUMBER}${{ inputs.submodule-refs && ' -s' || '' }}" | |
- name: Generate update info | |
run: | | |
cd output | |
file=(*.AppImage) | |
sudo bash -c "echo build_id=2000$'\n'download_url=https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage/${file} > version.arm64buster" || : | |
- uses: actions/upload-artifact@v1 | |
with: | |
name: arm64appimagebuster | |
path: output/ | |
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 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 && 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/ | |
publish: | |
permissions: write-all | |
runs-on: ubuntu-latest | |
needs: [ build, build32, buildbusterappimage, buildarmappimage64 ] | |
if: ${{ !cancelled() && github.event_name == 'push' && github.server_url == 'https://github.com' && github.repository == 'minecraft-linux/appimage-builder' }} | |
steps: | |
- uses: actions/checkout@v3 | |
- run: echo "APPIMAGE_VERSION=$(cat version.txt)" >> $GITHUB_ENV | |
- name: Setup Vars | |
id: setup-vars | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
core.setOutput("owner", context.repo.owner) | |
core.setOutput("repo", context.repo.repo) | |
- name: Download everything | |
uses: actions/download-artifact@v3 | |
with: | |
path: output2 | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.9 | |
- name: reorganize Artifacts | |
shell: python | |
run: | | |
from os import makedirs, fsencode, fsdecode, listdir, path, rename, getenv | |
from subprocess import check_call | |
directory = fsencode('output2') | |
makedirs('output') | |
for folder in listdir(directory): | |
foldername = fsdecode(folder) | |
for file in listdir(fsencode(path.join('output2', foldername))): | |
filename = fsdecode(file) | |
print(filename) | |
rename(path.join('output2', foldername, filename), path.join('output', filename)) | |
- name: Download ghr | |
run: | | |
curl -L https://github.com/tcnksm/ghr/releases/download/v0.13.0/ghr_v0.13.0_linux_amd64.tar.gz --output ghr.tar.gz | |
tar -xf ghr.tar.gz | |
- name: Upload ${{ github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, '[DRAFT]') && 'Latest' || 'Draft' }} | |
if: github.ref == 'refs/heads/main' | |
run: | | |
./ghr*/ghr -t ${{ secrets.GITHUB_TOKEN }} -u ${{ steps.setup-vars.outputs.owner }} -r ${{ steps.setup-vars.outputs.repo }} ${{ !(github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, '[DRAFT]')) && '-draft ' || '' }}-b "$LAUNCHER_RELEASE_DESCRIPTION$(cat changelog.txt)" "$(cat version.txt)-${GITHUB_RUN_NUMBER}" output/ | |
env: | |
LAUNCHER_RELEASE_DESCRIPTION: | | |
**You need to own Minecraft on the google play store and login with your google account to use this launcher** | |
Links for linux flatpak or macOS can be found on our wiki https://mcpelauncher.readthedocs.io. | |
[Download link for intel or amd based 64bit systems ( known as amd64, intel64 and x86_64 e.g. most PC's or Laptops )](https://github.com/minecraft-linux/appimage-builder/releases/download/${{env.APPIMAGE_VERSION}}-${{github.run_number}}/Minecraft_Bedrock_Launcher-x86_64-${{env.APPIMAGE_VERSION}}.${{github.run_number}}.AppImage) | |
[Download link for arm based 64bit systems ( known as arm64 and aarch64 e.g. raspberry Pi3 or later, pinephone or pinebook )](https://github.com/minecraft-linux/appimage-builder/releases/download/${{env.APPIMAGE_VERSION}}-${{github.run_number}}/Minecraft_Bedrock_Launcher-arm64-${{env.APPIMAGE_VERSION}}.${{github.run_number}}.AppImage) | |
- run `uname -a` to know which system you are using | |
- once downloaded the launcher shows you banner if an update is available | |
- no need to download the whole file again | |
- usually small updates with less than 5MB | |
- you can update it externally with appimageupdate or appimagelauncher | |
- the check for updates can be disabled in settings | |
### Changelog | |
- name: Publish release | |
if: github.ref == 'refs/heads/main' && !contains(github.event.head_commit.message, '[DRAFT]') | |
run: | | |
mkdir -p output3 | |
cp output/*.zsync output3/ | |
./ghr*/ghr -t ${{ secrets.GITHUB_TOKEN }} -u ${{ steps.setup-vars.outputs.owner }} -r ${{ steps.setup-vars.outputs.repo }} -replace ng.appimage output3/ | |
./ghr*/ghr -t ${{ secrets.GITHUB_TOKEN }} -u ${{ steps.setup-vars.outputs.owner }} -r ${{ steps.setup-vars.outputs.repo }} -replace appimage output3/ |