configure drone build

This commit is contained in:
neri 2022-11-27 13:50:47 +01:00
parent ca59af3c62
commit b5676bcdbc
4 changed files with 80 additions and 15 deletions

50
.drone.yml Normal file
View File

@ -0,0 +1,50 @@
kind: pipeline
type: docker
name: default
steps:
- name: configure
image: alpine
commands:
- sed -i "s/HOSTNAME/$HOSTNAME/" data/homie/config.json
- sed -i "s/WIFI_SSID/$WIFI_SSID/" data/homie/config.json
- sed -i "s/WIFI_PASS/$WIFI_PASS/" data/homie/config.json
- cat data/homie/config.json
environment:
HOSTNAME: esp-waehlscheibe
WIFI_SSID:
from_secret: wifi_ssid
WIFI_PASS:
from_secret: wifi_pass
- name: build
image: infinitecoding/platformio-for-ci:latest
commands:
- platformio --version
# Build image
- platformio run --environment d1_mini
# Build file system image
- platformio run --target buildfs --environment d1_mini
- name: find device ip
image: cburki/mosquitto-clients
commands:
- mosquitto_sub -h mqtt.ctdo.de -t "homie/$HOSTNAME/\$localip" -C 1 | tr -d '\n' >device_ip
- cat device_ip
- : # noop, so that drone shows the output of cat
environment:
HOSTNAME: esp-waehlscheibe
when:
branch:
- master
- name: upload
image: curlimages/curl
commands:
- echo "$PWD"
- ls /drone/src
- ls /drone/src/drone
- ls -al ./drone
# Upload firmware
- sh ./drone/espota-deploy.sh "$device_ip" ".pio/build/d1_mini/firmware.bin"
# Upload file system
- sh ./drone/espota-deploy.sh "$device_ip" ".pio/build/d1_mini/spiffs.bin"
when:
branch:
- master

View File

@ -1,16 +1,16 @@
{
"name": "esp-waehlscheibe",
"device_id": "esp-waehlscheibe",
"wifi": {
"ssid": "CTDO-IoT",
"password": "12345678"
},
"mqtt": {
"host": "mqtt.ctdo.de",
"port": 1883,
"auth": false
},
"ota": {
"enabled": false
}
"name": "HOSTNAME",
"device_id": "HOSTNAME",
"wifi": {
"ssid": "WIFI_SSID",
"password": "WIFI_PASS"
},
"mqtt": {
"host": "mqtt.ctdo.de",
"port": 1883,
"auth": false
},
"ota": {
"enabled": false
}
}

15
drone/espota-deploy.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/env sh
device_ip="$1"
file="$2"
curl \
--insecure \
--no-progress-meter \
--fail-with-body \
--request POST \
--url "https://espota.ctdo.de/" \
--header "Content-Type: multipart/form-data" \
--form ip="$device_ip" \
--form "firmware=@$file" \
--no-buffer

View File

@ -16,5 +16,5 @@ upload_speed = 1500000
monitor_speed = 115200
lib_deps =
bblanchon/ArduinoJson
me-no-dev/ESP Async WebServer@1.2.3
https://github.com/homieiot/homie-esp8266
me-no-dev/ESP Async WebServer@1.2.3