This repository has been archived by the owner on Nov 21, 2024. It is now read-only.
Release v0.14.1 via Buildbot #789
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.ref_name == 'ng' && github.sha) || 'ng' }} | |
mcpelauncher-qt6-ref: | |
type: string | |
default: ${{ github.repository == 'minecraft-linux/mcpelauncher-manifest' && (github.ref_name == 'qt6' && github.sha) || 'qt6' }} | |
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.ref_name == 'ng' && github.sha) || 'ng' }} | |
mcpelauncher-ui-qt6-ref: | |
type: string | |
default: ${{ github.repository == 'minecraft-linux/mcpelauncher-ui-manifest' && (github.ref_name == 'qt6' && github.sha) || 'qt6' }} | |
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' }} | |
update-information: | |
type: string | |
default: "" | |
tag-name: | |
type: string | |
default: "" | |
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 | |
apt upgrade -y | |
apt remove -y libglib2.0-dev | |
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 | |
DEBIAN_FRONTEND=noninteractive apt-get install -y libasound2-dev:i386 libpulse-dev:i386 libaudio-dev:i386 libsndio-dev:i386 libx11-dev:i386 libxext-dev:i386 libxrandr-dev:i386 libxcursor-dev:i386 libxfixes-dev:i386 libxi-dev:i386 libxss-dev:i386 libxkbcommon-dev:i386 libdrm-dev:i386 libgbm-dev:i386 libgl1-mesa-dev:i386 libgles2-mesa-dev:i386 libegl1-mesa-dev:i386 libdbus-1-dev:i386 libibus-1.0-dev:i386 libudev-dev:i386 | |
# fcitx-libs-dev:i386 Conflict with 64 bit | |
- 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/x86_64-linux-gnu/pkgconfig/:/usr/lib/i386-linux-gnu/pkgconfig/ | |
./build_appimage.sh -j4 -q quirks-ubuntu-1604.sh -k "zsync|${{ inputs.update-information || 'https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage' }}/version.x86_64.zsync" -i ${GITHUB_RUN_NUMBER}${{ inputs.submodule-refs && ' -s' || '' }}${{ inputs.tag-name && format(' -r {0}', inputs.tag-name) || '' }} | |
- name: create update info | |
run: | | |
cd output | |
file=(*.AppImage) | |
echo build_id=2000$'\n'download_url=${{ inputs.update-information || 'https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage' }}/${file} > version.amd64 | |
- uses: minecraft-linux/actions-upload-artifact-node-16@v4 #actions/upload-artifact@v4 node20 doesn't work on xenial | |
with: | |
name: appimage-xenial-x86_64 | |
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 | |
apt upgrade -y | |
apt remove -y libglib2.0-dev | |
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 | |
DEBIAN_FRONTEND=noninteractive apt-get install -y libasound2-dev:i386 libpulse-dev:i386 libaudio-dev:i386 libsndio-dev:i386 libx11-dev:i386 libxext-dev:i386 libxrandr-dev:i386 libxcursor-dev:i386 libxfixes-dev:i386 libxi-dev:i386 libxss-dev:i386 libxkbcommon-dev:i386 libdrm-dev:i386 libgbm-dev:i386 libgl1-mesa-dev:i386 libgles2-mesa-dev:i386 libegl1-mesa-dev:i386 libdbus-1-dev:i386 libibus-1.0-dev:i386 libudev-dev:i386 fcitx-libs-dev:i386 libcairo2-dev:i386 librsvg2-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++ | |
export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig/ | |
./build_appimage.sh -t x86 -j4 -q quirks-ubuntu-1604-32.sh -k "zsync|${{ inputs.update-information || 'https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage' }}/version.i386.zsync" -i ${GITHUB_RUN_NUMBER}${{ inputs.submodule-refs && ' -s' || '' }}${{ inputs.tag-name && format(' -r {0}', inputs.tag-name) || '' }} | |
- name: create update info | |
run: | | |
cd output | |
file=(*.AppImage) | |
echo build_id=2000$'\n'download_url=${{ inputs.update-information || 'https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage' }}/${file} > version.x86 | |
- uses: minecraft-linux/actions-upload-artifact-node-16@v4 #actions/upload-artifact@v4 node20 doesn't work on xenial | |
with: | |
name: appimage-xenial-i386 | |
path: output/ | |
buildbusterappimage: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
darch: | |
- x86: i386 | |
armhf: armhf | |
x86_64: amd64 | |
arm64: arm64 | |
include: | |
- arch: armhf | |
gxx: g++-arm-linux-gnueabihf | |
triple: arm-linux-gnueabihf | |
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 libasound2-dev:${{ matrix.darch[matrix.arch] }} libpulse-dev:${{ matrix.darch[matrix.arch] }} libaudio-dev:${{ matrix.darch[matrix.arch] }} libsndio-dev:${{ matrix.darch[matrix.arch] }} libx11-dev:${{ matrix.darch[matrix.arch] }} libxext-dev:${{ matrix.darch[matrix.arch] }} libxrandr-dev:${{ matrix.darch[matrix.arch] }} libxcursor-dev:${{ matrix.darch[matrix.arch] }} libxfixes-dev:${{ matrix.darch[matrix.arch] }} libxi-dev:${{ matrix.darch[matrix.arch] }} libxss-dev:${{ matrix.darch[matrix.arch] }} libxkbcommon-dev:${{ matrix.darch[matrix.arch] }} libdrm-dev:${{ matrix.darch[matrix.arch] }} libgbm-dev:${{ matrix.darch[matrix.arch] }} libgl1-mesa-dev:${{ matrix.darch[matrix.arch] }} libgles2-mesa-dev:${{ matrix.darch[matrix.arch] }} libegl1-mesa-dev:${{ matrix.darch[matrix.arch] }} libdbus-1-dev:${{ matrix.darch[matrix.arch] }} libibus-1.0-dev:${{ matrix.darch[matrix.arch] }} libudev-dev:${{ matrix.darch[matrix.arch] }} fcitx-libs-dev:${{ matrix.darch[matrix.arch] }} libasound2-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libpulse-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libaudio-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libsndio-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libx11-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxext-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxrandr-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxcursor-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxfixes-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxi-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxss-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxkbcommon-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libdrm-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libgbm-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libgl1-mesa-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libgles2-mesa-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libegl1-mesa-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libdbus-1-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libibus-1.0-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libudev-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} && 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|${{ inputs.update-information || 'https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage' }}/version.armhf.zsync' -i ${GITHUB_RUN_NUMBER}${{ inputs.submodule-refs && ' -s' || '' }}${{ inputs.tag-name && format(' -r {0}', inputs.tag-name) || '' }}" | |
- name: Generate update info | |
run: | | |
cd output | |
file=(*.AppImage) | |
sudo bash -c "echo build_id=2000$'\n'download_url=${{ inputs.update-information || 'https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage' }}/${file} > version.armhfbuster" || : | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: appimage-buster-armhf | |
path: output/ | |
buildarmappimage64: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
darch: | |
- x86: i386 | |
armhf: armhf | |
x86_64: amd64 | |
arm64: arm64 | |
include: | |
- arch: arm64 | |
arch32: armhf | |
gxx: g++-arm-linux-gnueabihf g++-aarch64-linux-gnu | |
triple: aarch64-linux-gnu | |
triple32: arm-linux-gnueabihf | |
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 libasound2-dev:${{ matrix.darch[matrix.arch] }} libpulse-dev:${{ matrix.darch[matrix.arch] }} libaudio-dev:${{ matrix.darch[matrix.arch] }} libsndio-dev:${{ matrix.darch[matrix.arch] }} libx11-dev:${{ matrix.darch[matrix.arch] }} libxext-dev:${{ matrix.darch[matrix.arch] }} libxrandr-dev:${{ matrix.darch[matrix.arch] }} libxcursor-dev:${{ matrix.darch[matrix.arch] }} libxfixes-dev:${{ matrix.darch[matrix.arch] }} libxi-dev:${{ matrix.darch[matrix.arch] }} libxss-dev:${{ matrix.darch[matrix.arch] }} libxkbcommon-dev:${{ matrix.darch[matrix.arch] }} libdrm-dev:${{ matrix.darch[matrix.arch] }} libgbm-dev:${{ matrix.darch[matrix.arch] }} libgl1-mesa-dev:${{ matrix.darch[matrix.arch] }} libgles2-mesa-dev:${{ matrix.darch[matrix.arch] }} libegl1-mesa-dev:${{ matrix.darch[matrix.arch] }} libdbus-1-dev:${{ matrix.darch[matrix.arch] }} libibus-1.0-dev:${{ matrix.darch[matrix.arch] }} libudev-dev:${{ matrix.darch[matrix.arch] }} fcitx-libs-dev:${{ matrix.darch[matrix.arch] }} libasound2-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libpulse-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libaudio-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libsndio-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libx11-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxext-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxrandr-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxcursor-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxfixes-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxi-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxss-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxkbcommon-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libdrm-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libgbm-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libgl1-mesa-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libgles2-mesa-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libegl1-mesa-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libdbus-1-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libudev-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} && QMAKE=/usr/bin/aarch64-linux-gnu-qmake PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig/:/usr/lib/arm-linux-gnueabihf/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|${{ inputs.update-information || 'https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage' }}/version.arm_aarch64.zsync' -i ${GITHUB_RUN_NUMBER}${{ inputs.submodule-refs && ' -s' || '' }}${{ inputs.tag-name && format(' -r {0}', inputs.tag-name) || '' }}" | |
- name: Generate update info | |
run: | | |
cd output | |
file=(*.AppImage) | |
sudo bash -c "echo build_id=2000$'\n'download_url=${{ inputs.update-information || 'https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage' }}/${file} > version.arm64buster" || : | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: appimage-buster-arm64 | |
path: output/ | |
appimage-bookworm: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
arch: | |
- x86 | |
- armhf | |
- x86_64 | |
- arm64 | |
darch: | |
- x86: i386 | |
armhf: armhf | |
x86_64: amd64 | |
arm64: arm64 | |
include: | |
- arch: x86 | |
gxx: g++-multilib | |
triple: i386-linux-gnu | |
qmaketriple: i686-linux-gnu | |
- arch: x86_64 | |
arch32: x86 | |
gxx: g++-multilib | |
triple: x86_64-linux-gnu | |
triple32: i386-linux-gnu | |
extra-opts: -q quirks-bookworm.sh | |
extra-pkgs: libegl1-mesa:amd64 zlib1g:amd64 libstdc++6:amd64 libgl1-mesa-dri:amd64 libasound2:amd64 | |
extra-env: CMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu/cmake | |
- arch: armhf | |
gxx: g++-arm-linux-gnueabihf | |
triple: arm-linux-gnueabihf | |
- arch: arm64 | |
arch32: armhf | |
gxx: g++-arm-linux-gnueabihf g++-aarch64-linux-gnu | |
triple: aarch64-linux-gnu | |
triple32: arm-linux-gnueabihf | |
fail-fast: false | |
name: bookworm ( ${{ matrix.arch }} ) | |
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-qt6-ref }} | |
MCPELAUNCHER_UI_REPO: ${{ inputs.mcpelauncher-ui-repo }} | |
MCPELAUNCHER_UI_REF: ${{ inputs.mcpelauncher-ui-qt6-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-bookworm:/usr/bin/ldd -v $PWD:$PWD -w $PWD --rm buildpack-deps:bookworm bash -c "dpkg --add-architecture i386 && dpkg --add-architecture ${{ matrix.darch[matrix.arch] }} && dpkg --add-architecture ${{ matrix.darch[matrix.arch32 || matrix.arch] }} && apt update && DEBIAN_FRONTEND=noninteractive apt install -y libegl1-mesa:i386 zlib1g:i386 libstdc++6:i386 libgl1-mesa-dri:i386 libasound2:i386 ${{ matrix.extra-pkgs }} qmake6:${{ matrix.darch[matrix.arch] }} qt6-wayland:${{ matrix.darch[matrix.arch] }} libfuse-dev:${{ matrix.darch[matrix.arch] }} wget texinfo apt-transport-https vim-common qemu-user clang chrpath libstdc++-*-dev:${{ matrix.darch[matrix.arch] }} libstdc++-*-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libatomic1:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libatomic1:${{ matrix.darch[matrix.arch] }} wget cmake ${{ matrix.gxx }} patchelf libpng-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libx11-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxcursor-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxinerama-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxi-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxrandr-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libudev-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libevdev-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libegl1-mesa-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libasound2:${{ matrix.darch[matrix.arch32 || matrix.arch] }} git cmake pkg-config libssl-dev:${{ matrix.darch[matrix.arch] }} libcurl4-openssl-dev:${{ matrix.darch[matrix.arch] }} libpng-dev:${{ matrix.darch[matrix.arch] }} libx11-dev:${{ matrix.darch[matrix.arch] }} libxcursor-dev:${{ matrix.darch[matrix.arch] }} libxinerama-dev:${{ matrix.darch[matrix.arch] }} libxi-dev:${{ matrix.darch[matrix.arch] }} libxrandr-dev:${{ matrix.darch[matrix.arch] }} libssl-dev:${{ matrix.darch[matrix.arch] }} libudev-dev:${{ matrix.darch[matrix.arch] }} libevdev-dev:${{ matrix.darch[matrix.arch] }} libegl1-mesa-dev:${{ matrix.darch[matrix.arch] }} libgl1-mesa-dev:${{ matrix.darch[matrix.arch] }} libssl-dev:${{ matrix.darch[matrix.arch] }} libuv1-dev:${{ matrix.darch[matrix.arch] }} libzip-dev:${{ matrix.darch[matrix.arch] }} libprotobuf-dev:${{ matrix.darch[matrix.arch] }} protobuf-compiler jq curl binutils desktop-file-utils squashfs-tools qtdeclarative5-dev-tools:${{ matrix.darch[matrix.arch] }} libssl-dev:${{ matrix.darch[matrix.arch] }} libpulse-dev:${{ matrix.darch[matrix.arch] }} libssl-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libpulse-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} qt6-base-dev:${{ matrix.darch[matrix.arch] }} libqt6opengl6-dev:${{ matrix.darch[matrix.arch] }} qt6-webengine-dev:${{ matrix.darch[matrix.arch] }} qt6-webengine-dev-tools:${{ matrix.darch[matrix.arch] }} libqt6webenginecore6-bin:${{ matrix.darch[matrix.arch] }} qt6-declarative-dev:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-layouts:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-controls:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-window:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-dialogs:${{ matrix.darch[matrix.arch] }} qml6-module-qt-labs-settings:${{ matrix.darch[matrix.arch] }} qml6-module-qt-labs-folderlistmodel:${{ matrix.darch[matrix.arch] }} qml6-module-qtwebengine:${{ matrix.darch[matrix.arch] }} qt6-base-dev:${{ matrix.darch[matrix.arch] }} libqt6opengl6-dev:${{ matrix.darch[matrix.arch] }} qt6-webengine-dev:${{ matrix.darch[matrix.arch] }} qt6-declarative-dev:${{ matrix.darch[matrix.arch] }} libqt6svg6-dev:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-layouts:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-controls:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-controls:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-dialogs:${{ matrix.darch[matrix.arch] }} qml6-module-qt-labs-settings:${{ matrix.darch[matrix.arch] }} qml6-module-qt-labs-folderlistmodel:${{ matrix.darch[matrix.arch] }} qml6-module-qt-labs-platform:${{ matrix.darch[matrix.arch] }} qml6-module-qtquick-shapes:${{ matrix.darch[matrix.arch] }} qml6-module-qtqml:${{ matrix.darch[matrix.arch] }} qml6-module-qtqml-workerscript:${{ matrix.darch[matrix.arch] }} 'qml6-module-*:${{ matrix.darch[matrix.arch] }}' 'libopengl-dev:${{ matrix.darch[matrix.arch] }}' libasound2-dev:${{ matrix.darch[matrix.arch] }} libpulse-dev:${{ matrix.darch[matrix.arch] }} libaudio-dev:${{ matrix.darch[matrix.arch] }} libsndio-dev:${{ matrix.darch[matrix.arch] }} libx11-dev:${{ matrix.darch[matrix.arch] }} libxext-dev:${{ matrix.darch[matrix.arch] }} libxrandr-dev:${{ matrix.darch[matrix.arch] }} libxcursor-dev:${{ matrix.darch[matrix.arch] }} libxfixes-dev:${{ matrix.darch[matrix.arch] }} libxi-dev:${{ matrix.darch[matrix.arch] }} libxss-dev:${{ matrix.darch[matrix.arch] }} libxkbcommon-dev:${{ matrix.darch[matrix.arch] }} libdrm-dev:${{ matrix.darch[matrix.arch] }} libgbm-dev:${{ matrix.darch[matrix.arch] }} libgl1-mesa-dev:${{ matrix.darch[matrix.arch] }} libgles2-mesa-dev:${{ matrix.darch[matrix.arch] }} libegl1-mesa-dev:${{ matrix.darch[matrix.arch] }} libdbus-1-dev:${{ matrix.darch[matrix.arch] }} libibus-1.0-dev:${{ matrix.darch[matrix.arch] }} libudev-dev:${{ matrix.darch[matrix.arch] }} fcitx-libs-dev:${{ matrix.darch[matrix.arch] }} libasound2-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libpulse-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libaudio-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libsndio-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libx11-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxext-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxrandr-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxcursor-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxfixes-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxi-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxss-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libxkbcommon-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libdrm-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libgbm-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libgl1-mesa-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libgles2-mesa-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libegl1-mesa-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libdbus-1-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libibus-1.0-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} libudev-dev:${{ matrix.darch[matrix.arch32 || matrix.arch] }} && ${{ matrix.extra-env }} QMAKE=/usr/bin/${{ matrix.qmaketriple || matrix.triple }}-qmake6 PKG_CONFIG_PATH=/usr/lib/${{ matrix.triple }}/pkgconfig/:/usr/lib/${{ matrix.triple32 || matrix.triple }}/pkgconfig/ PATH=/usr/lib/${{ matrix.triple }}/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 ${{ matrix.extra-opts }} -p "-bookworm" -o -t ${{ matrix.arch }} -j4 -k 'zsync|${{ inputs.update-information || 'https://github.com/minecraft-linux/appimage-builder/releases/download/ng.appimage' }}/version-bookworm.${{ matrix.arch }}.zsync' -i ${GITHUB_RUN_NUMBER}${{ inputs.submodule-refs && ' -s' || '' }}${{ inputs.tag-name && format(' -r {0}', inputs.tag-name) || '' }}" | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: appimage-bookworm-${{ matrix.arch }} | |
path: output/ | |
publish: | |
permissions: write-all | |
runs-on: ubuntu-latest | |
needs: [ build, build32, buildbusterappimage, buildarmappimage64, appimage-bookworm ] | |
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@v4 | |
with: | |
path: output | |
pattern: appimage-* | |
merge-multiple: true | |
- 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 | |
# Not available Features you may miss | |
- Xbox live friend joining | |
- usually times out or crashs the game in both directions | |
- consider using the offical server software <https://www.minecraft.net/en-us/download/server/bedrock> | |
- connect all by ip as external server | |
- Xbox live login | |
- a lot of devices seem to get error code "drowned" without beeing asked for login | |
- error code "drowned" has more meanings like you closed the webview window without sign in | |
- there is no resolution for those getting this error | |
- programs that rewrite http requests sent by this launcher could also cause this problem | |
- all xbox http requests are signed by an ecdsa key | |
- the second request using the token for sisu auth are always rejected by Xbox Live Servers with http code 403 Forbidden | |
- this problem is not reproducable for developers | |
### 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/ |