prepare_artifacts.sh 5.7 KB

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