Skip to content

Commit

Permalink
simplify CI workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
rtlopez committed Feb 6, 2025
1 parent 0a1a53c commit c51bd23
Showing 1 changed file with 85 additions and 57 deletions.
142 changes: 85 additions & 57 deletions .github/workflows/platformio.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,27 +33,17 @@ jobs:
runs-on: ubuntu-24.04
strategy:
matrix:
target: ['esp32', 'esp32s2', 'esp32s3', 'esp32c3', 'esp8266', 'rp2040', 'rp2350']
target:
- { name: 'esp32', merge: true }
- { name: 'esp32s2', merge: true }
- { name: 'esp32s3', merge: true }
- { name: 'esp32c3', merge: true }
- { name: 'esp8266', merge: false }
- { name: 'rp2040', merge: false }
- { name: 'rp2350', merge: false }

steps:
- uses: actions/checkout@v4
- name: Extract Version
run: |
echo "build_name=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
echo "build_branch=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV
echo "build_tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
echo "build_sha=$(echo ${GITHUB_SHA} | cut -c1-7)" >> $GITHUB_ENV
- name: Make Version
run: |
echo "build_file_devel=espfc_${{ env.build_sha }}_${{ matrix.target }}" >> $GITHUB_ENV
echo "build_file_release=espfc_${{ env.build_tag }}_${{ matrix.target }}" >> $GITHUB_ENV
- name: Print Version
run: |
echo SHA: ${{ env.build_sha }}
echo TAG: ${{ env.build_tag }}
echo BRANCH: ${{ env.build_branch }}
echo NAME: ${{ env.build_name }}
echo DEVEL: ${{ env.build_file_devel }}
echo RELEASE: ${{ env.build_file_release }}
- name: Cache Pio
uses: actions/cache@v4
with:
Expand All @@ -68,56 +58,94 @@ jobs:
- name: Install Dependencies
run: pip install --upgrade platformio

