diff --git a/.github/workflows/package_main.yml b/.github/workflows/package_main.yml index 5a405e6..d0532d2 100644 --- a/.github/workflows/package_main.yml +++ b/.github/workflows/package_main.yml @@ -13,26 +13,41 @@ jobs: runs-on: ubuntu-latest continue-on-error: false - outputs: - zipfile-id: ${{ steps.zip_step.outputs.artifact-id }} + strategy: + matrix: + build: + # main (full) code + - name: 'esp-box' + target: esp32s3 + command: | + idf.py -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.defaults.esp-box" build + - name: 't-deck' + target: esp32s3 + command: | + idf.py -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.defaults.t-deck" build + - name: 'wrover-kit' + target: esp32 + command: | + idf.py -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.defaults.wrover-kit" build steps: - name: Checkout repo uses: actions/checkout@v4 + with: + fetch-tags: true - name: Build Main Code uses: espressif/esp-idf-ci-action@v1 with: esp_idf_version: release-v5.4 - target: esp32s3 + target: ${{ matrix.build.target }} path: '.' - command: 'idf.py build' + command: ${{ matrix.build.command }} - name: Upload Build Outputs uses: actions/upload-artifact@v4 - id: zip_step with: - name: build-artifacts + name: ${{ matrix.build.name }}-build-artifacts path: | build/*.bin build/*.elf @@ -41,17 +56,21 @@ jobs: build/flasher_args.json build/flash_args + - name: Zip up build files for release using matrix build name + release tag name + if: ${{ github.event.release && github.event.action == 'published' }} + shell: bash + run: | + # zip up just the files we uploaded for the release + zip_name="wireless-debug-display-${{ matrix.build.name }}_$(git describe --tags --dirty).zip" + cd ${{ matrix.build.path }} + zip -r -j $zip_name build/*.bin build/*.elf build/bootloader/bootloader.bin build/partition_table/partition-table.bin build/flasher_args.json build/flash_args + echo "artifact_path=${{ matrix.build.path }}/$zip_name" >> "$GITHUB_ENV" + - name: Attach files to release uses: softprops/action-gh-release@v2 if: ${{ github.event.release && github.event.action == 'published' }} with: - files: | - build/*.bin - build/*.elf - build/bootloader/bootloader.bin - build/partition_table/partition-table.bin - build/flasher_args.json - build/flash_args + files: ${{ env.artifact_path }} package: name: Package the binaries into an executables for Windows, MacOS, and Linux (Ubuntu) @@ -59,9 +78,13 @@ jobs: strategy: matrix: os: [windows-latest, macos-latest, ubuntu-latest] + build: + - name: 'esp-box' + - name: 't-deck' + - name: 'wrover-kit' runs-on: ${{ matrix.os }} steps: - uses: esp-cpp/esp-packaged-programmer-action@v1.0.5 with: - zipfile-id: ${{ needs.build.outputs.zipfile-id }} - programmer-name: 'wireless-debug-display_programmer' + zipfile-name: '${{ matrix.build.name }}-build-artifacts' + programmer-name: 'wireless-debug-display-${{ matrix.build.name }}_programmer' diff --git a/sdkconfig.defaults.esp-box b/sdkconfig.defaults.esp-box new file mode 100644 index 0000000..54b0736 --- /dev/null +++ b/sdkconfig.defaults.esp-box @@ -0,0 +1 @@ +CONFIG_HARDWARE_BOX=y diff --git a/sdkconfig.defaults.esp32s3 b/sdkconfig.defaults.esp32s3 new file mode 100644 index 0000000..eaee743 --- /dev/null +++ b/sdkconfig.defaults.esp32s3 @@ -0,0 +1,3 @@ +# on the ESP32S3, which has native USB, we need to set the console so that the +# CLI can be configured correctly: +CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG=y diff --git a/sdkconfig.defaults.t-deck b/sdkconfig.defaults.t-deck new file mode 100644 index 0000000..9d75393 --- /dev/null +++ b/sdkconfig.defaults.t-deck @@ -0,0 +1 @@ +CONFIG_HARDWARE_TDECK=y diff --git a/sdkconfig.defaults.wrover-kit b/sdkconfig.defaults.wrover-kit new file mode 100644 index 0000000..aa8fa4a --- /dev/null +++ b/sdkconfig.defaults.wrover-kit @@ -0,0 +1 @@ +CONFIG_HARDWARE_WROVER_KIT=y