This repository was archived by the owner on Nov 21, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 46
361 lines (355 loc) · 24.1 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
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/
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/