From dc915aff6200f957ad6de2b6877f42d1ee71660b 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 69bd6cd4904b9c392d1c79f3049e01a3f5a1e15c 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 d77fe3b1c2990e97a5c8f3f5f76476f44b8892b0 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 6b58db9ccda970aada8f7d4b3d53c6e5759a6fb7 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'