detect_track.sh 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. branches=$(git branch -r --contains HEAD)
  4. if echo "$branches" | grep -q 'origin/stable'; then
  5. track=stable
  6. elif echo "$branches" | grep -q 'origin/testing'; then
  7. track=testing
  8. elif echo "$branches" | grep -q 'origin/oldstable'; then
  9. track=oldstable
  10. else
  11. echo "ERROR: HEAD is not on any known release branch (stable/testing/oldstable)" >&2
  12. exit 1
  13. fi
  14. if [[ "$track" == "stable" ]]; then
  15. tag=$(git describe --tags --exact-match HEAD 2>/dev/null || true)
  16. if [[ -n "$tag" && "$tag" == *"-"* ]]; then
  17. track=beta
  18. fi
  19. fi
  20. case "$track" in
  21. stable) name=sing-box; docker_tag=latest ;;
  22. beta) name=sing-box-beta; docker_tag=latest-beta ;;
  23. testing) name=sing-box-testing; docker_tag=latest-testing ;;
  24. oldstable) name=sing-box-oldstable; docker_tag=latest-oldstable ;;
  25. esac
  26. echo "track=${track} name=${name} docker_tag=${docker_tag}" >&2
  27. echo "TRACK=${track}" >> "$GITHUB_ENV"
  28. echo "NAME=${name}" >> "$GITHUB_ENV"
  29. echo "DOCKER_TAG=${docker_tag}" >> "$GITHUB_ENV"