build.sh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #!/bin/bash
  2. ### Windows
  3. # to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./build/build.sh
  4. ###
  5. export APP_NAME="VSCodium"
  6. export CI_BUILD="no"
  7. export SHOULD_BUILD="yes"
  8. export SKIP_ASSETS="yes"
  9. export SKIP_BUILD="no"
  10. export SKIP_SOURCE="no"
  11. export VSCODE_LATEST="no"
  12. export VSCODE_QUALITY="stable"
  13. while getopts ":ilop" opt; do
  14. case "$opt" in
  15. i)
  16. export VSCODE_QUALITY="insider"
  17. ;;
  18. l)
  19. export VSCODE_LATEST="yes"
  20. ;;
  21. o)
  22. export SKIP_BUILD="yes"
  23. ;;
  24. p)
  25. export SKIP_ASSETS="no"
  26. ;;
  27. s)
  28. export SKIP_SOURCE="yes"
  29. ;;
  30. esac
  31. done
  32. case "${OSTYPE}" in
  33. darwin*)
  34. export OS_NAME="osx"
  35. ;;
  36. msys* | cygwin*)
  37. export OS_NAME="windows"
  38. ;;
  39. *)
  40. export OS_NAME="linux"
  41. ;;
  42. esac
  43. UNAME_ARCH=$( uname -m )
  44. if [[ "${UNAME_ARCH}" == "arm64" ]]; then
  45. export VSCODE_ARCH="arm64"
  46. elif [[ "${UNAME_ARCH}" == "ppc64le" ]]; then
  47. export VSCODE_ARCH="ppc64le"
  48. else
  49. export VSCODE_ARCH="x64"
  50. fi
  51. echo "OS_NAME=\"${OS_NAME}\""
  52. echo "SKIP_SOURCE=\"${SKIP_SOURCE}\""
  53. echo "SKIP_BUILD=\"${SKIP_BUILD}\""
  54. echo "SKIP_ASSETS=\"${SKIP_ASSETS}\""
  55. echo "VSCODE_ARCH=\"${VSCODE_ARCH}\""
  56. echo "VSCODE_LATEST=\"${VSCODE_LATEST}\""
  57. echo "VSCODE_QUALITY=\"${VSCODE_QUALITY}\""
  58. if [[ "${SKIP_SOURCE}" == "no" ]]; then
  59. rm -rf vscode* VSCode*
  60. . get_repo.sh
  61. . version.sh
  62. # save variables for later
  63. echo "MS_TAG=\"${MS_TAG}\"" > build.env
  64. echo "MS_COMMIT=\"${MS_COMMIT}\"" >> build.env
  65. echo "RELEASE_VERSION=\"${RELEASE_VERSION}\"" >> build.env
  66. echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\"" >> build.env
  67. else
  68. if [[ "${SKIP_ASSETS}" != "no" ]]; then
  69. rm -rf VSCode*
  70. fi
  71. . build.env
  72. echo "MS_TAG=\"${MS_TAG}\""
  73. echo "MS_COMMIT=\"${MS_COMMIT}\""
  74. echo "RELEASE_VERSION=\"${RELEASE_VERSION}\""
  75. echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\""
  76. fi
  77. if [[ "${SKIP_BUILD}" == "no" ]]; then
  78. if [[ "${SKIP_SOURCE}" != "no" ]]; then
  79. cd vscode || { echo "'vscode' dir not found"; exit 1; }
  80. git add .
  81. git reset -q --hard HEAD
  82. cd ..
  83. fi
  84. . build.sh
  85. if [[ "${VSCODE_QUALITY}" == "insider" && "${VSCODE_LATEST}" == "yes" ]]; then
  86. echo "$( cat "insider.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )" > "insider.json"
  87. fi
  88. fi
  89. if [[ "${SKIP_ASSETS}" == "no" ]]; then
  90. if [[ "${OS_NAME}" == "windows" ]]; then
  91. rm -rf build/windows/msi/releasedir
  92. fi
  93. . prepare_assets.sh
  94. fi