upload_sourcemaps.sh 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #!/usr/bin/env bash
  2. set -e
  3. npm install -g checksum github-release-cli
  4. mkdir -p sourcemaps
  5. cd sourcemaps
  6. SOURCE_DIR="../vscode/.build/extensions"
  7. DESTINATION_DIR="extensions"
  8. find "${SOURCE_DIR}" -type f -name "*.js.map" | while read -r SOURCE_FILE_PATH; do
  9. RELATIVE_PATH="${SOURCE_FILE_PATH#$SOURCE_DIR/}"
  10. FLATTENED_FILENAME="${RELATIVE_PATH//\//-}"
  11. cp "${SOURCE_FILE_PATH}" "$DESTINATION_DIR-${FLATTENED_FILENAME}"
  12. done
  13. SOURCE_DIR="../vscode/out-vscode-min"
  14. DESTINATION_DIR="core"
  15. find "${SOURCE_DIR}" -type f -name "*.js.map" | while read -r SOURCE_FILE_PATH; do
  16. RELATIVE_PATH="${SOURCE_FILE_PATH#$SOURCE_DIR/}"
  17. FLATTENED_FILENAME="${RELATIVE_PATH//\//-}"
  18. cp "${SOURCE_FILE_PATH}" "$DESTINATION_DIR-${FLATTENED_FILENAME}"
  19. done
  20. find . -type f -exec checksum -a sha256 {} \; > checksum.txt
  21. checksum -a sha256 checksum.txt > checksum.txt.sha256
  22. REPOSITORY_OWNER="${SOURCEMAPS_REPOSITORY/\/*/}"
  23. REPOSITORY_NAME="${SOURCEMAPS_REPOSITORY/*\//}"
  24. RELEASE_TAG="${VSCODE_QUALITY}-${BUILD_SOURCEVERSION}"
  25. gh release create "${RELEASE_TAG}" --repo "${SOURCEMAPS_REPOSITORY}" --title "${RELEASE_VERSION}"
  26. set +e
  27. for FILE in *; do
  28. if [[ -f "${FILE}" ]]; then
  29. echo "::group::Uploading '${FILE}' at $( date "+%T" )"
  30. gh release upload --repo "${SOURCEMAPS_REPOSITORY}" "${RELEASE_TAG}" "${FILE}"
  31. EXIT_STATUS=$?
  32. echo "exit: ${EXIT_STATUS}"
  33. if (( "${EXIT_STATUS}" )); then
  34. for (( i=0; i<10; i++ )); do
  35. github-release delete --owner "${REPOSITORY_OWNER}" --repo "${REPOSITORY_NAME}" --tag "${RELEASE_TAG}" "${FILE}"
  36. sleep $(( 15 * (i + 1)))
  37. echo "RE-Uploading '${FILE}' at $( date "+%T" )"
  38. gh release upload --repo "${SOURCEMAPS_REPOSITORY}" "${RELEASE_TAG}" "${FILE}"
  39. EXIT_STATUS=$?
  40. echo "exit: ${EXIT_STATUS}"
  41. if ! (( "${EXIT_STATUS}" )); then
  42. break
  43. fi
  44. done
  45. echo "exit: ${EXIT_STATUS}"
  46. if (( "${EXIT_STATUS}" )); then
  47. echo "'${FILE}' hasn't been uploaded!"
  48. github-release delete --owner "${REPOSITORY_OWNER}" --repo "${REPOSITORY_NAME}" --tag "${RELEASE_TAG}" "${FILE}"
  49. exit 1
  50. fi
  51. fi
  52. echo "::endgroup::"
  53. fi
  54. done
  55. cd ..