WLED/.github/workflows/wled-ci.yml

95 wiersze
2.5 KiB
YAML
Czysty Zwykły widok Historia

2024-01-16 17:46:18 +00:00
name: WLED CI
2020-12-26 00:04:59 +00:00
2021-03-20 17:43:05 +00:00
on: [push, pull_request]
2020-12-26 00:04:59 +00:00
jobs:
get_default_envs:
name: Gather Environments
2020-12-26 00:04:59 +00:00
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 }}
2020-12-26 00:04:59 +00:00
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) }}
2020-12-26 00:04:59 +00:00
steps:
- uses: actions/checkout@v4
2024-01-09 21:14:49 +00:00
- name: Set up Node.js
uses: actions/setup-node@v4
with:
cache: 'npm'
2024-03-21 11:03:35 +00:00
- run: npm ci
2020-12-26 00:04:59 +00:00
- name: Cache PlatformIO
uses: actions/cache@v4
2020-12-26 00:04:59 +00:00
with:
path: |
~/.platformio/.cache
~/.buildcache
build_output
2024-02-01 19:44:46 +00:00
key: pio-${{ runner.os }}-${{ matrix.environment }}-${{ hashFiles('platformio.ini', 'pio-scripts/output_bins.py') }}-${{ hashFiles('wled00/**', 'usermods/**') }}
2024-01-24 16:15:06 +00:00
restore-keys: pio-${{ runner.os }}-${{ matrix.environment }}-${{ hashFiles('platformio.ini', 'pio-scripts/output_bins.py') }}-
2020-12-26 00:04:59 +00:00
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: 'pip'
2020-12-26 00:04:59 +00:00
- 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
release:
name: Create Release
runs-on: ubuntu-latest
needs: build
if: startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/download-artifact@v4
with:
merge-multiple: true
- name: Create draft release
uses: softprops/action-gh-release@v1
with:
draft: True
files: |
*.bin
*.bin.gz
2024-01-15 17:13:08 +00:00
2024-01-16 17:46:18 +00:00
testCdata:
name: Test cdata.js
2024-01-15 17:13:08 +00:00
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
2024-02-01 17:41:21 +00:00
uses: actions/setup-node@v4
2024-01-15 17:13:08 +00:00
with:
node-version: '20.x'
cache: 'npm'
- run: npm ci
2024-01-16 17:46:18 +00:00
- run: npm test