- name: Extract Version
run: |
VAR_SHA=$(echo ${GITHUB_SHA} | cut -c1-7)
if [[ $GITHUB_EVENT_NAME == "pull_request" ]]; then
VAR_VER="pr${{ github.event.pull_request.number }}"
VAR_NAME="espfc_${VAR_VER}_${{ matrix.target.name }}"
elif [[ $GITHUB_REF == refs/tags/* ]]; then
VAR_VER="${GITHUB_REF#refs/tags/}"
VAR_NAME="espfc_${VAR_VER}_${{ matrix.target.name }}"
else
VAR_VER="0.0.0"
VAR_NAME="espfc_${VAR_SHA}_${{ matrix.target.name }}"
fi
echo "build_ver=${VAR_VER}" >> $GITHUB_ENV
echo "build_rev=${VAR_SHA}" >> $GITHUB_ENV
echo "build_name=${VAR_NAME}" >> $GITHUB_ENV
- name: Build Development Target
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
# VAR_PR=${GITHUB_REF}
# VAR_PR=${VAR_PR%%/merge}
# VAR_PR=${VAR_PR##*/}
# VAR_NAME=${GITHUB_REF#refs/*/}
# VAR_BRANCH=${GITHUB_REF#refs/heads/}
# VAR_TAG=${GITHUB_REF#refs/tags/}
# VAR_SHA=$(echo ${GITHUB_SHA} | cut -c1-7)
# echo "build_name=${VAR_NAME}" >> $GITHUB_ENV
# echo "build_branch=${VAR_BRANCH}" >> $GITHUB_ENV
# echo "build_tag=${VAR_TAG}" >> $GITHUB_ENV
# echo "build_sha=$(VAR_SHA" >> $GITHUB_ENV
# echo "build_pr=${VAR_PR}" >> $GITHUB_ENV
# echo "build_file_devel=espfc_${{ env.build_sha }}_${{ matrix.target.name }}" >> $GITHUB_ENV
# echo "build_file_release=espfc_${{ env.build_tag }}_${{ matrix.target.name }}" >> $GITHUB_ENV
# echo "build_is_dev=${{ startsWith(github.ref, 'refs/tags/') }}" >> $GITHUB_ENV
- name: Print Version
run: |
platformio run -e ${{ matrix.target }}
env:
PLATFORMIO_BUILD_FLAGS: -DESPFC_REVISION=${{ env.build_sha }}
cat $GITHUB_ENV
# echo SHA: ${{ env.build_sha }}
# echo TAG: ${{ env.build_tag }}
# echo BRANCH: ${{ env.build_branch }}
# echo NAME: ${{ env.build_name }}
# echo DEVEL: ${{ env.build_file_devel }}
# echo RELEASE: ${{ env.build_file_release }}
# echo IS_DEV :${{ env.build_is_dev }}
- name: Build Release Target
if: ${{ startsWith(github.ref, 'refs/tags/') }}
- name: Build Target
run: |
platformio run -e ${{ matrix.target }}
platformio run -e ${{ matrix.target.name }}
mv .pio/build/${{ matrix.target.name }}/firmware.bin .pio/build/${{ env.build_name }}.bin
env:
PLATFORMIO_BUILD_FLAGS: -DESPFC_REVISION=${{ env.build_sha }} -DESPFC_VERSION=${{ env.build_tag }}

# - name: Merge ESP32 Target
# if: ${{ matrix.target == 'esp32' }}
# run: |
# python3 ~/.platformio/packages/tool-esptoolpy/esptool.py --chip ${{ matrix.target }} merge_bin -o .pio/build/${{ matrix.target }}/firmware_merged.bin --target-offset 0x0 --flash_mode keep --flash_freq keep --flash_size 4MB 0x1000 .pio/build/${{ matrix.target }}/bootloader.bin 0x8000 .pio/build/${{ matrix.target }}/partitions.bin 0xe000 ~/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin 0x10000 .pio/build/${{ matrix.target }}/firmware.bin
PLATFORMIO_BUILD_FLAGS: -DESPFC_REVISION=${{ env.build_rev }} -DESPFC_REVISION=${{ env.build_ver }}

# - name: Merge ESP32-S3 Target
# if: ${{ matrix.target == 'esp32s3' }}
# run: |
# python3 ~/.platformio/packages/tool-esptoolpy/esptool.py --chip ${{ matrix.target }} merge_bin -o .pio/build/${{ matrix.target }}/firmware_merged.bin --target-offset 0x0 --flash_mode keep --flash_freq keep --flash_size 16MB 0x0000 .pio/build/${{ matrix.target }}/bootloader.bin 0x8000 .pio/build/${{ matrix.target }}/partitions.bin 0xe000 ~/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin 0x10000 .pio/build/${{ matrix.target }}/firmware.bin
- name: Rename Target Merged
if: ${{ matrix.target.merge == true }}
run: |
mv .pio/build/${{ matrix.target.name }}/firmware_0x00.bin .pio/build/${{ env.build_name }}_0x00.bin
- name: Create Development Artifact
- name: Create Artifact
uses: actions/upload-artifact@v4
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
with:
name: ${{ env.build_file_devel }}.bin
path: .pio/build/${{ matrix.target }}/firmware.bin
name: ${{ env.build_name }}.bin
path: .pio/build/${{ env.build_name }}.bin

- name: Create Development Artifact Merged
- name: Create Artifact Merged
uses: actions/upload-artifact@v4
if: ${{ !startsWith(github.ref, 'refs/tags/') && startsWith(matrix.target, 'esp32') }}
if: ${{ matrix.target.merge == true }}
with:
name: "${{ env.build_file_devel }}_0x00.bin"
path: .pio/build/${{ matrix.target }}/firmware_0x00.bin
name: "${{ env.build_name }}_0x00.bin"
path: .pio/build/$${{ env.build_name }}_0x00.bin


- name: Create Release Artifact
uses: actions/upload-artifact@v4
if: ${{ startsWith(github.ref, 'refs/tags/') }}
with:
name: ${{ env.build_file_release }}.bin
path: .pio/build/${{ matrix.target }}/firmware.bin
# - name: Build Release Target
# if: ${{ startsWith(github.ref, 'refs/tags/') }}
# run: |
# platformio run -e ${{ matrix.target.name }}
# mv .pio/build/${{ matrix.target.name }}/firmware.bin .pio/build/${{ env.build_file_release }}.bin
# mv .pio/build/${{ matrix.target.name }}/firmware_0x00.bin .pio/build/${{ env.build_file_release }}_0x00.bin
# env:
# PLATFORMIO_BUILD_FLAGS: -DESPFC_REVISION=${{ env.build_sha }} -DESPFC_VERSION=${{ env.build_tag }}

- name: Create Release Artifact Merged
uses: actions/upload-artifact@v4
if: ${{ startsWith(github.ref, 'refs/tags/') && startsWith(matrix.target, 'esp32') }}
with:
name: ${{ env.build_file_release }}_0x00.bin
path: .pio/build/${{ matrix.target }}/firmware_0x00.bin
# - name: Create Release Artifact
# uses: actions/upload-artifact@v4
# if: ${{ startsWith(github.ref, 'refs/tags/') }}
# with:
# name: ${{ env.build_file_release }}.bin
# path: .pio/build/${{ env.build_file_release }}.bin

# - name: Create Release Artifact Merged
# uses: actions/upload-artifact@v4
# if: ${{ startsWith(github.ref, 'refs/tags/') && startsWith(matrix.target.name, 'esp32') }}
# with:
# name: ${{ env.build_file_release }}_0x00.bin
# path: .pio/build/${{ env.build_file_release }}_0x00.bin

0 comments on commit c51bd23

Please sign in to comment.