get_repo.sh 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/bin/bash
  2. set -e
  3. # git workaround
  4. if [[ "${CI_BUILD}" != "no" ]]; then
  5. git config --global --add safe.directory /__w/vscodium/vscodium
  6. fi
  7. if [[ -z "${RELEASE_VERSION}" ]]; then
  8. UPDATE_INFO=$(curl https://update.code.visualstudio.com/api/update/darwin/stable/lol)
  9. export MS_TAG=$(echo "${UPDATE_INFO}" | jq -r '.name')
  10. date=$( date +%Y%j )
  11. export RELEASE_VERSION="${MS_TAG}.${date: -5}"
  12. else
  13. if [[ "${RELEASE_VERSION}" =~ ^([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+$ ]];
  14. then
  15. MS_TAG="${BASH_REMATCH[1]}"
  16. else
  17. echo "Bad RELEASE_VERSION: ${RELEASE_VERSION}"
  18. exit 1
  19. fi
  20. fi
  21. echo "Release version: ${RELEASE_VERSION}"
  22. mkdir -p vscode
  23. cd vscode || { echo "'vscode' dir not found"; exit 1; }
  24. git init -q
  25. git remote add origin https://github.com/Microsoft/vscode.git
  26. # figure out latest tag by calling MS update API
  27. if [ "${INSIDER}" == "1" ]; then
  28. UPDATE_INFO=$(curl https://update.code.visualstudio.com/api/update/darwin/insider/lol)
  29. export MS_COMMIT=$(echo "${UPDATE_INFO}" | jq -r '.version')
  30. export MS_TAG=$(echo "${UPDATE_INFO}" | jq -r '.name')
  31. elif [[ -z "${MS_TAG}" ]]; then
  32. UPDATE_INFO=$(curl https://update.code.visualstudio.com/api/update/darwin/stable/lol)
  33. export MS_COMMIT=$(echo "${UPDATE_INFO}" | jq -r '.version')
  34. export MS_TAG=$(echo "${UPDATE_INFO}" | jq -r '.name')
  35. else
  36. reference=$( git ls-remote --tags | grep -x ".*refs\/tags\/${MS_TAG}" | head -1 )
  37. if [[ -z "${reference}" ]]; then
  38. echo "The following tag can't be found: ${MS_TAG}"
  39. exit 1
  40. elif [[ "${reference}" =~ ^([[:alnum:]]+)[[:space:]]+refs\/tags\/([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then
  41. export MS_COMMIT="${BASH_REMATCH[1]}"
  42. export MS_TAG="${BASH_REMATCH[2]}"
  43. else
  44. echo "The following reference can't be parsed: ${reference}"
  45. exit 1
  46. fi
  47. fi
  48. echo "Got the MS tag: ${MS_TAG} version: ${MS_COMMIT}"
  49. git fetch --depth 1 origin "${MS_COMMIT}"
  50. git checkout FETCH_HEAD
  51. cd ..
  52. # for GH actions
  53. if [[ ${GITHUB_ENV} ]]; then
  54. echo "MS_TAG=${MS_TAG}" >> "${GITHUB_ENV}"
  55. echo "MS_COMMIT=${MS_COMMIT}" >> "${GITHUB_ENV}"
  56. echo "RELEASE_VERSION=${RELEASE_VERSION}" >> "${GITHUB_ENV}"
  57. fi
  58. . version.sh