diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..b86eaaf --- /dev/null +++ b/.drone.yml @@ -0,0 +1,68 @@ +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: + - apt-get update && apt-get install -y curl git + # arduino-cli のインストール + - curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR=/usr/local/bin sh + # 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 core update-index + - arduino-cli core install esp32:esp32@2.0.14 + # ライブラリのインストール + - 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 \ No newline at end of file