mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-05-02 19:21:15 -03:00
Extract a github action to reduce the number of references to our MSRV and stable (to be pinned in the next commit). While at it, use the MSRV for macOS builds; this means that we'll be less like accidentally to break the macOS build when bumping the MSRV. I don't think there is a reason for using 1.73 specifically, other than "it's the highest we can use on old macOS", so using an even older one should be fine.
43 lines
1.8 KiB
YAML
43 lines
1.8 KiB
YAML
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
|
|
- name: Install Rust
|
|
uses: ./.github/actions/rust-toolchain@oldest-supported
|
|
with:
|
|
targets: x86_64-apple-darwin
|
|
- name: Install Rust Stable
|
|
uses: ./.github/actions/rust-toolchain@stable
|
|
with:
|
|
targets: aarch64-apple-darwin
|
|
- 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
|