check-firmware.sh 1.1 KB

1234567891011121314151617181920212223242526
  1. #!/bin/bash
  2. set -Exeuo pipefail
  3. print_status() {
  4. local level="$1"
  5. local body="${2//%/%25}"
  6. body="${body//$'\r'/}"
  7. body="${body//$'\n'/%0A}"
  8. echo "::$level::$body"
  9. }
  10. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")"; pwd -P)"
  11. FIRMWARE_DIR="$1"
  12. LASTVER="$(git -C "$SCRIPT_DIR" tag | grep firmware-v | sort -V | tail -n1 | sed -e 's/^firmware-v//')"
  13. print_status notice "last built against firmware version: '$LASTVER'"
  14. VER="$(git -C "$FIRMWARE_DIR" tag | sed -E -e '/^[0-9]+\.[0-9]+\.[0-9]+$/!d' | sort -V | sed -e "1,/^$LASTVER\$/d" | tail -n1)"
  15. # VER="$(curl https://api.github.com/repos/flipperdevices/flipperzero-firmware/tags | jq -r --arg current "$LASTVER" 'def ver($v): $v | ltrimstr("v") | split(".") | map(tonumber); map(.name) | map(select(. | test("^\\d+\\.\\d+\\.\\d+$";"s"))) | map(ver(.)) | map(select(. > ver($current))) | sort | last | if . == null then "" else join(".") end')"
  16. if [ -z "$VER" ]; then
  17. print_status notice "no new firmware version"
  18. exit 0
  19. fi
  20. print_status notice "new firmware version: '$VER'"
  21. echo "version=$VER" >> $GITHUB_OUTPUT