summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar lat9nq2021-01-06 12:44:03 -0500
committerGravatar lat9nq2021-01-06 13:23:56 -0500
commit0d24b1a31b662146dca4444c7e22e0dddbc1f6bd (patch)
treece9e20567b5645cfe19cedf65002a14b2ab87d32
parentMerge pull request #5288 from ReinUsesLisp/workaround-garbage (diff)
downloadyuzu-0d24b1a31b662146dca4444c7e22e0dddbc1f6bd.tar.gz
yuzu-0d24b1a31b662146dca4444c7e22e0dddbc1f6bd.tar.xz
yuzu-0d24b1a31b662146dca4444c7e22e0dddbc1f6bd.zip
ci/linux: Make Mainline AppImages updateable
Moves the final step for building the AppImage to the upload script. Instructs appimagetool to embed update information into the AppImage if the release target is Mainline. Also tells it to create a zsync file to enable partial-downloads when updating the AppImage. Also renames the AppImage from `yuzu-{version info}-x86_64.AppImage` to `yuzu-{version info}.AppImage` to avoid a bug in the downloads page at yuzu-emu.org/downloads.
-rwxr-xr-x.ci/scripts/linux/docker.sh5
-rw-r--r--.ci/scripts/linux/upload.sh24
2 files changed, 20 insertions, 9 deletions
diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh
index 30391f6ad..39b1f77d7 100755
--- a/.ci/scripts/linux/docker.sh
+++ b/.ci/scripts/linux/docker.sh
@@ -22,12 +22,10 @@ rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester
22# Download tools needed to build an AppImage 22# Download tools needed to build an AppImage
23wget -nc https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage 23wget -nc https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
24wget -nc https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage 24wget -nc https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
25wget -nc https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
26wget -nc https://github.com/darealshinji/AppImageKit-checkrt/releases/download/continuous/AppRun-patched-x86_64 25wget -nc https://github.com/darealshinji/AppImageKit-checkrt/releases/download/continuous/AppRun-patched-x86_64
27wget -nc https://github.com/darealshinji/AppImageKit-checkrt/releases/download/continuous/exec-x86_64.so 26wget -nc https://github.com/darealshinji/AppImageKit-checkrt/releases/download/continuous/exec-x86_64.so
28# Set executable bit 27# Set executable bit
29chmod 755 \ 28chmod 755 \
30 appimagetool-x86_64.AppImage \
31 AppRun-patched-x86_64 \ 29 AppRun-patched-x86_64 \
32 exec-x86_64.so \ 30 exec-x86_64.so \
33 linuxdeploy-x86_64.AppImage \ 31 linuxdeploy-x86_64.AppImage \
@@ -49,6 +47,3 @@ cp exec-x86_64.so AppDir/usr/optional/exec.so
49cp AppRun-patched-x86_64 AppDir/AppRun 47cp AppRun-patched-x86_64 AppDir/AppRun
50cp --dereference /usr/lib/x86_64-linux-gnu/libstdc++.so.6 AppDir/usr/optional/libstdc++/libstdc++.so.6 48cp --dereference /usr/lib/x86_64-linux-gnu/libstdc++.so.6 AppDir/usr/optional/libstdc++/libstdc++.so.6
51cp --dereference /lib/x86_64-linux-gnu/libgcc_s.so.1 AppDir/usr/optional/libgcc_s/libgcc_s.so.1 49cp --dereference /lib/x86_64-linux-gnu/libgcc_s.so.1 AppDir/usr/optional/libgcc_s/libgcc_s.so.1
52
53# Build the AppImage
54./appimagetool-x86_64.AppImage AppDir
diff --git a/.ci/scripts/linux/upload.sh b/.ci/scripts/linux/upload.sh
index 7175e4cb5..b2ea07388 100644
--- a/.ci/scripts/linux/upload.sh
+++ b/.ci/scripts/linux/upload.sh
@@ -2,8 +2,7 @@
2 2
3. .ci/scripts/common/pre-upload.sh 3. .ci/scripts/common/pre-upload.sh
4 4
5APPIMAGE_NAME="yuzu-x86_64.AppImage" 5APPIMAGE_NAME="yuzu-${GITDATE}-${GITREV}.AppImage"
6NEW_APPIMAGE_NAME="yuzu-${GITDATE}-${GITREV}-x86_64.AppImage"
7REV_NAME="yuzu-linux-${GITDATE}-${GITREV}" 6REV_NAME="yuzu-linux-${GITDATE}-${GITREV}"
8ARCHIVE_NAME="${REV_NAME}.tar.xz" 7ARCHIVE_NAME="${REV_NAME}.tar.xz"
9COMPRESSION_FLAGS="-cJvf" 8COMPRESSION_FLAGS="-cJvf"
@@ -19,7 +18,24 @@ mkdir "$DIR_NAME"
19cp build/bin/yuzu-cmd "$DIR_NAME" 18cp build/bin/yuzu-cmd "$DIR_NAME"
20cp build/bin/yuzu "$DIR_NAME" 19cp build/bin/yuzu "$DIR_NAME"
21 20
22# Copy the AppImage to the artifacts directory and avoid compressing it 21# Build an AppImage
23cp "build/${APPIMAGE_NAME}" "${ARTIFACTS_DIR}/${NEW_APPIMAGE_NAME}" 22cd build
23
24wget -nc https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
25chmod 755 appimagetool-x86_64.AppImage
26
27if [ "${RELEASE_NAME}" = "mainline" ]; then
28 # Generate update information if releasing to mainline
29 ./appimagetool-x86_64.AppImage -u "gh-releases-zsync|yuzu-emu|yuzu-${RELEASE_NAME}|latest|yuzu-*.AppImage.zsync" AppDir "${APPIMAGE_NAME}"
30else
31 ./appimagetool-x86_64.AppImage AppDir "${APPIMAGE_NAME}"
32fi
33cd ..
34
35# Copy the AppImage and update info to the artifacts directory and avoid compressing it
36cp "build/${APPIMAGE_NAME}" "${ARTIFACTS_DIR}/"
37if [ -f "build/${APPIMAGE_NAME}.zsync" ]; then
38 cp "build/${APPIMAGE_NAME}.zsync" "${ARTIFACTS_DIR}/"
39fi
24 40
25. .ci/scripts/common/post-upload.sh 41. .ci/scripts/common/post-upload.sh