Move the "all usermods" logic in to the platformio script, so the 'usermods' environment can be built in any checkout without extra setup commands.
83 lines
2.2 KiB
YAML
83 lines
2.2 KiB
YAML
name: WLED Build
|
|
|
|
# Only included into other workflows
|
|
on:
|
|
workflow_call:
|
|
|
|
jobs:
|
|
|
|
get_default_envs:
|
|
name: Gather Environments
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.12'
|
|
cache: 'pip'
|
|
- name: Install PlatformIO
|
|
run: pip install -r requirements.txt
|
|
- name: Get default environments
|
|
id: envs
|
|
run: |
|
|
echo "environments=$(pio project config --json-output | jq -cr '.[0][1][0][1]')" >> $GITHUB_OUTPUT
|
|
outputs:
|
|
environments: ${{ steps.envs.outputs.environments }}
|
|
|
|
|
|
build:
|
|
name: Build Enviornments
|
|
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@v4
|
|
- name: Set up Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version-file: '.nvmrc'
|
|
cache: 'npm'
|
|
- run: npm ci
|
|
- name: Cache PlatformIO
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
~/.platformio/.cache
|
|
~/.buildcache
|
|
build_output
|
|
key: pio-${{ runner.os }}-${{ matrix.environment }}-${{ hashFiles('platformio.ini', 'pio-scripts/output_bins.py') }}-${{ hashFiles('wled00/**', 'usermods/**') }}
|
|
restore-keys: pio-${{ runner.os }}-${{ matrix.environment }}-${{ hashFiles('platformio.ini', 'pio-scripts/output_bins.py') }}-
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.12'
|
|
cache: 'pip'
|
|
- name: Install PlatformIO
|
|
run: pip install -r requirements.txt
|
|
|
|
- name: Build firmware
|
|
run: pio run -e ${{ matrix.environment }}
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: firmware-${{ matrix.environment }}
|
|
path: |
|
|
build_output/release/*.bin
|
|
build_output/release/*_ESP02*.bin.gz
|
|
|
|
|
|
testCdata:
|
|
name: Test cdata.js
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Use Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version-file: '.nvmrc'
|
|
cache: 'npm'
|
|
- run: npm ci
|
|
- run: npm test
|