vscodium/prepare_assets.sh

231 lines
6.9 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
# shellcheck disable=SC1091
2021-10-01 12:47:10 -04:00
set -e
2023-07-23 12:35:27 -04:00
APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
2022-10-06 16:15:41 -04:00
. ./utils.sh
2021-10-01 12:47:10 -04:00
npm install -g checksum
sum_file() {
if [[ -f "${1}" ]]; then
2022-10-26 06:19:21 -04:00
echo "Calculating checksum for ${1}"
checksum -a sha256 "${1}" > "${1}".sha256
checksum "${1}" > "${1}".sha1
2021-10-01 12:47:10 -04:00
fi
}
2022-10-06 16:15:41 -04:00
mkdir -p assets
2021-10-01 12:47:10 -04:00
if [[ "${OS_NAME}" == "osx" ]]; then
if [[ -n "${CERTIFICATE_OSX_P12_DATA}" ]]; then
if [[ "${CI_BUILD}" == "no" ]]; then
RUNNER_TEMP="${TMPDIR}"
fi
2022-10-06 16:15:41 -04:00
CERTIFICATE_P12="${APP_NAME}.p12"
KEYCHAIN="${RUNNER_TEMP}/buildagent.keychain"
AGENT_TEMPDIRECTORY="${RUNNER_TEMP}"
# shellcheck disable=SC2006
KEYCHAINS=`security list-keychains | xargs`
rm -f "${KEYCHAIN}"
echo "${CERTIFICATE_OSX_P12_DATA}" | base64 --decode > "${CERTIFICATE_P12}"
2022-09-12 08:21:34 -04:00
echo "+ create temporary keychain"
security create-keychain -p pwd "${KEYCHAIN}"
2022-09-12 09:52:26 -04:00
security set-keychain-settings -lut 21600 "${KEYCHAIN}"
security unlock-keychain -p pwd "${KEYCHAIN}"
# shellcheck disable=SC2086
security list-keychains -s $KEYCHAINS "${KEYCHAIN}"
# security show-keychain-info "${KEYCHAIN}"
2022-09-12 06:14:30 -04:00
2022-09-12 08:21:34 -04:00
echo "+ import certificate to keychain"
security import "${CERTIFICATE_P12}" -k "${KEYCHAIN}" -P "${CERTIFICATE_OSX_P12_PASSWORD}" -T /usr/bin/codesign
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k pwd "${KEYCHAIN}" > /dev/null
# security find-identity "${KEYCHAIN}"
2022-09-12 06:14:30 -04:00
CODESIGN_IDENTITY="$( security find-identity -v -p codesigning "${KEYCHAIN}" | grep -oEi "([0-9A-F]{40})" | head -n 1 )"
2022-09-12 08:21:34 -04:00
echo "+ signing"
export CODESIGN_IDENTITY AGENT_TEMPDIRECTORY
DEBUG="electron-osx-sign*" node vscode/build/darwin/sign.js "$( pwd )"
# codesign --display --entitlements :- ""
echo "+ notarize"
cd "VSCode-darwin-${VSCODE_ARCH}"
ZIP_FILE="./${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip"
zip -r -X -y "${ZIP_FILE}" ./*.app
xcrun notarytool store-credentials "${APP_NAME}" --apple-id "${CERTIFICATE_OSX_ID}" --team-id "${CERTIFICATE_OSX_TEAM_ID}" --password "${CERTIFICATE_OSX_APP_PASSWORD}" --keychain "${KEYCHAIN}"
# xcrun notarytool history --keychain-profile "${APP_NAME}" --keychain "${KEYCHAIN}"
xcrun notarytool submit "${ZIP_FILE}" --keychain-profile "${APP_NAME}" --wait --keychain "${KEYCHAIN}"
echo "+ attach staple"
xcrun stapler staple ./*.app
# spctl --assess -vv --type install ./*.app
rm "${ZIP_FILE}"
cd ..
fi
2021-10-01 12:47:10 -04:00
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
echo "Building and moving ZIP"
cd "VSCode-darwin-${VSCODE_ARCH}"
2022-10-06 16:15:41 -04:00
zip -r -X -y "../assets/${APP_NAME}-darwin-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" ./*.app
2021-10-01 12:47:10 -04:00
cd ..
fi
if [[ "${SHOULD_BUILD_DMG}" != "no" ]]; then
echo "Building and moving DMG"
pushd "VSCode-darwin-${VSCODE_ARCH}"
npx create-dmg ./*.app .
mv ./*.dmg "../assets/${APP_NAME}.${VSCODE_ARCH}.${RELEASE_VERSION}.dmg"
2021-10-01 12:47:10 -04:00
popd
fi
2022-06-08 10:59:06 -04:00
2022-09-25 12:07:45 -04:00
if [[ "${SHOULD_BUILD_SRC}" == "yes" ]]; then
2022-10-06 16:15:41 -04:00
git archive --format tar.gz --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.tar.gz" HEAD
git archive --format zip --output="./assets/${APP_NAME}-${RELEASE_VERSION}-src.zip" HEAD
2022-09-25 12:07:45 -04:00
fi
if [[ -n "${CERTIFICATE_OSX_P12_DATA}" ]]; then
echo "+ clean"
security delete-keychain "${KEYCHAIN}"
# shellcheck disable=SC2086
security list-keychains -s $KEYCHAINS
fi
2022-06-08 10:59:06 -04:00
VSCODE_PLATFORM="darwin"
2021-10-01 12:47:10 -04:00
elif [[ "${OS_NAME}" == "windows" ]]; then
cd vscode || { echo "'vscode' dir not found"; exit 1; }
yarn gulp "vscode-win32-${VSCODE_ARCH}-inno-updater"
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
2023-08-03 19:38:44 -04:00
7z.exe a -tzip "../assets/${APP_NAME}-win32-${VSCODE_ARCH}-${RELEASE_VERSION}.zip" -x!CodeSignSummary*.md -x!tools "../VSCode-win32-${VSCODE_ARCH}/*" -r
fi
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
yarn gulp "vscode-win32-${VSCODE_ARCH}-system-setup"
fi
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
yarn gulp "vscode-win32-${VSCODE_ARCH}-user-setup"
fi
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
. ../build/windows/msi/build.sh
fi
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
. ../build/windows/msi/build-updates-disabled.sh
fi
fi
cd ..
2021-10-01 12:47:10 -04:00
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
echo "Moving System EXE"
2022-10-06 16:15:41 -04:00
mv "vscode\\.build\\win32-${VSCODE_ARCH}\\system-setup\\VSCodeSetup.exe" "assets\\${APP_NAME}Setup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe"
2021-10-01 12:47:10 -04:00
fi
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
echo "Moving User EXE"
2022-10-06 16:15:41 -04:00
mv "vscode\\.build\\win32-${VSCODE_ARCH}\\user-setup\\VSCodeSetup.exe" "assets\\${APP_NAME}UserSetup-${VSCODE_ARCH}-${RELEASE_VERSION}.exe"
2021-10-01 12:47:10 -04:00
fi
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
echo "Moving MSI"
2022-10-06 16:15:41 -04:00
mv "build\\windows\\msi\\releasedir\\${APP_NAME}-${VSCODE_ARCH}-${RELEASE_VERSION}.msi" assets/
2021-10-01 12:47:10 -04:00
fi
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
echo "Moving MSI with disabled updates"
2022-10-06 16:15:41 -04:00
mv "build\\windows\\msi\\releasedir\\${APP_NAME}-${VSCODE_ARCH}-updates-disabled-${RELEASE_VERSION}.msi" assets/
2021-10-01 12:47:10 -04:00
fi
fi
2022-06-08 10:59:06 -04:00
VSCODE_PLATFORM="win32"
2021-10-01 12:47:10 -04:00
else
cd vscode || { echo "'vscode' dir not found"; exit 1; }
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" && "${VSCODE_ARCH}" != "x64" ]]; then
SHOULD_BUILD_APPIMAGE="no"
fi
2024-02-08 10:10:05 -05:00
if [[ "${SHOULD_BUILD_DEB}" != "no" || "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
fi
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-rpm"
fi
2024-02-06 18:51:19 -05:00
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
. ../build/linux/appimage/build.sh
fi
cd ..
2024-02-08 12:08:34 -05:00
if [[ "${CI_BUILD}" == "no" ]]; then
. ./stores/snapcraft/build.sh
if [[ "${SKIP_ASSETS}" == "no" ]]; then
mv stores/snapcraft/build/*.snap assets/
fi
2024-02-08 12:08:34 -05:00
fi
2021-10-01 12:47:10 -04:00
if [[ "${SHOULD_BUILD_TAR}" != "no" ]]; then
echo "Building and moving TAR"
cd "VSCode-linux-${VSCODE_ARCH}"
2022-10-06 16:15:41 -04:00
tar czf "../assets/${APP_NAME}-linux-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
2021-10-01 12:47:10 -04:00
cd ..
fi
if [[ "${SHOULD_BUILD_DEB}" != "no" ]]; then
echo "Moving DEB"
2022-10-06 16:15:41 -04:00
mv vscode/.build/linux/deb/*/deb/*.deb assets/
2021-10-01 12:47:10 -04:00
fi
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
echo "Moving RPM"
2022-10-06 16:15:41 -04:00
mv vscode/.build/linux/rpm/*/*.rpm assets/
2021-10-01 12:47:10 -04:00
fi
2024-02-06 18:51:19 -05:00
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
echo "Moving AppImage"
mv build/linux/appimage/out/*.AppImage* assets/
2022-08-29 15:56:51 -04:00
2024-02-06 18:51:19 -05:00
find assets -name '*.AppImage*' -exec bash -c 'mv $0 ${0/_-_/-}' {} \;
fi
2022-06-08 10:59:06 -04:00
VSCODE_PLATFORM="linux"
fi
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
echo "Building and moving REH"
cd "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}"
2022-10-06 16:15:41 -04:00
tar czf "../assets/${APP_NAME_LC}-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-${RELEASE_VERSION}.tar.gz" .
2022-06-08 10:59:06 -04:00
cd ..
2021-10-01 12:47:10 -04:00
fi
2022-10-06 16:15:41 -04:00
cd assets
2021-10-01 12:47:10 -04:00
2023-07-23 12:35:27 -04:00
for FILE in *; do
2021-10-01 12:47:10 -04:00
if [[ -f "${FILE}" ]]; then
sum_file "${FILE}"
fi
done
cd ..