Actions: Add caching for MacOS and Windows build workflows (#11194)

This commit is contained in:
Austin
2026-07-24 12:09:12 -04:00
committed by GitHub
co-authored by GitHub
parent 7754068582
commit 0ef375dff4
2 changed files with 37 additions and 6 deletions
+27 -6
View File
@@ -20,24 +20,45 @@ jobs:
with: with:
submodules: recursive submodules: recursive
- name: Install deps - 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 shell: bash
run: | env:
brew update # GitHub-Hosted MacOS runner images are updated frequently
brew install platformio yaml-cpp libuv openssl@3 libusb argp-standalone pkg-config ulfius # 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 - name: Get release version string
run: | run: |
echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT echo "long=$(./bin/buildinfo.py long)" >> $GITHUB_OUTPUT
id: version 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 - name: Build for MacOS
run: | run: |
platformio run -e native-macos platformio run -e native-macos
env: env:
PKG_VERSION: ${{ steps.version.outputs.long }} PKG_VERSION: ${{ steps.version.outputs.long }}
# Errors in this step should not fail the entire workflow while MacOS support is in development.
continue-on-error: true
- name: List output files - name: List output files
run: ls -lah .pio/build/native-macos/ run: ls -lah .pio/build/native-macos/
+10
View File
@@ -33,6 +33,7 @@ jobs:
with: with:
msystem: UCRT64 msystem: UCRT64
update: true update: true
cache: true
# argp is not packaged for the mingw environments and is built below. # argp is not packaged for the mingw environments and is built below.
# Python is omitted too: MSYS2's reports a `mingw` platform tag no wheel matches. # Python is omitted too: MSYS2's reports a `mingw` platform tag no wheel matches.
install: >- install: >-
@@ -51,6 +52,7 @@ jobs:
uses: actions/setup-python@v6 uses: actions/setup-python@v6
with: with:
python-version: "3.14" python-version: "3.14"
cache: pip
# framework-portduino calls argp_parse(); MSYS2 packages argp only for the # framework-portduino calls argp_parse(); MSYS2 packages argp only for the
# msys runtime, which cannot link into a native binary. No install() rules. # msys runtime, which cannot link into a native binary. No install() rules.
@@ -69,6 +71,14 @@ jobs:
python -m pip install --upgrade pip python -m pip install --upgrade pip
pip install platformio pip install platformio
- name: Cache PlatformIO packages
uses: actions/cache@v6
with:
path: ~/.platformio/.cache
key: pio-windows-${{ inputs.windows_ver }}-${{ hashFiles('platformio.ini', 'variants/native/portduino.ini') }}
restore-keys: |
pio-windows-${{ inputs.windows_ver }}-
- name: Get release version string - name: Get release version string
shell: pwsh shell: pwsh
id: version id: version