v1.0.0 #49
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build and Package Main | |
| on: | |
| push: | |
| branches: [main] | |
| release: | |
| types: [published] | |
| workflow_dispatch: | |
| env: | |
| # TODO: Update the below variables for your project | |
| APP_NAME: "Template" | |
| IDF_TARGET: 'esp32' | |
| IDF_VERSION: 'v5.5' | |
| IDF_COMPONENT_MANAGER: "1" # whether to enable the component manager or not | |
| FLASH_TOTAL_OVERRIDE: '1500000' # number of bytes of total flash (for percentage calculations) | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| continue-on-error: false | |
| permissions: | |
| contents: write | |
| outputs: | |
| zipfile-id: ${{ steps.zip_step.outputs.artifact-id }} | |
| steps: | |
| - name: Checkout repo | |
| uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| - name: Build Main Code | |
| uses: espressif/esp-idf-ci-action@v1 | |
| with: | |
| esp_idf_version: ${{ env.IDF_VERSION }} | |
| path: '.' | |
| target: ${{ env.IDF_TARGET }} | |
| - name: Upload Build Outputs | |
| uses: actions/upload-artifact@v4 | |
| id: zip_step | |
| # TODO: add / remove files below. You may want to include for example | |
| # littlefs-flash_args if you have a littlefs filesystem image you want to | |
| # include | |
| with: | |
| name: build-artifacts | |
| path: | | |
| build/*.bin | |
| build/*.elf | |
| build/bootloader/bootloader.bin | |
| build/partition_table/partition-table.bin | |
| build/flasher_args.json | |
| build/flash_args | |
| - name: Attach files to release | |
| uses: softprops/action-gh-release@v2 | |
| if: ${{ github.event.release && github.event.action == 'published' }} | |
| # TODO: add / remove files below. You may want to include for example | |
| # littlefs-flash_args if you have a littlefs filesystem image you want to | |
| # include | |
| with: | |
| files: | | |
| build/*.bin | |
| build/*.elf | |
| build/bootloader/bootloader.bin | |
| build/partition_table/partition-table.bin | |
| build/flasher_args.json | |
| build/flash_args | |
| - name: Determine base ref | |
| if: ${{ github.event.release && github.event.action == 'published' }} | |
| id: base | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| COMPARE_TAG_INPUT="${{ github.event.inputs.compare_tag || '' }}" | |
| if [ -n "$COMPARE_TAG_INPUT" ]; then | |
| echo "ref=$COMPARE_TAG_INPUT" >> "$GITHUB_OUTPUT" | |
| else | |
| # use the previous tag chronologically | |
| prev=$(git tag --sort=-creatordate | sed -n '2p') | |
| if [ -z "$prev" ]; then prev=$(git tag --sort=-v:refname | sed -n '2p'); fi | |
| echo "ref=$prev" >> "$GITHUB_OUTPUT" | |
| fi | |
| - name: Determine Size Delta | |
| if: ${{ github.event.release && github.event.action == 'published' }} | |
| uses: esp-cpp/esp-idf-size-delta@v1 | |
| with: | |
| app_name: ${{ env.APP_NAME }} | |
| app_path: "." | |
| idf_target: ${{ env.IDF_TARGET }} | |
| idf_version: ${{ env.IDF_VERSION }} | |
| idf_component_manager: ${{ env.IDF_COMPONENT_MANAGER }} | |
| base_ref: ${{ steps.base.outputs.ref }} | |
| flash_total_override: ${{ env.FLASH_TOTAL_OVERRIDE }} | |
| post_comment: 'false' | |
| package: | |
| name: Package the binaries into an executables for Windows, MacOS, and Linux (Ubuntu) | |
| needs: build | |
| strategy: | |
| matrix: | |
| os: [windows-latest, macos-latest, ubuntu-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: esp-cpp/esp-packaged-programmer-action@v1.0.5 | |
| with: | |
| zipfile-id: ${{ needs.build.outputs.zipfile-id }} | |
| # TODO: update programmer name to be what you want to call it | |
| programmer-name: 'your_programmer' |