Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Matrix build #44

Merged
merged 14 commits into from
Apr 18, 2024
43 changes: 36 additions & 7 deletions .github/workflows/pio.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,39 @@ name: PlatformIO CI
on: [push]

jobs:
build:
get_default_envs:
name: Gather Environments
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Cache pip
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- uses: actions/setup-python@v4
with:
python-version: '3.9'
- name: Install PlatformIO Core
run: pip install --upgrade platformio
- name: Get default environments
id: envs
run: |
echo -n "environments=" >> $GITHUB_OUTPUT
jq -c -n '$ARGS.positional' --args $(pio project config --json-output | jq -cr '.[][0]' | grep 'env:'| awk -F: '{ print $2" "}' | tr -d '\n') >> $GITHUB_OUTPUT
cat $GITHUB_OUTPUT
outputs:
environments: ${{ steps.envs.outputs.environments }}

build:
runs-on: ubuntu-latest
needs: get_default_envs
strategy:
fail-fast: false
matrix:
environment: ${{ fromJSON(needs.get_default_envs.outputs.environments) }}
steps:
- uses: actions/checkout@v3
with:
Expand All @@ -15,7 +45,7 @@ jobs:
path: |
~/.cache/pip
~/.platformio/.cache
key: ${{ runner.os }}-pio
key: ${{ runner.os }}-${{ matrix.environment}}-${{ hashFiles('platformio.ini') }}
- uses: actions/setup-python@v4
with:
python-version: '3.9'
Expand All @@ -29,11 +59,10 @@ jobs:
echo "git_hash=${git_hash}" >> $GITHUB_ENV
echo "git_branch=${git_branch}" >> $GITHUB_ENV
- name: Build PlatformIO Project
run: pio run
run: pio run -e ${{ matrix.environment }}
- name: 'Upload Artifact'
uses: actions/upload-artifact@v3
with:
name: StarMod-esp32dev-${{env.git_branch}}-${{env.git_hash}}.bin
path: .pio/build/esp32dev/firmware.bin
retention-days: 30

name: StarMod-${{ matrix.environment }}-${{env.git_branch}}-${{env.git_hash}}.bin
path: .pio/build/${{ matrix.environment }}/firmware.bin
retention-days: 30
Loading