mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-17 21:25:40 +00:00
62d7d92a0e
Bumps the actions group with 9 updates: | Package | From | To | | --- | --- | --- | | [actions/checkout](https://github.com/actions/checkout) | `3` | `4` | | [actions/cache](https://github.com/actions/cache) | `3` | `4` | | [actions/github-script](https://github.com/actions/github-script) | `6` | `7` | | [OpenTTD/actions](https://github.com/openttd/actions) | `2` | `5` | | [github/codeql-action](https://github.com/github/codeql-action) | `2` | `3` | | [actions/download-artifact](https://github.com/actions/download-artifact) | `3` | `4` | | [actions/upload-artifact](https://github.com/actions/upload-artifact) | `3` | `4` | | [tibdex/github-app-token](https://github.com/tibdex/github-app-token) | `1` | `2` | | [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) | `2` | `3` | Updates `actions/checkout` from 3 to 4 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) Updates `actions/cache` from 3 to 4 - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v3...v4) Updates `actions/github-script` from 6 to 7 - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v6...v7) Updates `OpenTTD/actions` from 2 to 5 - [Release notes](https://github.com/openttd/actions/releases) - [Commits](https://github.com/openttd/actions/compare/v2...v5) Updates `github/codeql-action` from 2 to 3 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v2...v3) Updates `actions/download-artifact` from 3 to 4 - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v3...v4) Updates `actions/upload-artifact` from 3 to 4 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3...v4) Updates `tibdex/github-app-token` from 1 to 2 - [Release notes](https://github.com/tibdex/github-app-token/releases) - [Commits](https://github.com/tibdex/github-app-token/compare/v1...v2) Updates `peter-evans/repository-dispatch` from 2 to 3 - [Release notes](https://github.com/peter-evans/repository-dispatch/releases) - [Commits](https://github.com/peter-evans/repository-dispatch/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: actions/github-script dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: OpenTTD/actions dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: actions/download-artifact dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: tibdex/github-app-token dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions - dependency-name: peter-evans/repository-dispatch dependency-type: direct:production update-type: version-update:semver-major dependency-group: actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
217 lines
6.5 KiB
YAML
217 lines
6.5 KiB
YAML
name: Release (MacOS)
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
survey_key:
|
|
required: false
|
|
type: string
|
|
default: ""
|
|
|
|
jobs:
|
|
macos:
|
|
name: MacOS
|
|
|
|
runs-on: macos-latest
|
|
env:
|
|
MACOSX_DEPLOYMENT_TARGET: 10.13
|
|
|
|
steps:
|
|
- name: Download source
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: internal-source
|
|
|
|
- name: Unpack source
|
|
run: |
|
|
tar -xf source.tar.gz --strip-components=1
|
|
|
|
- name: Install Rust toolchain
|
|
uses: dtolnay/rust-toolchain@stable
|
|
|
|
- name: Enable Rust cache
|
|
uses: Swatinem/rust-cache@v2
|
|
|
|
- name: Setup vcpkg caching
|
|
uses: actions/github-script@v7
|
|
with:
|
|
script: |
|
|
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
|
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
|
core.exportVariable('VCPKG_BINARY_SOURCES', 'clear;x-gha,readwrite')
|
|
|
|
- name: Install dependencies
|
|
env:
|
|
HOMEBREW_NO_AUTO_UPDATE: 1
|
|
HOMEBREW_NO_INSTALL_CLEANUP: 1
|
|
run: |
|
|
echo "::group::Install brew dependencies"
|
|
brew install \
|
|
pandoc \
|
|
# EOF
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::Install breakpad dependencies"
|
|
cargo install dump_syms
|
|
echo "::endgroup::"
|
|
|
|
- name: Install GCC problem matcher
|
|
uses: ammaraskar/gcc-problem-matcher@master
|
|
|
|
- name: Build tools
|
|
run: |
|
|
mkdir build-host
|
|
cd build-host
|
|
|
|
echo "::group::CMake"
|
|
cmake ${GITHUB_WORKSPACE} \
|
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
-DOPTION_TOOLS_ONLY=ON \
|
|
# EOF
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::Build tools"
|
|
echo "Running on $(sysctl -n hw.logicalcpu) cores"
|
|
cmake --build . -j $(sysctl -n hw.logicalcpu) --target tools
|
|
echo "::endgroup::"
|
|
|
|
- name: Import code signing certificates
|
|
uses: Apple-Actions/import-codesign-certs@v2
|
|
with:
|
|
# The certificates in a PKCS12 file encoded as a base64 string
|
|
p12-file-base64: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_P12_BASE64 }}
|
|
# The password used to import the PKCS12 file.
|
|
p12-password: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_PASSWORD }}
|
|
# If this is run on a fork, there may not be a certificate set up - continue in this case
|
|
continue-on-error: true
|
|
|
|
- name: Build arm64
|
|
run: |
|
|
mkdir build-arm64
|
|
cd build-arm64
|
|
|
|
echo "::group::CMake"
|
|
cmake ${GITHUB_WORKSPACE} \
|
|
-DCMAKE_OSX_ARCHITECTURES=arm64 \
|
|
-DVCPKG_TARGET_TRIPLET=arm64-osx \
|
|
-DCMAKE_TOOLCHAIN_FILE=/usr/local/share/vcpkg/scripts/buildsystems/vcpkg.cmake \
|
|
-DHOST_BINARY_DIR=${GITHUB_WORKSPACE}/build-host \
|
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
-DOPTION_SURVEY_KEY=${{ inputs.survey_key }} \
|
|
# EOF
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::Build"
|
|
echo "Running on $(sysctl -n hw.logicalcpu) cores"
|
|
cmake --build . -j $(sysctl -n hw.logicalcpu) --target openttd
|
|
echo "::endgroup::"
|
|
|
|
- name: Build x64
|
|
run: |
|
|
mkdir build-x64
|
|
cd build-x64
|
|
|
|
echo "::group::CMake"
|
|
cmake ${GITHUB_WORKSPACE} \
|
|
-DCMAKE_OSX_ARCHITECTURES=x86_64 \
|
|
-DVCPKG_TARGET_TRIPLET=x64-osx \
|
|
-DCMAKE_TOOLCHAIN_FILE=/usr/local/share/vcpkg/scripts/buildsystems/vcpkg.cmake \
|
|
-DHOST_BINARY_DIR=${GITHUB_WORKSPACE}/build-host \
|
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
-DOPTION_SURVEY_KEY=${{ inputs.survey_key }} \
|
|
-DCPACK_BUNDLE_APPLE_CERT_APP=${{ secrets.APPLE_DEVELOPER_CERTIFICATE_ID }} \
|
|
"-DCPACK_BUNDLE_APPLE_CODESIGN_PARAMETER=--deep -f --options runtime" \
|
|
-DAPPLE_UNIVERSAL_PACKAGE=1 \
|
|
# EOF
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::Build"
|
|
echo "Running on $(sysctl -n hw.logicalcpu) cores"
|
|
cmake --build . -j $(sysctl -n hw.logicalcpu) --target openttd
|
|
echo "::endgroup::"
|
|
|
|
- name: Create breakpad symbols
|
|
run: |
|
|
cd build-x64
|
|
mkdir dSYM
|
|
dsymutil ./openttd -o dSYM/openttd
|
|
dump_syms ./dSYM/openttd --inlines --store symbols
|
|
|
|
cd ../build-arm64
|
|
mkdir dSYM
|
|
dsymutil ./openttd -o dSYM/openttd
|
|
dump_syms ./dSYM/openttd --inlines --store ../build-x64/symbols
|
|
|
|
- name: Create bundles
|
|
run: |
|
|
cd build-x64
|
|
|
|
echo "::group::Create universal binary"
|
|
# Combine the `openttd` binaries from each build into a single file
|
|
lipo -create -output openttd-universal ../build-*/openttd
|
|
mv openttd-universal openttd
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::Run CPack"
|
|
cpack
|
|
echo "::endgroup::"
|
|
|
|
echo "::group::Cleanup"
|
|
# Remove the sha256 files CPack generates; we will do this ourself at
|
|
# the end of this workflow.
|
|
rm -f bundles/*.sha256
|
|
echo "::endgroup::"
|
|
|
|
- name: Notarize
|
|
env:
|
|
AC_USERNAME: ${{ secrets.APPLE_DEVELOPER_APP_USERNAME }}
|
|
AC_PASSWORD: ${{ secrets.APPLE_DEVELOPER_APP_PASSWORD }}
|
|
AC_TEAM_ID: ${{ secrets.APPLE_DEVELOPER_TEAM_ID }}
|
|
run: |
|
|
if [ -z "${AC_USERNAME}" ]; then
|
|
# We may be running on a fork that doesn't have notarization secrets set up; skip this step
|
|
echo No notarization secrets set up, skipping.
|
|
exit 0
|
|
fi
|
|
|
|
xcrun notarytool store-credentials --apple-id "${AC_USERNAME}" --password "${AC_PASSWORD}" --team-id "${AC_TEAM_ID}" openttd
|
|
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@v4
|
|
with:
|
|
name: openttd-macos-universal
|
|
path: build-x64/bundles
|
|
retention-days: 5
|
|
|
|
- name: Store symbols
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: symbols-macos-universal
|
|
path: build-x64/symbols
|
|
retention-days: 5
|