From 95302485a000de2b1e49bf65d35ede769bfcef94 Mon Sep 17 00:00:00 2001 From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com> Date: Sun, 13 Feb 2022 12:07:10 -0500 Subject: [PATCH 1/3] Improve version verification --- .github/workflows/CI.yml | 71 ++++++++++++++++++++++++++++++---------- 1 file changed, 54 insertions(+), 17 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9df7c0d3..a71b34ff 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -25,13 +25,64 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} outputs: next_version: ${{ steps.verify_changelog.outputs.changelog_parser_version }} + next_version_bare: ${{ steps.verify_changelog.outputs.changelog_parser_version_bare }} last_version: ${{ steps.verify_changelog.outputs.latest_release_tag_name }} release_body: ${{ steps.verify_changelog.outputs.changelog_parser_description }} + check_versions: + name: Check Versions + runs-on: ubuntu-latest + needs: check_changelog + if: ${{ github.ref == 'refs/heads/master' || github.base_ref == 'master' }} + # base_ref for pull request check, ref for push + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Check CMakeLists.txt Version + run: | + version=$(grep -o -E '^project\(Sunshine VERSION [0-9]+\.[0-9]+\.[0-9]+\)' CMakeLists.txt | grep -o -E '[0-9]+\.[0-9]+\.[0-9]+') + echo "cmakelists_version=${version}" >> $GITHUB_ENV + - name: Compare CMakeList.txt Version + if: ${{ env.cmakelists_version != needs.check_changelog.outputs.next_version_bare }} + run: | + echo CMakeLists version: "$cmakelists_version" + echo Changelog version: "${{ needs.check_changelog.outputs.next_version_bare }}" + echo Within 'CMakeLists.txt' change "project(Sunshine VERSION $cmakelists_version)" to "project(Sunshine VERSION ${{ needs.check_changelog.outputs.next_version_bare }})" + exit 1 + + - name: Check gen-deb.in Version + run: | + version=$(grep -o -E '^Version: [0-9]+\.[0-9]+\.[0-9]+' gen-deb.in | grep -o -E '[0-9]+\.[0-9]+\.[0-9]+') + echo "gendeb_version=${version}" >> $GITHUB_ENV + - name: Compare gen-deb.in Version + if: ${{ env.gendeb_version != needs.check_changelog.outputs.next_version_bare }} + run: | + echo gen-deb.in version: "$gendeb_version" + echo Changelog version: "${{ needs.check_changelog.outputs.next_version_bare }}" + echo Within 'gen-deb.in' change "Version: $gendeb_version" to "Version: ${{ needs.check_changelog.outputs.next_version_bare }}" + exit 1 + + - name: Check sunshine.desktop Versions + run: | + version=$(grep -o -E '^Version=[0-9]+\.[0-9]+\.[0-9]+' sunshine.desktop | grep -o -E '[0-9]+\.[0-9]+\.[0-9]+') + version_x=$(grep -o -E '^X-AppImage-Version=[0-9]+\.[0-9]+\.[0-9]+' sunshine.desktop | grep -o -E '[0-9]+\.[0-9]+\.[0-9]+') + echo "appimage_version=${version}" >> $GITHUB_ENV + echo "appimagex_version=${version_x}" >> $GITHUB_ENV + - name: Compare sunshine.desktop Versions + if: ${{ ( env.appimage_version != needs.check_changelog.outputs.next_version_bare ) && ( env.appimagex_version != needs.check_changelog.outputs.next_version_bare ) }} + run: | + echo sunshine.desktop Version: "$appimage_version" + echo sunshine.desktop X-AppImage-Version: "$appimagex_version" + echo Changelog version: "${{ needs.check_changelog.outputs.next_version_bare }}" + echo Within 'sunshine.desktop' change "Version=$appimage_version" to "Version=${{ needs.check_changelog.outputs.next_version_bare }}" + echo Within 'sunshine.desktop' change "X-AppImage-Version=$appimagex_version" to "X-AppImage-Version=${{ needs.check_changelog.outputs.next_version_bare }}" + exit 1 + build_appimage: name: AppImage runs-on: ubuntu-20.04 - needs: check_changelog + needs: [check_changelog, check_versions] steps: - name: Checkout @@ -100,19 +151,6 @@ jobs: run: | cd appimage_temp wget https://github.com/TheAssassin/appimagelint/releases/download/continuous/appimagelint-x86_64.AppImage && chmod +x appimagelint-x86_64.AppImage && ./appimagelint-x86_64.AppImage ./sunshine/sunshine.AppImage - - name: Check Version - if: ${{ github.ref == 'refs/heads/master' || github.base_ref == 'master' }} - # base_ref for pull request check, ref for push - run: | - cd ./appimage_temp/sunshine - version=$(./sunshine.AppImage --version | grep -o -E 'v[0-9]+\.[0-9]+\.[0-9]+') - echo "sunshine_version=${version}" >> $GITHUB_ENV - - name: Compare Versions - if: ${{ ( github.ref == 'refs/heads/master' || github.base_ref == 'master') && ( env.sunshine_version != needs.check_changelog.outputs.next_version ) }} - run: | - echo AppImage version: "$sunshine_version" - echo Changelog version: "${{ needs.check_changelog.outputs.next_version }}" - exit 1 - name: Upload Artifacts if: ${{ github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' }} uses: actions/upload-artifact@v2 @@ -128,11 +166,10 @@ jobs: last_version: ${{ needs.check_changelog.outputs.last_version }} release_body: ${{ needs.check_changelog.outputs.release_body }} - build_linux: name: Linux runs-on: ubuntu-20.04 - needs: check_changelog + needs: [check_changelog, check_versions] strategy: fail-fast: true # false to test all, true to fail entire job if any fail matrix: @@ -183,7 +220,7 @@ jobs: build_win: name: Windows runs-on: windows-2019 - needs: check_changelog + needs: [check_changelog, check_versions] steps: - name: Checkout From 8bb7a634793fd2db0f32b11c700bce73e6cb16c4 Mon Sep 17 00:00:00 2001 From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com> Date: Sun, 13 Feb 2022 12:17:04 -0500 Subject: [PATCH 2/3] Fix job needs - Build jobs didn't run if `check_versions` doesn't run (need to ENSURE PR check into master is successful before merging!) --- .github/workflows/CI.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index a71b34ff..56d74d72 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -82,7 +82,7 @@ jobs: build_appimage: name: AppImage runs-on: ubuntu-20.04 - needs: [check_changelog, check_versions] + needs: check_changelog steps: - name: Checkout @@ -169,7 +169,7 @@ jobs: build_linux: name: Linux runs-on: ubuntu-20.04 - needs: [check_changelog, check_versions] + needs: check_changelog strategy: fail-fast: true # false to test all, true to fail entire job if any fail matrix: @@ -220,7 +220,7 @@ jobs: build_win: name: Windows runs-on: windows-2019 - needs: [check_changelog, check_versions] + needs: check_changelog steps: - name: Checkout From ec5ea7cffb9cf60df267f2ead01b4e365a3ce424 Mon Sep 17 00:00:00 2001 From: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com> Date: Sun, 13 Feb 2022 12:45:13 -0500 Subject: [PATCH 3/3] Update CI.yml - Version from .desktop file needs to be 1.0 (this is not the sunshine version) - Setting VERSION environment variable will set AppImage version, otherwise short commit hash will be used --- .github/workflows/CI.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 56d74d72..e9de6a36 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -65,18 +65,14 @@ jobs: - name: Check sunshine.desktop Versions run: | - version=$(grep -o -E '^Version=[0-9]+\.[0-9]+\.[0-9]+' sunshine.desktop | grep -o -E '[0-9]+\.[0-9]+\.[0-9]+') - version_x=$(grep -o -E '^X-AppImage-Version=[0-9]+\.[0-9]+\.[0-9]+' sunshine.desktop | grep -o -E '[0-9]+\.[0-9]+\.[0-9]+') + version=$(grep -o -E '^X-AppImage-Version=[0-9]+\.[0-9]+\.[0-9]+' sunshine.desktop | grep -o -E '[0-9]+\.[0-9]+\.[0-9]+') echo "appimage_version=${version}" >> $GITHUB_ENV - echo "appimagex_version=${version_x}" >> $GITHUB_ENV - name: Compare sunshine.desktop Versions - if: ${{ ( env.appimage_version != needs.check_changelog.outputs.next_version_bare ) && ( env.appimagex_version != needs.check_changelog.outputs.next_version_bare ) }} + if: ${{ env.appimage_version != needs.check_changelog.outputs.next_version_bare }} run: | echo sunshine.desktop Version: "$appimage_version" - echo sunshine.desktop X-AppImage-Version: "$appimagex_version" echo Changelog version: "${{ needs.check_changelog.outputs.next_version_bare }}" - echo Within 'sunshine.desktop' change "Version=$appimage_version" to "Version=${{ needs.check_changelog.outputs.next_version_bare }}" - echo Within 'sunshine.desktop' change "X-AppImage-Version=$appimagex_version" to "X-AppImage-Version=${{ needs.check_changelog.outputs.next_version_bare }}" + echo Within 'sunshine.desktop' change "X-AppImage-Version=$appimage_version" to "X-AppImage-Version=${{ needs.check_changelog.outputs.next_version_bare }}" exit 1 build_appimage: @@ -122,6 +118,11 @@ jobs: cmake "-DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE" "-DSUNSHINE_EXECUTABLE_PATH=$SUNSHINE_EXECUTABLE_PATH" "-DSUNSHINE_ASSETS_DIR=$SUNSHINE_ASSETS_DIR" "-DSUNSHINE_ENABLE_WAYLAND=$SUNSHINE_ENABLE_WAYLAND" "-DSUNSHINE_ENABLE_X11=$SUNSHINE_ENABLE_X11" "-DSUNSHINE_ENABLE_DRM=$SUNSHINE_ENABLE_DRM" "-DSUNSHINE_ENABLE_CUDA=$SUNSHINE_ENABLE_CUDA" "../" -DCMAKE_INSTALL_PREFIX=/usr make -j ${nproc} DESTDIR=AppDir + - name: Set AppImage Version + if: ${{ needs.check_changelog.outputs.next_version_bare != needs.check_changelog.outputs.latest_version }} + run: | + version=${{ needs.check_changelog.outputs.next_version_bare }} + echo "VERSION=${version}" >> $GITHUB_ENV - name: Package AppImage # https://docs.appimage.org/packaging-guide/index.html run: |