From 76b24c37b44b07e43e8d48d08484043dfc912a67 Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Sat, 17 Jul 2021 16:58:52 -0400 Subject: [PATCH 1/4] ci,linux: Support Patreon releases The Early Access AppImage needs to be accessible through liftinstall, so a couple modifications need to made: The DIR_NAME needs to not include the revision info. The EA AppImage name cannot contain revision info. The EA AppImage has to be packaged with the rest of the yuzu package, which means both binaries and the source are bundled with it now in an archive. In addition, fix the source archive so yuzu can actually be built from it. upload: Copy AppImage to both mainline and EA release package --- .ci/scripts/linux/upload.sh | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.ci/scripts/linux/upload.sh b/.ci/scripts/linux/upload.sh index 8173c5728a..155edf25b4 100755 --- a/.ci/scripts/linux/upload.sh +++ b/.ci/scripts/linux/upload.sh @@ -5,15 +5,16 @@ . .ci/scripts/common/pre-upload.sh -APPIMAGE_NAME="yuzu-${GITDATE}-${GITREV}.AppImage" -REV_NAME="yuzu-linux-${GITDATE}-${GITREV}" +APPIMAGE_NAME="yuzu-${RELEASE_NAME}-${GITDATE}-${GITREV}.AppImage" +BASE_NAME="yuzu-linux" +REV_NAME="${BASE_NAME}-${GITDATE}-${GITREV}" ARCHIVE_NAME="${REV_NAME}.tar.xz" COMPRESSION_FLAGS="-cJvf" -if [ "${RELEASE_NAME}" = "mainline" ]; then - DIR_NAME="${REV_NAME}" +if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then + DIR_NAME="${BASE_NAME}-${RELEASE_NAME}" else - DIR_NAME="${REV_NAME}_${RELEASE_NAME}" + DIR_NAME="${REV_NAME}-${RELEASE_NAME}" fi mkdir "$DIR_NAME" @@ -46,4 +47,9 @@ if [ -f "build/${APPIMAGE_NAME}.zsync" ]; then cp "build/${APPIMAGE_NAME}.zsync" "${ARTIFACTS_DIR}/" fi +# Copy the AppImage to the general release directory and remove git revision info +if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then + cp "build/${APPIMAGE_NAME}" "${DIR_NAME}/yuzu-${RELEASE_NAME}.AppImage" +fi + . .ci/scripts/common/post-upload.sh From c9732f0693abe73ba14226844eab52aca5235dfa Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Sat, 17 Jul 2021 18:41:11 -0400 Subject: [PATCH 2/4] patreon step2: Enable Linux build I sure as heck don't know what I'm doing :) patreon_step2: Fix caching :limesDance: still don't know what I'm doing :limesDance: --- .ci/yuzu-patreon-step2.yml | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/.ci/yuzu-patreon-step2.yml b/.ci/yuzu-patreon-step2.yml index 33c081c532..4c5ede3bc0 100644 --- a/.ci/yuzu-patreon-step2.yml +++ b/.ci/yuzu-patreon-step2.yml @@ -8,12 +8,37 @@ variables: DisplayVersion: $[counter(variables['DisplayPrefix'], 1)] stages: -- stage: build - displayName: 'build' +- stage: build_gcc + displayName: 'build-gcc' jobs: - job: build timeoutInMinutes: 120 - displayName: 'windows-msvc' + displayName: 'linux' + pool: + vmImage: ubuntu-latest + strategy: + maxParallel: 10 + matrix: + linux: + BuildSuffix: 'linux' + ScriptFolder: 'linux' + steps: + - template: ./templates/sync-source.yml + parameters: + artifactSource: $(parameters.artifactSource) + needSubmodules: 'true' + - template: ./templates/build-single.yml + parameters: + artifactSource: 'false' + cache: $(parameters.cache) + version: $(DisplayVersion) +- stage: build_msvc + dependsOn: [] + displayName: 'build-msvc' + jobs: + - job: build + timeoutInMinutes: 120 + displayName: 'windows' pool: vmImage: windows-2019 steps: @@ -28,7 +53,9 @@ stages: version: $(DisplayVersion) - stage: release displayName: 'release' - dependsOn: build + dependsOn: + - build_gcc + - build_msvc jobs: - job: release displayName: 'source' From 3ce66aaabfbce7f01b96e098ad76a73f9de0cd50 Mon Sep 17 00:00:00 2001 From: lat9nq Date: Sun, 31 Jul 2022 00:07:30 -0400 Subject: [PATCH 3/4] ci/linux: EA AppImage adjustments Prevent AppImageLauncher from trying to integrate our AppImage on end user systems. Don't include the basic yuzu executable with EA or Mainline. --- .ci/scripts/linux/upload.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.ci/scripts/linux/upload.sh b/.ci/scripts/linux/upload.sh index 155edf25b4..e0f336427b 100755 --- a/.ci/scripts/linux/upload.sh +++ b/.ci/scripts/linux/upload.sh @@ -20,7 +20,9 @@ fi mkdir "$DIR_NAME" cp build/bin/yuzu-cmd "$DIR_NAME" -cp build/bin/yuzu "$DIR_NAME" +if [ "${RELEASE_NAME}" != "early-access" ] && [ "${RELEASE_NAME}" != "mainline" ]; then + cp build/bin/yuzu "$DIR_NAME" +fi # Build an AppImage cd build @@ -33,6 +35,11 @@ if ! ./appimagetool-x86_64.AppImage --version; then export APPIMAGE_EXTRACT_AND_RUN=1 fi +# Don't let AppImageLauncher ask to integrate EA +if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then + echo "X-AppImage-Integrate=false" >> AppDir/org.yuzu_emu.yuzu.desktop +fi + if [ "${RELEASE_NAME}" = "mainline" ]; then # Generate update information if releasing to mainline ./appimagetool-x86_64.AppImage -u "gh-releases-zsync|yuzu-emu|yuzu-${RELEASE_NAME}|latest|yuzu-*.AppImage.zsync" AppDir "${APPIMAGE_NAME}" From 86693e2e9d3bb8fcaa76ae50490ab4eef84c1658 Mon Sep 17 00:00:00 2001 From: lat9nq Date: Sun, 31 Jul 2022 21:07:46 -0400 Subject: [PATCH 4/4] patreon step2: Use jobs to build for Windows and Linux Apparently the two stages were not building in parallel. Specify individual jobs that run MSVC and Linux building instead. --- .ci/yuzu-patreon-step2.yml | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/.ci/yuzu-patreon-step2.yml b/.ci/yuzu-patreon-step2.yml index 4c5ede3bc0..b4995782b3 100644 --- a/.ci/yuzu-patreon-step2.yml +++ b/.ci/yuzu-patreon-step2.yml @@ -8,10 +8,10 @@ variables: DisplayVersion: $[counter(variables['DisplayPrefix'], 1)] stages: -- stage: build_gcc - displayName: 'build-gcc' +- stage: build + displayName: 'build' jobs: - - job: build + - job: linux timeoutInMinutes: 120 displayName: 'linux' pool: @@ -32,11 +32,7 @@ stages: artifactSource: 'false' cache: $(parameters.cache) version: $(DisplayVersion) -- stage: build_msvc - dependsOn: [] - displayName: 'build-msvc' - jobs: - - job: build + - job: msvc timeoutInMinutes: 120 displayName: 'windows' pool: @@ -53,9 +49,7 @@ stages: version: $(DisplayVersion) - stage: release displayName: 'release' - dependsOn: - - build_gcc - - build_msvc + dependsOn: build jobs: - job: release displayName: 'source'