diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 81d3cd5b91..08babe0ae4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -496,6 +496,29 @@ jobs: cd build-x64 ../os/macosx/notarize.sh + - name: Build zip + run: | + cd build-x64 + + pushd _CPack_Packages/*/Bundle/openttd-*/ + + # Remove the Applications symlink from the staging folder + rm -f Applications + + # Remove the original dmg built by CPack to avoid a conflict when resolving + # the zip_filename variable below + rm -f ../*.dmg + + zip_filename=(../openttd-*) + + # Package up the existing, notarised .app into a zip file + zip -r -9 ${zip_filename}.zip OpenTTD.app + + popd + + # Now move it into place to be uploaded + mv _CPack_Packages/*/Bundle/openttd-*.zip bundles/ + - name: Store bundles uses: actions/upload-artifact@v2 with: diff --git a/os/macosx/notarize.sh b/os/macosx/notarize.sh index 3434c31256..55405cdd89 100755 --- a/os/macosx/notarize.sh +++ b/os/macosx/notarize.sh @@ -56,3 +56,13 @@ cat < notarize.json EOF gon notarize.json + +app_filename=(_CPack_Packages/*/Bundle/openttd-*/OpenTTD.app) + +if [ "${app_filename}" = "_CPack_Packages/*/Bundle/openttd-*/OpenTTD.app" ]; then + echo "No .app found in the _CPack_Packages directory, skipping stapling." + exit 0 +fi; + +# Now staple the ticket to the .app +xcrun stapler staple "${app_filename[0]}"