2
0

prepare_assets.sh 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. #!/bin/bash
  2. set -e
  3. APP_NAME_LC=$( echo "${APP_NAME}" | awk '{print tolower($0)}' )
  4. npm install -g checksum
  5. sum_file() {
  6. if [[ -f "${1}" ]]; then
  7. echo "Calculating checksum for ${1}"
  8. checksum -a sha256 "${1}" > "${1}".sha256
  9. checksum "${1}" > "${1}".sha1
  10. fi
  11. }
  12. mkdir -p assets
  13. if [[ "${OS_NAME}" == "osx" ]]; then
  14. if [[ "${CI_BUILD}" != "no" ]]; then
  15. cd "VSCode-darwin-${VSCODE_ARCH}"
  16. CERTIFICATE_P12="${APP_NAME}.p12"
  17. KEYCHAIN="${RUNNER_TEMP}/build.keychain"
  18. echo "${CERTIFICATE_OSX_P12}" | base64 --decode > "${CERTIFICATE_P12}"
  19. echo "+ create temporary keychain"
  20. security create-keychain -p mysecretpassword "${KEYCHAIN}"
  21. security set-keychain-settings -lut 21600 "${KEYCHAIN}"
  22. security unlock-keychain -p mysecretpassword "${KEYCHAIN}"
  23. security list-keychains -s `security list-keychains | xargs` "${KEYCHAIN}"
  24. # security list-keychains -d user
  25. # security show-keychain-info ${KEYCHAIN}
  26. echo "+ import certificate to keychain"
  27. security import "${CERTIFICATE_P12}" -k "${KEYCHAIN}" -P "${CERTIFICATE_OSX_PASSWORD}" -T /usr/bin/codesign
  28. security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k mysecretpassword "${KEYCHAIN}" > /dev/null
  29. # security find-identity "${KEYCHAIN}"
  30. echo "+ signing"
  31. if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
  32. codesign --deep --force --verbose --sign "${CERTIFICATE_OSX_ID}" "${APP_NAME} - Insiders.app"
  33. else
  34. codesign --deep --force --verbose --sign "${CERTIFICATE_OSX_ID}" "${APP_NAME}.app"
  35. fi
  36. cd ..
  37. fi
  38. if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
  39. echo "Building and moving ZIP"
  40. cd "VSCode-darwin-${VSCODE_ARCH}"
  41. zip -r -X -y "../assets/${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ./*.app
  42. cd ..
  43. fi
  44. if [[ "${SHOULD_BUILD_DMG}" != "no" ]]; then
  45. echo "Building and moving DMG"
  46. pushd "VSCode-darwin-${VSCODE_ARCH}"
  47. npx create-dmg ./*.app ..
  48. mv ../*.dmg "../assets/${APP_NAME}.${VSCODE_ARCH}.${RELEASE_VERSION}.dmg"
  49. popd
  50. fi
  51. if [[ "${SHOULD_BUILD_SRC}" == "yes" ]]; then
  52. git archive --format tar.gz --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.tar.gz" HEAD
  53. git archive --format zip --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.zip" HEAD
  54. fi
  55. VSCODE_PLATFORM="darwin"
  56. elif [[ "${OS_NAME}" == "windows" ]]; then
  57. cd vscode || { echo "'vscode' dir not found"; exit 1; }
  58. yarn gulp "vscode-win32-${VSCODE_ARCH}-inno-updater"
  59. if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
  60. yarn gulp "vscode-win32-${VSCODE_ARCH}-archive"
  61. fi
  62. if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
  63. yarn gulp "vscode-win32-${VSCODE_ARCH}-system-setup"
  64. fi
  65. if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
  66. yarn gulp "vscode-win32-${VSCODE_ARCH}-user-setup"
  67. fi
  68. if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
  69. if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
  70. . ../build/windows/msi/build.sh
  71. fi
  72. if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
  73. . ../build/windows/msi/build-updates-disabled.sh
  74. fi
  75. fi
  76. cd ..
  77. if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
  78. echo "Moving ZIP"
  79. mv "vscode\\.build\\win32-${VSCODE_ARCH}\\archive\\VSCode-win32-${VSCODE_ARCH}.zip" "assets\\${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip"
  80. fi
  81. if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
  82. echo "Moving System EXE"
  83. mv "vscode\\.build\\win32-${VSCODE_ARCH}\\system-setup\\VSCodeSetup.exe" "assets\\${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe"
  84. fi
  85. if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
  86. echo "Moving User EXE"
  87. mv "vscode\\.build\\win32-${VSCODE_ARCH}\\user-setup\\VSCodeSetup.exe" "assets\\${APP_NAME}UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe"
  88. fi
  89. if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
  90. if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
  91. echo "Moving MSI"
  92. mv "build\\windows\\msi\\releasedir\\${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" assets/
  93. fi
  94. if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
  95. echo "Moving MSI with disabled updates"
  96. mv "build\\windows\\msi\\releasedir\\${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" assets/
  97. fi
  98. fi
  99. VSCODE_PLATFORM="win32"
  100. else
  101. cd vscode || { echo "'vscode' dir not found"; exit 1; }
  102. if [[ "${SHOULD_BUILD_DEB}" != "no" || "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
  103. yarn gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
  104. fi
  105. if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
  106. yarn gulp "vscode-linux-${VSCODE_ARCH}-build-rpm"
  107. fi
  108. if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
  109. . ../build/linux/appimage/build.sh
  110. fi
  111. cd ..
  112. if [[ "${SHOULD_BUILD_TAR}" != "no" ]]; then
  113. echo "Building and moving TAR"
  114. cd "VSCode-linux-${VSCODE_ARCH}"
  115. tar czf "../assets/${APP_NAME}-linux-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
  116. cd ..
  117. fi
  118. if [[ "${SHOULD_BUILD_DEB}" != "no" ]]; then
  119. echo "Moving DEB"
  120. mv vscode/.build/linux/deb/*/deb/*.deb assets/
  121. fi
  122. if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
  123. echo "Moving RPM"
  124. mv vscode/.build/linux/rpm/*/*.rpm assets/
  125. fi
  126. if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
  127. echo "Moving AppImage"
  128. mv build/linux/appimage/out/*.AppImage* assets/
  129. find assets -name '*.AppImage*' -exec bash -c 'mv $0 ${0/_-_/-}' {} \;
  130. fi
  131. VSCODE_PLATFORM="linux"
  132. fi
  133. if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
  134. echo "Building and moving REH"
  135. cd "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
  136. tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
  137. cd ..
  138. fi
  139. cd assets
  140. for FILE in *
  141. do
  142. if [[ -f "${FILE}" ]]; then
  143. sum_file "${FILE}"
  144. fi
  145. done
  146. cd ..