Skip to content

IDF v5.4 parallel build #17

IDF v5.4 parallel build

IDF v5.4 parallel build #17

name: IDF v5.5 parallel build
on:
workflow_dispatch: # Manually start a workflow
jobs:
build-libs:
name: Build Libs for ${{ matrix.target }}
runs-on: ubuntu-latest
strategy:
matrix:
target: [esp32, esp32s2, esp32s3, esp32c2, esp32c3, esp32c5, esp32c6, esp32h2, esp32p4]
fail-fast: true
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: bash ./tools/prepare-ci.sh
- name: Get current branch
run: |
echo "GIT_BRANCH=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_ENV
- name: Build Libs for ${{ matrix.target }}
run: |
bash ./build.sh -e -t ${{ matrix.target }}
mv release-info.txt out/framework-arduinoespressif32
- name: Upload artifacts for ${{ matrix.target }}
uses: actions/upload-artifact@v4
with:
name: artifacts-${{ matrix.target }}
path: out/framework-arduinoespressif32
build-slave_firmware:
name: Build Slave Firmware
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: bash ./tools/prepare-ci.sh
- name: Build slave firmware
run: bash ./tools/compile_slave.sh
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: slave_firmware
path: wifi_copro_fw
combine-artifacts:
name: Combine artifacts and create framework
needs: [build-libs, build-slave_firmware]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
path: framework-arduinoespressif32
pattern: artifacts-*
merge-multiple: true
- name: Download slave firmware
uses: actions/download-artifact@v4
with:
name: slave_firmware
path: slave_firmware
- name: Create complete framework
run: |
mkdir -p framework-arduinoespressif32/tools/slave_firmware
mv slave_firmware/* framework-arduinoespressif32/tools/slave_firmware/
mv framework-arduinoespressif32/release-info.txt .
IDF_BRANCH=$(grep 'esp-idf branch' release-info.txt | sed -E 's/.*branch \[([^]]+)\].*/\1/')
IDF_COMMIT=$(grep 'esp-idf branch' release-info.txt | sed -E 's/.*commit \[([^]]+)\].*/\1/')
echo "IDF_BRANCH=$IDF_BRANCH"
echo "IDF_COMMIT=$IDF_COMMIT"
idf_version_string="${IDF_BRANCH//\//_}-$IDF_COMMIT"
7z a -mx=9 -tzip -xr'!.*' framework-arduinoespressif32-${idf_version_string}.zip framework-arduinoespressif32/
- name: Set tag name
id: set_tag_name
run: |
IDF_VERSION=$(grep 'esp-idf branch' release-info.txt | sed -E 's/.*branch \[release\/v([0-9]+\.[0-9]+)\].*/\1/')
DATE=$(date +"%d%m-%H%M")
echo "tag_name=${DATE}-${IDF_VERSION}" >> $GITHUB_OUTPUT
- name: Release framework-arduinoespressif32
uses: jason2866/action-gh-release@v1.3
with:
tag_name: ${{ steps.set_tag_name.outputs.tag_name }}
body_path: release-info.txt
prerelease: true
files: |
framework-arduinoespressif32-*.zip
release-info.txt
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}