upload_sourcemaps.sh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. tar czf "${APP_NAME}-${RELEASE_VERSION}-sourcemaps.tar.gz" *.js.map
  21. find . -type f -name "*.js.map" | sort | xargs checksum -a sha256 > checksum.txt
  22. checksum -a sha256 checksum.txt > checksum.txt.sha256
  23. checksum -a sha256 "${APP_NAME}-${RELEASE_VERSION}-sourcemaps.tar.gz" > "${APP_NAME}-${RELEASE_VERSION}-sourcemaps.tar.gz.sha256"
  24. REPOSITORY_OWNER="${SOURCEMAPS_REPOSITORY/\/*/}"
  25. REPOSITORY_NAME="${SOURCEMAPS_REPOSITORY/*\//}"
  26. RELEASE_TAG="${VSCODE_QUALITY}-${BUILD_SOURCEVERSION}"
  27. gh release create "${RELEASE_TAG}" --repo "${SOURCEMAPS_REPOSITORY}" --title "${RELEASE_VERSION}"
  28. set +e
  29. for FILE in *; do
  30. if [[ -f "${FILE}" ]]; then
  31. echo "::group::Uploading '${FILE}' at $( date "+%T" )"
  32. gh release upload --repo "${SOURCEMAPS_REPOSITORY}" "${RELEASE_TAG}" "${FILE}"
  33. EXIT_STATUS=$?
  34. echo "exit: ${EXIT_STATUS}"
  35. if (( "${EXIT_STATUS}" )); then
  36. for (( i=0; i<10; i++ )); do
  37. github-release delete --owner "${REPOSITORY_OWNER}" --repo "${REPOSITORY_NAME}" --tag "${RELEASE_TAG}" "${FILE}"
  38. sleep $(( 15 * (i + 1)))
  39. echo "RE-Uploading '${FILE}' at $( date "+%T" )"
  40. gh release upload --repo "${SOURCEMAPS_REPOSITORY}" "${RELEASE_TAG}" "${FILE}"
  41. EXIT_STATUS=$?
  42. echo "exit: ${EXIT_STATUS}"
  43. if ! (( "${EXIT_STATUS}" )); then
  44. break
  45. fi
  46. done
  47. echo "exit: ${EXIT_STATUS}"
  48. if (( "${EXIT_STATUS}" )); then
  49. echo "'${FILE}' hasn't been uploaded!"
  50. github-release delete --owner "${REPOSITORY_OWNER}" --repo "${REPOSITORY_NAME}" --tag "${RELEASE_TAG}" "${FILE}"
  51. exit 1
  52. fi
  53. fi
  54. echo "::endgroup::"
  55. fi
  56. done
  57. cd ..