65 lines
2.0 KiB
YAML
65 lines
2.0 KiB
YAML
name: Build and Release ESP32 Firmware
|
|
|
|
on:
|
|
push:
|
|
branches: [ "main", "master" ]
|
|
tags:
|
|
- "v*.*.*"
|
|
pull_request:
|
|
branches: [ "main", "master" ]
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
# 公式のアクションで arduino-cli をセットアップ
|
|
- name: Setup Arduino CLI
|
|
uses: arduino/setup-arduino-cli@v2
|
|
|
|
# ESP32 パッケージインデックスの更新と 2.0.14 のインストール
|
|
- name: Install ESP32 Board Core (2.0.14)
|
|
run: |
|
|
arduino-cli config init
|
|
arduino-cli config set board_manager.additional_urls https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
|
|
arduino-cli core update-index
|
|
arduino-cli core install esp32:esp32@2.0.14
|
|
|
|
# 依存ライブラリのインストール
|
|
- name: Install ESP32-A2DP library
|
|
run: arduino-cli lib install "ESP32-A2DP"
|
|
|
|
# コンパイル実行
|
|
- name: Compile Sketch
|
|
run: |
|
|
arduino-cli compile \
|
|
--fqbn esp32:esp32:esp32 \
|
|
--build-property "build.partitions=huge_app" \
|
|
--build-property "upload.maximum_size=3145728" \
|
|
firmware/firmware.ino
|
|
|
|
# 通常の Artifacts 保存
|
|
- name: Upload Build Artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: esp32-a2dp-firmware
|
|
path: |
|
|
firmware/build/esp32.esp32.esp32/*.bin
|
|
|
|
# GitHub Release の自動作成 & アセット添付 (タグ Push 時のみ)
|
|
- name: Create GitHub Release
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
files: |
|
|
firmware/build/esp32.esp32.esp32/firmware.ino.bin
|
|
firmware/build/esp32.esp32.esp32/firmware.ino.bootloader.bin
|
|
firmware/build/esp32.esp32.esp32/firmware.ino.partitions.bin
|
|
generate_release_notes: true |