arduino_esp32_a2dp/.github/workflows/build.yml

74 lines
2.5 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 \
--build-property "build.partitions=huge_app" \
--build-property "upload.maximum_size=3145728" \
--build-path build \
firmware/firmware.ino
# build 配下のファイル一覧を txt に書き出す
- name: Write build file list
run: |
echo "Build directory listing for $(date)" > build/file_list.txt
# 再帰的にディレクトリ構造を含めて一覧を出力(build/ 以下を相対パスで表示)
find build -print | sed 's|^build/||' | sort >> build/file_list.txt
# 通常の Artifacts 保存 (build フォルダ内を保存)
- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
with:
name: esp32-a2dp-firmware
path: |
build/*.bin
build/file_list.txt
# 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