2024-07-05 10:02:01 +08:00
|
|
|
name: macOS build and codesign
|
|
|
|
|
|
|
|
on:
|
|
|
|
workflow_dispatch: # Enables manual trigger from GitHub UI
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
build-and-code-sign:
|
|
|
|
runs-on: macos-latest
|
|
|
|
environment: macos-codesign
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v4
|
2024-10-14 03:30:00 +08:00
|
|
|
- name: Install Rust 1.73.0
|
|
|
|
uses: dtolnay/rust-toolchain@1.73.0
|
2024-07-08 02:49:08 +08:00
|
|
|
with:
|
2024-10-14 03:30:00 +08:00
|
|
|
targets: x86_64-apple-darwin
|
|
|
|
- name: Install Rust 1.79
|
|
|
|
uses: dtolnay/rust-toolchain@1.79
|
|
|
|
with:
|
|
|
|
targets: aarch64-apple-darwin
|
2024-07-05 10:02:01 +08:00
|
|
|
- name: build-and-codesign
|
|
|
|
run: |
|
|
|
|
cargo install apple-codesign
|
|
|
|
mkdir -p "$FISH_ARTEFACT_PATH"
|
|
|
|
echo "$MAC_CODESIGN_APP_P12_BASE64" | base64 --decode > /tmp/app.p12
|
|
|
|
echo "$MAC_CODESIGN_INSTALLER_P12_BASE64" | base64 --decode > /tmp/installer.p12
|
|
|
|
echo "$MACOS_NOTARIZE_JSON" > /tmp/notarize.json
|
|
|
|
./build_tools/make_pkg.sh -s -f /tmp/app.p12 -i /tmp/installer.p12 -p "$MAC_CODESIGN_PASSWORD" -n -j /tmp/notarize.json
|
|
|
|
rm /tmp/installer.p12 /tmp/app.p12 /tmp/notarize.json
|
|
|
|
env:
|
|
|
|
MAC_CODESIGN_APP_P12_BASE64: ${{ secrets.MAC_CODESIGN_APP_P12_BASE64 }}
|
|
|
|
MAC_CODESIGN_INSTALLER_P12_BASE64: ${{ secrets.MAC_CODESIGN_INSTALLER_P12_BASE64 }}
|
|
|
|
MAC_CODESIGN_PASSWORD: ${{ secrets.MAC_CODESIGN_PASSWORD }}
|
|
|
|
MACOS_NOTARIZE_JSON: ${{ secrets.MACOS_NOTARIZE_JSON }}
|
|
|
|
# macOS runners keep having issues loading Cargo.toml dependencies from git (GitHub) instead
|
|
|
|
# of crates.io, so give this a try. It's also sometimes significantly faster on all platforms.
|
|
|
|
CARGO_NET_GIT_FETCH_WITH_CLI: true
|
|
|
|
FISH_ARTEFACT_PATH: /tmp/fish-built
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
|
|
with:
|
|
|
|
name: macOS Artefacts
|
|
|
|
path: /tmp/fish-built/*
|
|
|
|
if-no-files-found: error
|