--- kind: pipeline type: docker name: default steps: - name: fetch ip image: cburki/mosquitto-clients commands: - mosquitto_sub -h raum.ctdo.de -t "homie/$hostname/\$localip" -C 1 | tr -d '\n' >lastknownip environment: hostname: from_secret: hostname - name: configure image: alpine commands: - sed -i "s/WIFISSID/$IOTSSID/" data/homie/config.json - sed -i "s/WIFIPASS/$iotpwd/" data/homie/config.json - sed -i "s/HOSTNAME/$hostname/g" data/homie/config.json - sed -i "s/HOSTNAME/$hostname/g" data/homie/config.json - lastknownip=$(cat lastknownip) - sed -i "s/HOSTNAME/$lastknownip/g" platformio.ini environment: hostname: from_secret: hostname IOTSSID: from_secret: iotssid iotpwd: from_secret: iotpwd - name: build image: suculent/platformio-docker-build commands: # - pip install -U platformio # Build image - platformio run --environment d1_mini # Build file system image - platformio run --target buildfs --environment d1_mini - name: upload image: curlimages/curl commands: - lastknownip=$(cat lastknownip) # Upload image with espota-gateway - | curl --insecure --no-progress-meter --fail-with-body --request POST --url "https://espota.ctdo.de/" --header "Content-Type: multipart/form-data" --form ip="$lastknownip" --form firmware=@.pio/build/d1_mini/firmware.bin --no-buffer # TODO: Upload file system image with espota-gateway, if the device is available again (or leave it to espota-gateway to retry often enough) - | curl --insecure --no-progress-meter --fail-with-body --request POST --url "https://espota.ctdo.de/" --header "Content-Type: multipart/form-data" --form ip="$lastknownip" --form spiffs=@.pio/build/d1_mini/spiffs.bin --no-buffer ### matrix-builds? - for multiple volumeknobs? ### https://0-8-0.docs.drone.io/matrix-builds/ ###