arduino_esp32_a2dp/.drone.yml

74 lines
2.9 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.

kind: pipeline
type: docker
name: build-and-release-esp32
trigger:
branch:
- main
- master
event:
- push
- pull_request
- tag
steps:
# --- 1. arduino-cli の準備、ボード・ライブラリ導入、ビルド ---
- name: build-firmware
image: python:3.11-slim
environment:
HOME: /root
commands:
- sed -i 's|http://deb.debian.org|https://deb.debian.org|g' /etc/apt/sources.list.d/debian.sources && apt-get -o Acquire::Retries=5 update && apt-get install -y curl git
# arduino-cli のインストール
- curl -fsSL --ipv4 --connect-timeout 20 --retry 5 --retry-delay 5 --retry-all-errors https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Linux_64bit.tar.gz | tar -xz -C /usr/local/bin arduino-cli
- arduino-cli version
# ESP32 パッケージインデックスの更新と 2.0.14 のインストール
- arduino-cli config init --overwrite
- arduino-cli config set board_manager.additional_urls https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- arduino-cli config set network.connection_timeout 300s
- |
for i in 1 2 3 4 5; do
arduino-cli core update-index && arduino-cli core install esp32:esp32@2.0.14 && break
if [ "$i" = 5 ]; then exit 1; fi
echo "Retry $i failed, waiting..."; sleep 15
done
# ライブラリのインストール
- mkdir -p /root/Arduino/libraries
- git clone https://github.com/pschatzmann/ESP32-A2DP.git /root/Arduino/libraries/ESP32-A2DP
- arduino-cli lib install "U8g2"
- arduino-cli lib install "Adafruit AHTX0"
- arduino-cli lib install "BH1750"
- arduino-cli lib install "Adafruit NeoPixel"
# スケッチのコンパイル
- |
arduino-cli compile \
--fqbn "esp32:esp32:esp32:PartitionScheme=huge_app,FlashMode=dio,FlashSize=4M" \
--build-path build_temp \
--output-dir build \
firmware/firmware.ino
# バイナリファイル名の正規化 (リネーム)
- |
if [ -f build/firmware.ino.bootloader.bin ]; then
mv build/firmware.ino.bootloader.bin build/bootloader.bin
fi
if [ -f build/firmware.ino.partitions.bin ]; then
mv build/firmware.ino.partitions.bin build/partitions.bin
fi
if [ -f build/firmware.ino.bin ]; then
mv build/firmware.ino.bin build/firmware.bin
fi
# --- 2. タグPush時(v*.*.*)に Gitea へリリース作成 & バイナリ添付 ---
- name: release-to-gitea
image: plugins/gitea-release
settings:
base_url: https://gitea.j-code.org # あなたの Gitea の URL に変更してください
api_key:
from_secret: gitea_token # Drone Secrets に登録した Access Token
files:
- build/bootloader.bin
- build/partitions.bin
- build/firmware.bin
when:
event:
- tag