upload_sourcemaps.sh 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. gh release create "${BUILD_SOURCEVERSION}" --repo "${SOURCEMAPS_REPOSITORY}" --title "${RELEASE_VERSION}"
  25. set +e
  26. for FILE in *; do
  27. if [[ -f "${FILE}" ]]; then
  28. echo "::group::Uploading '${FILE}' at $( date "+%T" )"
  29. gh release upload --repo "${SOURCEMAPS_REPOSITORY}" "${RELEASE_VERSION}" "${FILE}"
  30. EXIT_STATUS=$?
  31. echo "exit: ${EXIT_STATUS}"
  32. if (( "${EXIT_STATUS}" )); then
  33. for (( i=0; i<10; i++ )); do
  34. github-release delete --owner "${REPOSITORY_OWNER}" --repo "${REPOSITORY_NAME}" --tag "${BUILD_SOURCEVERSION}" "${FILE}"
  35. sleep $(( 15 * (i + 1)))
  36. echo "RE-Uploading '${FILE}' at $( date "+%T" )"
  37. gh release upload --repo "${SOURCEMAPS_REPOSITORY}" "${BUILD_SOURCEVERSION}" "${FILE}"
  38. EXIT_STATUS=$?
  39. echo "exit: ${EXIT_STATUS}"
  40. if ! (( "${EXIT_STATUS}" )); then
  41. break
  42. fi
  43. done
  44. echo "exit: ${EXIT_STATUS}"
  45. if (( "${EXIT_STATUS}" )); then
  46. echo "'${FILE}' hasn't been uploaded!"
  47. github-release delete --owner "${REPOSITORY_OWNER}" --repo "${REPOSITORY_NAME}" --tag "${BUILD_SOURCEVERSION}" "${FILE}"
  48. exit 1
  49. fi
  50. fi
  51. echo "::endgroup::"
  52. fi
  53. done
  54. cd ..