arduino_esp32_a2dp/.github/workflows/build.yml

76 lines
2.5 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
# ESP32-A2DP ライブラリを GitHub から直接インストール
- name: Install ESP32-A2DP library from GitHub
run: |
mkdir -p ~/Arduino/libraries
git clone https://github.com/pschatzmann/ESP32-A2DP.git ~/Arduino/libraries/ESP32-A2DP
# コンパイル実行 (出力先ディレクトリを build に明示固定)
- name: Compile Sketch
run: |
arduino-cli compile \
--fqbn "esp32:esp32:esp32:PartitionScheme=huge_app,FlashMode=dio,FlashFreq=40,FlashSize=4M" \
--build-path build \
firmware/firmware.ino
# build 配下のファイル一覧出力は不要のため削除
# ビルド生成物を所定の名前にリネーム(存在する場合のみ)
- name: Normalize artifact filenames
run: |
if [ -f build/firmware.ino.bin ]; then
mv build/firmware.ino.bin build/firmware.bin
fi
if [ -f build/firmware.ino.partitions.bin ]; then
mv build/firmware.ino.partitions.bin build/partitions.bin
fi
# 通常の Artifacts 保存 (build フォルダ内を保存)
- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
with:
name: esp32-a2dp-firmware
path: |
build/*.bin
# GitHub Release の自動作成 & アセット添付 (タグ Push 時のみ)
- name: Create GitHub Release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
files: build/*.bin
generate_release_notes: true