73 lines
2.1 KiB
YAML
73 lines
2.1 KiB
YAML
name: Build MacOS Binary
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
macos_ver:
|
|
required: false
|
|
default: "26" # ARM64
|
|
type: string
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build-MacOS:
|
|
runs-on: macos-${{ inputs.macos_ver }}
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v7
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Capture runner image version (for caching)
|
|
id: r_image
|
|
run: echo "ver=$ImageVersion" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Cache Homebrew downloads
|
|
uses: actions/cache@v6
|
|
with:
|
|
path: ~/Library/Caches/Homebrew
|
|
key: brew-macos-${{ inputs.macos_ver }}-${{ steps.r_image.outputs.ver }}
|
|
|
|
- name: Install deps (Homebrew)
|
|
shell: bash
|
|
env:
|
|
# GitHub-Hosted MacOS runner images are updated frequently
|
|
# so skip running `brew update` to avoid unnecessary failures and delays.
|
|
HOMEBREW_NO_AUTO_UPDATE: "1"
|
|
HOMEBREW_NO_INSTALL_CLEANUP: "1"
|
|
run: >
|
|
brew install
|
|
platformio yaml-cpp libuv openssl@3 libusb argp-standalone pkg-config ulfius jsoncpp
|
|
|
|
- name: Get release version string
|
|
run: |
|
|
echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
|
|
id: version
|
|
|
|
- name: Cache PlatformIO packages
|
|
uses: actions/cache@v6
|
|
with:
|
|
path: ~/.platformio/.cache
|
|
key: pio-macos-${{ inputs.macos_ver }}-${{ hashFiles('platformio.ini', 'variants/native/portduino.ini') }}
|
|
restore-keys: |
|
|
pio-macos-${{ inputs.macos_ver }}-
|
|
|
|
- name: Build for MacOS
|
|
run: |
|
|
platformio run -e native-macos
|
|
env:
|
|
PKG_VERSION: ${{ steps.version.outputs.long }}
|
|
|
|
- name: List output files
|
|
run: ls -lah .pio/build/native-macos/
|
|
|
|
- name: Store binaries as an artifact
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: firmware-macos-${{ inputs.macos_ver }}-${{ steps.version.outputs.long }}
|
|
overwrite: true
|
|
path: |
|
|
.pio/build/native-macos/meshtasticd
|