Attestation (#1376) #2588
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "macos" | |
on: | |
push: | |
branches: [ '**'] | |
pull_request: | |
# The branches below must be a subset of the branches above | |
branches: [ master ] | |
schedule: | |
- cron: '27 4 * * 2' | |
workflow_dispatch: ~ | |
jobs: | |
macos: | |
name: macOS Build | |
permissions: | |
id-token: write | |
contents: read | |
attestations: write | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- QT_VERSION: '6.2.4' | |
XCODE_VERSION: '14.3.1' | |
GENERATOR: 'Ninja' | |
RELEASE: false | |
os: macos-13 | |
- QT_VERSION: '6.5.3' | |
XCODE_VERSION: '15.4' | |
GENERATOR: 'Xcode' | |
RELEASE: false | |
os: macos-14 | |
- QT_VERSION: '6.5.3' | |
XCODE_VERSION: '15.4' | |
GENERATOR: 'Ninja' | |
RELEASE: true | |
os: macos-14 | |
- QT_VERSION: '6.8.0' | |
XCODE_VERSION: '16.0' | |
GENERATOR: 'Ninja' | |
RELEASE: false | |
os: macos-15 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Cache Qt | |
uses: actions/cache@v4 | |
id: cache | |
with: | |
path: ~/Cache | |
key: ${{ runner.os }}-${{ matrix.QT_VERSION }}-${{ secrets.CACHE_VERSION }} | |
- name: Qt install setup | |
if: steps.cache.outputs.cache-hit != 'true' | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.12' | |
- name: Qt install | |
if: steps.cache.outputs.cache-hit != 'true' | |
env: | |
CI_BUILD_DIR: ${{ github.workspace }} | |
run: | | |
./tools/ci_install_osx.sh ${{ matrix.QT_VERSION }} aqt | |
- name: Brew install | |
if: matrix.GENERATOR == 'Ninja' | |
run: | | |
# update/upgrade is causing issues | |
# https://github.com/orgs/Homebrew/discussions/3895 | |
# https://github.com/actions/setup-python/issues/577 | |
# https://github.com/actions/runner-images/issues/6459 | |
# https://github.com/actions/runner-images/issues/6507 | |
# https://github.com/actions/runner-images/issues/2322 | |
# brew update # skip update for now to avoid link issues AND many slow dependency upGRADES. | |
brew list -1 | grep python | |
ls -l $(brew --prefix)/bin | grep -i python | |
# workaround for https://github.com/actions/setup-python/issues/577 | |
brew list -1 | grep python | while read formula; do brew unlink $formula; brew link --overwrite $formula; done | |
brew list -1 | grep python | |
ls -l $(brew --prefix)/bin | grep -i python | |
brew install ninja | |
brew install docbook docbook-xsl fop gnu-sed | |
# brew install is taking forever on macos-11, skip jing-trang and all it's dependencies. | |
if [ "${{ matrix.os }}" != "macos-11" ]; then | |
brew install jing-trang | |
fi | |
- name: Script | |
env: | |
XML_CATALOG_FILES: ${{ runner.arch == 'ARM64' && '/opt/homebrew/etc/xml/catalog' || '/usr/local/etc/xml/catalog' }} | |
run: | | |
source ${HOME}/Cache/qt-${{ matrix.QT_VERSION }}.env | |
sudo xcode-select --switch /Applications/Xcode_${{ matrix.XCODE_VERSION }}.app | |
./tools/ci_script_osx.sh . ${{ matrix.QT_VERSION }} ${{ matrix.GENERATOR }} | |
- name: Generate artifact attestation | |
if: ( github.event_name == 'push' ) && ( github.ref == 'refs/heads/master' ) && matrix.RELEASE | |
uses: actions/attest-build-provenance@v1 | |
with: | |
subject-path: 'gui/GPSBabel-*.dmg' | |
- name: Deploy | |
# This only handles continous releases now, for other events artifacts may be saved in | |
# the 'Upload Artifacts' step. | |
if: ( github.event_name == 'push' ) && ( github.ref == 'refs/heads/master' ) && matrix.RELEASE | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
RELEASE_NAME: Continuous-${{ runner.os }} | |
run: | | |
./tools/uploadtool/upload_github.sh gui/GPSBabel-*.dmg | |
- name: 'Upload Artifacts' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: MacOS_Installer ${{ join(matrix.*) }} | |
path: gui/GPSBabel-*.dmg | |
retention-days: 7 |