mirror of
https://github.com/VSCodium/vscodium.git
synced 2026-04-12 00:37:19 +10:00
Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f5a7d4a1b | ||
|
|
02cc193086 | ||
|
|
e564685c1e | ||
|
|
85cbd0b0f2 | ||
|
|
b748657b09 | ||
|
|
db02ad1133 | ||
|
|
573c0230c5 | ||
|
|
bb483f44e2 | ||
|
|
3fa3f18d91 | ||
|
|
ef1ce60ad8 | ||
|
|
a6da364b3c | ||
|
|
a8964122dc | ||
|
|
f1dd2cf1cc | ||
|
|
108166f640 | ||
|
|
07877c5e12 | ||
|
|
5439ac0757 | ||
|
|
9c2f61b79c | ||
|
|
0d433893b7 | ||
|
|
bf524a9c2c | ||
|
|
d862b86a27 | ||
|
|
8aa9de17b1 | ||
|
|
72363757b3 | ||
|
|
96332714ae | ||
|
|
a5506b975c | ||
|
|
b175fd43eb |
22
.editorconfig
Normal file
22
.editorconfig
Normal file
@@ -0,0 +1,22 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
tab_width = 2
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.sh]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.{yml,yaml}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.patch]
|
||||
trim_trailing_whitespace = false
|
||||
insert_final_newline = false
|
||||
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
38
.github/workflows/linux.yml
vendored
38
.github/workflows/linux.yml
vendored
@@ -11,7 +11,7 @@ on:
|
||||
jobs:
|
||||
linux:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
env:
|
||||
OS_NAME: 'linux'
|
||||
@@ -20,7 +20,6 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
vscode_arch: [x64, arm64, armhf]
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
npm_arch: x64
|
||||
@@ -35,6 +34,9 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install GH
|
||||
run: ./install_gh.sh
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
@@ -43,12 +45,12 @@ jobs:
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Check PR or cron
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
@@ -80,31 +82,15 @@ jobs:
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Zip release
|
||||
run: |
|
||||
cd VSCode-linux-${VSCODE_ARCH}
|
||||
tar czf ../VSCodium-linux-${VSCODE_ARCH}-${LATEST_MS_TAG}.tar.gz .
|
||||
- name: Prepare artifacts
|
||||
run: ./prepare_artifacts.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Generate shasums
|
||||
run: ./sum.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
with:
|
||||
tag_name: ${{ env.LATEST_MS_TAG }}
|
||||
files: |
|
||||
./*.sha256
|
||||
./*.zip
|
||||
./*.tar.gz
|
||||
./*.deb
|
||||
./*.rpm
|
||||
./VSCodium-*.AppImage
|
||||
./VSCodium-*.AppImage.zsync
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_CLI_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
60
.github/workflows/macos.yml
vendored
60
.github/workflows/macos.yml
vendored
@@ -10,31 +10,39 @@ on:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: macOS-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
os: macOS-10.15
|
||||
# - vscode_arch: arm64
|
||||
# os: macOS-11
|
||||
|
||||
env:
|
||||
OS_NAME: "osx"
|
||||
VSCODE_ARCH: "x64"
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14
|
||||
|
||||
- name: Check PR or cron
|
||||
run: |
|
||||
. check_cron_or_pr.sh
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: |
|
||||
. get_repo.sh
|
||||
run: . get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: . check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
. check_tags.sh
|
||||
run: . check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Compute cache key
|
||||
@@ -81,35 +89,15 @@ jobs:
|
||||
codesign --deep --force --verbose --sign "$CERTIFICATE_OSX_ID" VSCodium.app
|
||||
fi
|
||||
|
||||
- name: Zip release
|
||||
run: |
|
||||
cd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
zip -r -X -y ../VSCodium-darwin-${VSCODE_ARCH}-${LATEST_MS_TAG}.zip ./*.app
|
||||
- name: Prepare artifacts
|
||||
run: ./prepare_artifacts.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: DMG the release
|
||||
run: |
|
||||
pushd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
npx create-dmg VSCodium.app ..
|
||||
mv "../VSCodium ${LATEST_MS_TAG}.dmg" "../VSCodium.${VSCODE_ARCH}.${LATEST_MS_TAG}.dmg"
|
||||
popd
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Generate shasums
|
||||
run: ./sum.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
with:
|
||||
tag_name: ${{ env.LATEST_MS_TAG }}
|
||||
files: |
|
||||
./*.zip
|
||||
./*.dmg
|
||||
./*.sha256
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_CLI_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
48
.github/workflows/windows.yml
vendored
48
.github/workflows/windows.yml
vendored
@@ -11,6 +11,9 @@ on:
|
||||
jobs:
|
||||
windows:
|
||||
runs-on: windows-2016
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
OS_NAME: 'windows'
|
||||
@@ -20,7 +23,13 @@ jobs:
|
||||
vscode_arch: [x64, ia32, arm64]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Checkout github repo (+ download lfs dependencies)
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
lfs: true
|
||||
|
||||
- name: Checkout LFS objects
|
||||
run: git lfs checkout
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v1
|
||||
@@ -35,19 +44,16 @@ jobs:
|
||||
with:
|
||||
python-version: '2.x'
|
||||
|
||||
- name: Check PR or cron
|
||||
run: ./check_cron_or_pr.sh
|
||||
shell: bash
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
shell: bash
|
||||
|
||||
- name: Check PR or cron
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./check_tags.sh
|
||||
shell: bash
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Compute cache key
|
||||
@@ -74,39 +80,21 @@ jobs:
|
||||
npm_config_arch: ${{ matrix.vscode_arch }}
|
||||
npm_config_target_arch: ${{ matrix.vscode_arch }}
|
||||
run: ./build.sh
|
||||
shell: bash
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Move/rename build artifacts
|
||||
run: |
|
||||
mv vscode\\.build\\win32-${VSCODE_ARCH}\\system-setup\\VSCodeSetup.exe VSCodiumSetup-${VSCODE_ARCH}-${LATEST_MS_TAG}.exe
|
||||
mv vscode\\.build\\win32-${VSCODE_ARCH}\\user-setup\\VSCodeSetup.exe VSCodiumUserSetup-${VSCODE_ARCH}-${LATEST_MS_TAG}.exe
|
||||
mv vscode\\.build\\win32-${VSCODE_ARCH}\\archive\\VSCode-win32-${VSCODE_ARCH}.zip VSCodium-win32-${VSCODE_ARCH}-${LATEST_MS_TAG}.zip
|
||||
shell: bash
|
||||
- name: Prepare artifacts
|
||||
run: ./prepare_artifacts.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Generate shasums
|
||||
run: ./sum.sh
|
||||
shell: bash
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
with:
|
||||
tag_name: ${{ env.LATEST_MS_TAG }}
|
||||
files: |
|
||||
./*.sha256
|
||||
./VSCodium*.zip
|
||||
./VSCodiumUserSetup*.exe
|
||||
./VSCodiumSetup*.exe
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GH_CLI_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
run: ./update_version.sh
|
||||
shell: bash
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,3 +1,7 @@
|
||||
vscode
|
||||
VS*/*
|
||||
.DS_Store
|
||||
build/linux/appimage/out
|
||||
build/windows/msi/releasedir
|
||||
build/windows/rtf/Readme (Abridged).txt
|
||||
build/windows/rtf/TXT to RTF Converter.exe
|
||||
|
||||
11
DOCS.md
11
DOCS.md
@@ -9,6 +9,7 @@
|
||||
- [Proprietary Debugging Tools](#proprietary-debugging-tools)
|
||||
- [Proprietary Extensions](#proprietary-extensions)
|
||||
- [Migrating from Visual Studio Code to VSCodium](#migrating)
|
||||
- [Sign in with GitHub](#signin-github)
|
||||
- [How do I run VSCodium in portable mode?](#portable)
|
||||
- [How do I press and hold a key and have it repeat in VSCodium?](#press-and-hold)
|
||||
- [How do I open VSCodium from the terminal?](#terminal-support)
|
||||
@@ -122,6 +123,16 @@ To copy your settings manually:
|
||||
- Click the three dots `...` and choose 'Open settings.json'
|
||||
- Copy the contents of settings.json into the same place in VSCodium
|
||||
|
||||
## <a id="signin-github"></a>Sign in with GitHub
|
||||
|
||||
In VSCodium, `Sign in with GitHub` is using a Personal Access Token.<br />
|
||||
Follow the documentation https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token to create your token.<br />
|
||||
Select the scopes dependending of the extension which need access to GitHub. (GitLens requires the `repo` scope.)
|
||||
|
||||
### Linux
|
||||
|
||||
If you are getting the error `Writing login information to the keychain failed with error 'The name org.freedesktop.secrets was not provided by any .service files'.`, you need to install the package `gnome-keyring`.
|
||||
|
||||
## <a id="portable"></a>How do I run VSCodium in portable mode?
|
||||
You can follow the [Portable Mode instructions](https://code.visualstudio.com/docs/editor/portable) from the Visual Studio Code website.
|
||||
- **Windows** / **Linux** : the instructions can be followed as written.
|
||||
|
||||
4
LICENSE
4
LICENSE
@@ -1,6 +1,8 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 Peter Squicciarini
|
||||
Copyright (c) 2018-present The VSCodium contributors
|
||||
Copyright (c) 2018-present Peter Squicciarini
|
||||
Copyright (c) 2015-present Microsoft Corporation
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
53
build.sh
53
build.sh
@@ -2,10 +2,10 @@
|
||||
|
||||
set -ex
|
||||
|
||||
if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||
if [[ "${SHOULD_BUILD}" == "yes" ]]; then
|
||||
npm config set scripts-prepend-node-path true
|
||||
|
||||
echo "LATEST_MS_COMMIT: ${LATEST_MS_COMMIT}"
|
||||
echo "MS_COMMIT: ${MS_COMMIT}"
|
||||
|
||||
. prepare_vscode.sh
|
||||
|
||||
@@ -19,22 +19,51 @@ if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||
yarn gulp compile-extensions-build
|
||||
yarn gulp minify-vscode
|
||||
|
||||
if [[ "$OS_NAME" == "osx" ]]; then
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
yarn gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
|
||||
elif [[ "$OS_NAME" == "windows" ]]; then
|
||||
cp LICENSE.txt LICENSE.rtf # windows build expects rtf license
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
. ../build/windows/rtf/make.sh
|
||||
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-code-helper"
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-inno-updater"
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-archive"
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-system-setup"
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-user-setup"
|
||||
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-archive"
|
||||
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
|
||||
else # linux
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
|
||||
if [[ "$SKIP_LINUX_PACKAGES" != "True" ]]; then
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-rpm"
|
||||
. ../create_appimage.sh
|
||||
|
||||
if [[ "${SKIP_LINUX_PACKAGES}" != "True" ]]; then
|
||||
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
|
||||
|
||||
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
. ../build/linux/appimage/build.sh
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,14 +1,6 @@
|
||||
# powershell -ExecutionPolicy ByPass -File .\build\build_windows.ps1
|
||||
|
||||
$env:Path += ";C:\Program Files\Git\bin"
|
||||
# first so `bash` is the one installed with `git`, avoid conflict with WSL
|
||||
$env:Path = "C:\Program Files\Git\bin;" + $env:Path
|
||||
|
||||
Remove-Item -Recurse -Force VSCode*
|
||||
|
||||
bash ./get_repo.sh
|
||||
|
||||
$Env:SHOULD_BUILD = 'yes'
|
||||
$Env:CI_BUILD = 'no'
|
||||
$Env:OS_NAME = 'windows'
|
||||
$Env:VSCODE_ARCH = 'x64'
|
||||
|
||||
bash ./build.sh
|
||||
bash ./build/build_windows.sh
|
||||
|
||||
11
build/build_windows.sh
Executable file
11
build/build_windows.sh
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./build/build_windows.sh
|
||||
|
||||
rm -rf VSCode*
|
||||
rm -rf vscode
|
||||
rm -rf build/windows/msi/releasedir
|
||||
|
||||
. get_repo.sh
|
||||
|
||||
SHOULD_BUILD=yes CI_BUILD=no OS_NAME=windows VSCODE_ARCH=x64 . build.sh
|
||||
@@ -1,6 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd ..
|
||||
set -ex
|
||||
|
||||
CALLER_DIR=$( pwd )
|
||||
|
||||
cd "$( dirname "${BASH_SOURCE[0]}" )"
|
||||
|
||||
if [[ "$VSCODE_ARCH" == "x64" ]]; then
|
||||
wget -c https://github.com/$(wget -q https://github.com/AppImage/pkg2appimage/releases -O - | grep "pkg2appimage-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2)
|
||||
@@ -14,7 +18,11 @@ if [[ "$VSCODE_ARCH" == "x64" ]]; then
|
||||
# remove check so build in docker can succeed
|
||||
sed -i 's/grep docker/# grep docker/' pkg2appimage.AppDir/usr/share/pkg2appimage/functions.sh
|
||||
|
||||
bash -ex pkg2appimage.AppDir/AppRun VSCodium-AppImage-Recipe.yml
|
||||
bash -ex pkg2appimage.AppDir/AppRun recipe.yml
|
||||
|
||||
rm -f pkg2appimage-*.AppImage
|
||||
rm -rf pkg2appimage.AppDir
|
||||
rm -rf VSCodium
|
||||
fi
|
||||
|
||||
cd vscode
|
||||
cd "${CALLER_DIR}"
|
||||
@@ -16,7 +16,7 @@ ingredients:
|
||||
- deb http://archive.ubuntu.com/ubuntu/ trusty main universe
|
||||
script:
|
||||
- pwd
|
||||
- cp ../vscode/.build/linux/deb/amd64/deb/*.deb .
|
||||
- cp ../../../../vscode/.build/linux/deb/amd64/deb/*.deb .
|
||||
- ls codium_*.deb | cut -d _ -f 2 > VERSION
|
||||
|
||||
script:
|
||||
21
build/windows/msi/build-updates-disabled.sh
Normal file
21
build/windows/msi/build-updates-disabled.sh
Normal file
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
CALLER_DIR=$( pwd )
|
||||
|
||||
cd "$( dirname "${BASH_SOURCE[0]}" )"
|
||||
|
||||
SCRIPT_DIR=$( pwd )
|
||||
|
||||
cd ../../../VSCode-win32-${VSCODE_ARCH}/resources/app
|
||||
|
||||
cp product.json product.json.bak
|
||||
cat product.json.bak | jq "del(.updateUrl)" > product.json
|
||||
rm -f product.json.bak
|
||||
|
||||
cd "${SCRIPT_DIR}"
|
||||
|
||||
. build.sh "updates-disabled"
|
||||
|
||||
cd "${CALLER_DIR}"
|
||||
86
build/windows/msi/build.sh
Normal file
86
build/windows/msi/build.sh
Normal file
@@ -0,0 +1,86 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
CALLER_DIR=$( pwd )
|
||||
|
||||
cd "$( dirname "${BASH_SOURCE[0]}" )"
|
||||
|
||||
WIN_SDK_MAJOR_VERSION="10"
|
||||
WIN_SDK_FULL_VERSION="10.0.17763.0"
|
||||
|
||||
PRODUCT_NAME="VSCodium"
|
||||
PRODUCT_SKU="vscodium"
|
||||
PRODUCT_ID=$( powershell.exe -command "[guid]::NewGuid().ToString().ToUpper()" )
|
||||
PRODUCT_ID="${PRODUCT_ID%%[[:cntrl:]]}"
|
||||
|
||||
CULTURE="en-us"
|
||||
LANGIDS="1033"
|
||||
|
||||
SETUP_RELEASE_DIR=".\\releasedir"
|
||||
SETUP_RESOURCES_DIR=".\\resources"
|
||||
BINARY_DIR="..\\..\\..\\VSCode-win32-${VSCODE_ARCH}"
|
||||
ICON_DIR="..\\..\\..\\src\\resources\\win32"
|
||||
LICENSE_DIR="..\\..\\..\\vscode"
|
||||
PROGRAM_FILES_86=$( env | sed -n 's/^ProgramFiles(x86)=//p' )
|
||||
|
||||
if [[ -z "$1" ]]; then
|
||||
OUTPUT_BASE_FILENAME="${PRODUCT_NAME}-${VSCODE_ARCH}-${MS_TAG}"
|
||||
else
|
||||
OUTPUT_BASE_FILENAME="${PRODUCT_NAME}-${VSCODE_ARCH}-$1-${MS_TAG}"
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" ]]; then
|
||||
export PLATFORM="x86"
|
||||
else
|
||||
export PLATFORM="${VSCODE_ARCH}"
|
||||
fi
|
||||
|
||||
|
||||
BuildSetupTranslationTransform() {
|
||||
local CULTURE=$1
|
||||
local LANGID=$2
|
||||
|
||||
LANGIDS="${LANGIDS},${LANGID}"
|
||||
|
||||
echo "Building setup translation for culture \"${CULTURE}\" with LangID \"${LANGID}\"..."
|
||||
|
||||
"${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -reusecab -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" -loc "i18n\\${PRODUCT_SKU}.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69
|
||||
|
||||
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\WiLangId.vbs" ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi Product "${LANGID}"
|
||||
|
||||
"${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\x86\\msitran" -g "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst"
|
||||
|
||||
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst "${LANGID}"
|
||||
|
||||
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi
|
||||
|
||||
rm -f "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi"
|
||||
rm -f "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst"
|
||||
}
|
||||
|
||||
"${WIX}bin\\heat.exe" dir "${BINARY_DIR}" -out "Files-${OUTPUT_BASE_FILENAME}.wxs" -t vscodium.xsl -gg -sfrag -scom -sreg -srd -ke -cg "AppFiles" -var var.AppName -var var.ProductVersion -var var.IconDir -var var.LicenseDir -var var.BinaryDir -dr APPLICATIONFOLDER -platform "${PLATFORM}"
|
||||
"${WIX}bin\\candle.exe" -arch "${PLATFORM}" vscodium.wxs "Files-${OUTPUT_BASE_FILENAME}.wxs" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -dAppName=${PRODUCT_NAME} -dProductVersion="${MS_TAG}" -dProductId="${PRODUCT_ID}" -dBinaryDir="${BINARY_DIR}" -dIconDir="${ICON_DIR}" -dLicenseDir="${LICENSE_DIR}" -dSetupResourcesDir="${SETUP_RESOURCES_DIR}" -dCulture="${CULTURE}"
|
||||
"${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" -loc "i18n\\${PRODUCT_SKU}.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69
|
||||
|
||||
BuildSetupTranslationTransform de-de 1031
|
||||
BuildSetupTranslationTransform es-es 3082
|
||||
BuildSetupTranslationTransform fr-fr 1036
|
||||
BuildSetupTranslationTransform it-it 1040
|
||||
# WixUI_Advanced bug: https://github.com/wixtoolset/issues/issues/5909
|
||||
# BuildSetupTranslationTransform ja-jp 1041
|
||||
BuildSetupTranslationTransform ko-kr 1042
|
||||
BuildSetupTranslationTransform ru-ru 1049
|
||||
BuildSetupTranslationTransform zh-cn 2052
|
||||
BuildSetupTranslationTransform zh-tw 1028
|
||||
|
||||
# Add all supported languages to MSI Package attribute
|
||||
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\WiLangId.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" Package "${LANGIDS}"
|
||||
|
||||
# Remove files we do not need any longer.
|
||||
rm -rf "${TEMP}\\vscodium-cab-cache"
|
||||
rm -f "Files-${OUTPUT_BASE_FILENAME}.wxs"
|
||||
rm -f "Files-${OUTPUT_BASE_FILENAME}.wixobj"
|
||||
rm -f "vscodium.wixobj"
|
||||
|
||||
cd "${CALLER_DIR}"
|
||||
25
build/windows/msi/i18n/vscodium.de-de.wxl
Normal file
25
build/windows/msi/i18n/vscodium.de-de.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="de-de" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1031</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Paket mit VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Startmenü-Verknüpfung</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Startmenü-Symbol erstellen.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop-Verknüpfung</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Desktop-Symbol erstellen.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">Dateizuordnungen</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">VSCodium als Editor für unterstützte Dateitypen registrieren.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Dateikontextmenü</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Aktion "Mit VSCodium öffnen" dem Dateikontextmenü von Windows-Explorer hinzufügen.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Verzeichniskontextmenü</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Aktion "Mit VSCodium öffnen" dem Verzeichniskontextmenü von Windows-Explorer hinzufügen.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Zu PATH hinzufügen</String>
|
||||
<String Id="FeatureEnvironmentDescription">VSCodium zur PATH Variable hinzufügen. Nach dem Neustart verfügbar.</String>
|
||||
<String Id="LaunchApplication">VSCodium ausführen</String>
|
||||
<String Id="NewerVersionInstalled">Eine neuere Version von VSCodium ist bereits installiert.</String>
|
||||
<String Id="MinimumNetFramworkRequired">Diese Anwendung erfordert .NET Framework 4.5.2 oder höher. Bitte installieren Sie .NET Framework und führen Sie dieses Installationsprogramm erneut aus.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 oder neuer ist erforderlich.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.en-us.wxl
Normal file
25
build/windows/msi/i18n/vscodium.en-us.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="en-us" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1033</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.es-es.wxl
Normal file
25
build/windows/msi/i18n/vscodium.es-es.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="es-es" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">3082</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.fr-fr.wxl
Normal file
25
build/windows/msi/i18n/vscodium.fr-fr.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="fr-fr" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1036</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.it-it.wxl
Normal file
25
build/windows/msi/i18n/vscodium.it-it.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="it-it" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1040</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.ja-jp.wxl
Normal file
25
build/windows/msi/i18n/vscodium.ja-jp.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="ja-jp" Codepage="932" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1041</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.ko-kr.wxl
Normal file
25
build/windows/msi/i18n/vscodium.ko-kr.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="ko-kr" Codepage="949" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1042</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.ru-ru.wxl
Normal file
25
build/windows/msi/i18n/vscodium.ru-ru.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="ru-ru" Codepage="1251" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1049</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.zh-cn.wxl
Normal file
25
build/windows/msi/i18n/vscodium.zh-cn.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="zh-cn" Codepage="936" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">2052</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.zh-tw.wxl
Normal file
25
build/windows/msi/i18n/vscodium.zh-tw.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="zh-tw" Codepage="950" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1028</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
27
build/windows/msi/includes/vscodium-variables.wxi
Normal file
27
build/windows/msi/includes/vscodium-variables.wxi
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Include>
|
||||
<!-- Setup UI strings. -->
|
||||
<?if $(env.Platform)=x86?>
|
||||
<?define ProgramFilesFolder="ProgramFilesFolder" ?>
|
||||
<?define Win64="no" ?>
|
||||
<?define Arch="(x86)" ?>
|
||||
<?else?>
|
||||
<?define ProgramFilesFolder="ProgramFiles64Folder" ?>
|
||||
<?define Win64="yes" ?>
|
||||
<?define Arch="(x64)" ?>
|
||||
<?endif?>
|
||||
|
||||
<!-- <?define ProductVersion="$(var.ProductVersion)" ?> -->
|
||||
<?define ProductName="!(loc.ProductName)" ?>
|
||||
<?define ProductNameWithVersion="!(loc.ProductName) $(var.ProductVersion) $(var.Arch)" ?>
|
||||
<?define ProductLanguage="!(loc.ProductLanguage)" ?>
|
||||
<?define AppCodeName="$(var.AppName)" ?>
|
||||
<!-- <?define AppName="$(var.AppName)" ?> -->
|
||||
<?define AppFolderName="$(var.AppName)" ?>
|
||||
<?define ProductManufacturerShort="$(var.AppName)" ?>
|
||||
<?define ProductManufacturerLong="$(var.AppName)" ?>
|
||||
|
||||
<!-- Static settings, DO NOT TOUCH or upgrades will break! -->
|
||||
<?define ProductUpgradeCode="{965370CD-253C-4720-82FC-2E6B02A53808}" ?>
|
||||
<?define RTMProductVersion="0.0.1" ?>
|
||||
</Include>
|
||||
BIN
build/windows/msi/resources/wix-banner.bmp
Normal file
BIN
build/windows/msi/resources/wix-banner.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 84 KiB |
BIN
build/windows/msi/resources/wix-dialog.bmp
Normal file
BIN
build/windows/msi/resources/wix-dialog.bmp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 451 KiB |
1507
build/windows/msi/vscodium.wxs
Normal file
1507
build/windows/msi/vscodium.wxs
Normal file
File diff suppressed because it is too large
Load Diff
468
build/windows/msi/vscodium.xsl
Normal file
468
build/windows/msi/vscodium.xsl
Normal file
@@ -0,0 +1,468 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:wi="http://schemas.microsoft.com/wix/2006/wi">
|
||||
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="@*|node()">
|
||||
<xsl:copy>
|
||||
<xsl:apply-templates select="@*|node()" />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId1ToReplace" match="wi:Component[wi:File[contains(@Source,'VSCodium.exe')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId1ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">VSCODIUM.EXE</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'VSCodium.exe')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">VSCODIUM.EXE</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId2ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\bower.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId2ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">BOWER.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\bower.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">BOWER.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId3ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\c.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId3ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">C.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\c.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">C.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId4ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\config.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId4ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CONFIG.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\config.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CONFIG.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId5ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\cpp.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId5ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CPP.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\cpp.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CPP.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId7ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\csharp.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId7ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CSHARP.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\csharp.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CSHARP.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId8ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\css.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId8ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CSS.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\css.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CSS.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId9ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\default.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId9ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">DEFAULT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\default.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">DEFAULT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId10ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\go.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId10ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">GO.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\go.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">GO.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId11ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\html.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId11ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">HTML.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\html.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">HTML.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId12ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\jade.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId12ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JADE.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\jade.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JADE.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId13ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\java.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId13ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JAVA.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\java.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JAVA.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId14ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\javascript.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId14ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JAVASCRIPT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\javascript.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JAVASCRIPT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId15ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\json.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId15ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JSON.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\json.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JSON.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId16ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\less.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId16ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">LESS.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\less.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">LESS.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId17ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\markdown.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId17ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">MARKDOWN.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\markdown.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">MARKDOWN.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId18ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\php.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId18ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">PHP.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\php.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">PHP.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId19ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\powershell.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId19ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">POWERSHELL.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\powershell.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">POWERSHELL.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId20ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\python.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId20ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">PYTHON.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\python.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">PYTHON.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId21ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\react.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId21ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">REACT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\react.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">REACT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId22ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\ruby.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId22ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">RUBY.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\ruby.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">RUBY.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId23ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\sass.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId23ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">SASS.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\sass.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">SASS.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId24ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\shell.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId24ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">SHELL.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\shell.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">SHELL.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId25ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\sql.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId25ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">SQL.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\sql.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">SQL.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId26ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\typescript.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId26ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">TYPESCRIPT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\typescript.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">TYPESCRIPT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId27ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\vue.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId27ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">VUE.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\vue.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">VUE.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId28ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\xml.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId28ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">XML.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\xml.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">XML.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId29ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\yaml.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId29ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">YAML.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\yaml.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">YAML.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Remove conflicting non-MSI updater -->
|
||||
<xsl:key name="FileToRemove" match="wi:Component[wi:File[contains(@Source,'tools\inno_updater.exe')]]" use="@Id" />
|
||||
<xsl:template match="*[self::wi:Component or self::wi:ComponentRef][key('FileToRemove', @Id)]" />
|
||||
|
||||
<xsl:key name="FileToRemove" match="wi:Component[wi:File[contains(@Source,'tools\vcruntime140.dll')]]" use="@Id" />
|
||||
<xsl:template match="*[self::wi:Component or self::wi:ComponentRef][key('FileToRemove', @Id)]" />
|
||||
</xsl:stylesheet>
|
||||
3
build/windows/rtf/TXT2RTF.zip
Normal file
3
build/windows/rtf/TXT2RTF.zip
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c3eac997fba9d3d5596c503a826fe5d54c87b1cf899a790b6d077e4d196bd5e9
|
||||
size 373978
|
||||
15
build/windows/rtf/make.sh
Normal file
15
build/windows/rtf/make.sh
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
CALLER_DIR=$( pwd )
|
||||
|
||||
cd "$( dirname "${BASH_SOURCE[0]}" )"
|
||||
|
||||
7z x -y TXT2RTF.zip
|
||||
|
||||
LICENSE=$( powershell.exe -Command "[System.IO.Path]::GetFullPath( '../../../vscode/LICENSE.txt' )" )
|
||||
|
||||
"./TXT to RTF Converter.exe" "${LICENSE}"
|
||||
|
||||
cd "${CALLER_DIR}"
|
||||
@@ -5,6 +5,11 @@ set -e
|
||||
if [[ $GITHUB_EVENT_NAME == "pull_request" ]]; then
|
||||
echo "It's a PR"
|
||||
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_DEPLOY="no"
|
||||
elif [[ $GITHUB_EVENT_NAME == "push" ]]; then
|
||||
echo "It's a Push"
|
||||
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_DEPLOY="no"
|
||||
else
|
||||
|
||||
381
check_tags.sh
381
check_tags.sh
@@ -2,132 +2,259 @@
|
||||
|
||||
set -e
|
||||
|
||||
REPOSITORY=${GITHUB_REPOSITORY:-"VSCodium/vscodium"}
|
||||
GITHUB_RESPONSE=$(curl -s -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/repos/$REPOSITORY/releases/tags/$LATEST_MS_TAG)
|
||||
VSCODIUM_ASSETS=$(echo $GITHUB_RESPONSE | jq '.assets')
|
||||
|
||||
# if we just don't have the github token, get out fast
|
||||
if [ "$GITHUB_TOKEN" != "" ]; then
|
||||
if [ "$VSCODIUM_ASSETS" != "null" ]; then
|
||||
if [[ "$OS_NAME" == "osx" ]]; then
|
||||
HAVE_MAC=$(echo $VSCODIUM_ASSETS | jq --arg suffix "darwin-$VSCODE_ARCH-$LATEST_MS_TAG.zip" 'map(.name) | contains([$suffix])')
|
||||
if [[ "$HAVE_MAC" != "true" ]]; then
|
||||
echo "Building on Mac because we have no ZIP"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
elif [[ "$OS_NAME" == "windows" ]]; then
|
||||
if [[ $VSCODE_ARCH == "arm64" ]]; then
|
||||
HAVE_ARM64_SYS=$(echo $VSCODIUM_ASSETS | jq --arg suffix "VSCodiumSetup-$VSCODE_ARCH-$LATEST_MS_TAG.exe" 'map(.name) | contains([$suffix])')
|
||||
HAVE_ARM64_USR=$(echo $VSCODIUM_ASSETS | jq --arg suffix "UserSetup-$VSCODE_ARCH-$LATEST_MS_TAG.exe" 'map(.name) | contains([$suffix])')
|
||||
HAVE_ARM64_ZIP=$(echo $VSCODIUM_ASSETS | jq --arg suffix "win32-$VSCODE_ARCH-$LATEST_MS_TAG.zip" 'map(.name) | contains([$suffix])')
|
||||
if [[ "$HAVE_ARM64_SYS" != "true" ]]; then
|
||||
echo "Building on Windows arm64 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$HAVE_ARM64_USR" != "true" ]]; then
|
||||
echo "Building on Windows arm64 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$HAVE_ARM64_ZIP" != "true" ]]; then
|
||||
echo "Building on Windows arm64 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$SHOULD_BUILD" != "yes" ]]; then
|
||||
echo "Already have all the Windows arm64 builds"
|
||||
fi
|
||||
elif [[ $VSCODE_ARCH == "ia32" ]]; then
|
||||
HAVE_IA32_SYS=$(echo $VSCODIUM_ASSETS | jq --arg suffix "VSCodiumSetup-$VSCODE_ARCH-$LATEST_MS_TAG.exe" 'map(.name) | contains([$suffix])')
|
||||
HAVE_IA32_USR=$(echo $VSCODIUM_ASSETS | jq --arg suffix "UserSetup-$VSCODE_ARCH-$LATEST_MS_TAG.exe" 'map(.name) | contains([$suffix])')
|
||||
HAVE_IA32_ZIP=$(echo $VSCODIUM_ASSETS | jq --arg suffix "win32-$VSCODE_ARCH-$LATEST_MS_TAG.zip" 'map(.name) | contains([$suffix])')
|
||||
if [[ "$HAVE_IA32_SYS" != "true" ]]; then
|
||||
echo "Building on Windows ia32 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$HAVE_IA32_USR" != "true" ]]; then
|
||||
echo "Building on Windows ia32 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$HAVE_IA32_ZIP" != "true" ]]; then
|
||||
echo "Building on Windows ia32 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$SHOULD_BUILD" != "yes" ]]; then
|
||||
echo "Already have all the Windows ia32 builds"
|
||||
fi
|
||||
else # Windows x64
|
||||
HAVE_X64_SYS=$(echo $VSCODIUM_ASSETS | jq --arg suffix "VSCodiumSetup-$VSCODE_ARCH-$LATEST_MS_TAG.exe" 'map(.name) | contains([$suffix])')
|
||||
HAVE_X64_USR=$(echo $VSCODIUM_ASSETS | jq --arg suffix "UserSetup-$VSCODE_ARCH-$LATEST_MS_TAG.exe" 'map(.name) | contains([$suffix])')
|
||||
HAVE_X64_ZIP=$(echo $VSCODIUM_ASSETS | jq --arg suffix "win32-$VSCODE_ARCH-$LATEST_MS_TAG.zip" 'map(.name) | contains([$suffix])')
|
||||
if [[ "$HAVE_X64_SYS" != "true" ]]; then
|
||||
echo "Building on Windows x64 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$HAVE_X64_USR" != "true" ]]; then
|
||||
echo "Building on Windows x64 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$HAVE_X64_ZIP" != "true" ]]; then
|
||||
echo "Building on Windows x64 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$SHOULD_BUILD" != "yes" ]]; then
|
||||
echo "Already have all the Windows x64 builds"
|
||||
fi
|
||||
fi
|
||||
elif [[ "$OS_NAME" == "linux" ]]; then
|
||||
if [[ $VSCODE_ARCH == "arm64" ]]; then
|
||||
HAVE_ARM64_DEB=$(echo $VSCODIUM_ASSETS | jq 'map(.name) | contains(["arm64.deb"])')
|
||||
HAVE_ARM64_TAR=$(echo $VSCODIUM_ASSETS | jq --arg suffix "arm64-$LATEST_MS_TAG.tar.gz" 'map(.name) | contains([$suffix])')
|
||||
if [[ "$HAVE_ARM64_DEB" != "true" ]]; then
|
||||
echo "Building on Linux arm64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$HAVE_ARM64_TAR" != "true" ]]; then
|
||||
echo "Building on Linux arm64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$SHOULD_BUILD" != "yes" ]]; then
|
||||
echo "Already have all the Linux arm64 builds"
|
||||
fi
|
||||
elif [[ $VSCODE_ARCH == "armhf" ]]; then
|
||||
HAVE_ARM_DEB=$(echo $VSCODIUM_ASSETS | jq 'map(.name) | contains(["armhf.deb"])')
|
||||
HAVE_ARM_TAR=$(echo $VSCODIUM_ASSETS | jq --arg suffix "armhf-$LATEST_MS_TAG.tar.gz" 'map(.name) | contains([$suffix])')
|
||||
if [[ "$HAVE_ARM_DEB" != "true" ]]; then
|
||||
echo "Building on Linux arm because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$HAVE_ARM_TAR" != "true" ]]; then
|
||||
echo "Building on Linux arm because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$SHOULD_BUILD" != "yes" ]]; then
|
||||
echo "Already have all the Linux arm builds"
|
||||
fi
|
||||
else # Linux x64
|
||||
HAVE_64_RPM=$(echo $VSCODIUM_ASSETS | jq 'map(.name) | contains(["x86_64.rpm"])')
|
||||
HAVE_64_DEB=$(echo $VSCODIUM_ASSETS | jq 'map(.name) | contains(["amd64.deb"])')
|
||||
HAVE_64_TAR=$(echo $VSCODIUM_ASSETS | jq --arg suffix "x64-$LATEST_MS_TAG.tar.gz" 'map(.name) | contains([$suffix])')
|
||||
if [[ "$HAVE_64_RPM" != "true" ]]; then
|
||||
echo "Building on Linux x64 because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$HAVE_64_DEB" != "true" ]]; then
|
||||
echo "Building on Linux x64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$HAVE_64_TAR" != "true" ]]; then
|
||||
echo "Building on Linux x64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$SHOULD_BUILD" != "yes" ]]; then
|
||||
echo "Already have all the Linux x64 builds"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "Release assets do not exist at all, continuing build"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ -z "${GITHUB_TOKEN}" ]]; then
|
||||
echo "Will not build because no GITHUB_TOKEN defined"
|
||||
exit
|
||||
fi
|
||||
|
||||
echo "SHOULD_BUILD=$SHOULD_BUILD" >> $GITHUB_ENV
|
||||
REPOSITORY="${GITHUB_REPOSITORY:-"VSCodium/vscodium"}"
|
||||
GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" https://api.github.com/repos/${REPOSITORY}/releases/tags/${MS_TAG})
|
||||
VSCODIUM_ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
|
||||
|
||||
contains() {
|
||||
# add " to match the end of a string so any hashs won't be matched by mistake
|
||||
echo "${VSCODIUM_ASSETS}" | grep "$1\""
|
||||
}
|
||||
|
||||
if [ "${VSCODIUM_ASSETS}" != "null" ]; then
|
||||
# macos
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
if [[ -z $( contains "darwin-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
|
||||
echo "Building on MacOS because we have no ZIP"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains ".${VSCODE_ARCH}.${MS_TAG}.dmg" ) ]]; then
|
||||
echo "Building on MacOS because we have no DMG"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DMG="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the MacOS builds"
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
|
||||
# windows-arm64
|
||||
if [[ ${VSCODE_ARCH} == "arm64" ]]; then
|
||||
if [[ -z $( contains "VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "win32-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows arm64 builds"
|
||||
fi
|
||||
|
||||
# windows-ia32
|
||||
elif [[ ${VSCODE_ARCH} == "ia32" ]]; then
|
||||
if [[ -z $( contains "VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "win32-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-${MS_TAG}.msi" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-updates-disabled-${MS_TAG}.msi" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no updates-disabled msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI_NOUP="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows ia32 builds"
|
||||
fi
|
||||
|
||||
# windows-x64
|
||||
else
|
||||
if [[ -z $( contains "VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "win32-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-${MS_TAG}.msi" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-updates-disabled-${MS_TAG}.msi" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no updates-disabled msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI_NOUP="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows x64 builds"
|
||||
fi
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "linux" ]]; then
|
||||
|
||||
# linux-arm64
|
||||
if [[ ${VSCODE_ARCH} == "arm64" ]]; then
|
||||
if [[ -z $( contains "arm64.deb" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "aarch64.rpm" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "arm64-${MS_TAG}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux arm64 builds"
|
||||
fi
|
||||
|
||||
# linux-armhf
|
||||
elif [[ ${VSCODE_ARCH} == "armhf" ]]; then
|
||||
if [[ -z $( contains "armhf.deb" ) ]]; then
|
||||
echo "Building on Linux arm because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "armv7hl.rpm" ) ]]; then
|
||||
echo "Building on Linux arm because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "armhf-${MS_TAG}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux arm builds"
|
||||
fi
|
||||
|
||||
# linux-x64
|
||||
else
|
||||
if [[ -z $( contains "amd64.deb" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "x86_64.rpm" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "x64-${MS_TAG}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "x86_64.AppImage" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no AppImage"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux x64 builds"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "Release assets do not exist at all, continuing build"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
|
||||
echo "SHOULD_BUILD=${SHOULD_BUILD}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_APPIMAGE=${SHOULD_BUILD_APPIMAGE}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_DEB=${SHOULD_BUILD_DEB}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_DMG=${SHOULD_BUILD_DMG}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_EXE_SYS=${SHOULD_BUILD_EXE_SYS}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_EXE_USR=${SHOULD_BUILD_EXE_USR}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_MSI=${SHOULD_BUILD_MSI}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_MSI_NOUP=${SHOULD_BUILD_MSI_NOUP}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_RPM=${SHOULD_BUILD_RPM}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_TAR=${SHOULD_BUILD_TAR}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_ZIP=${SHOULD_BUILD_ZIP}" >> "${GITHUB_ENV}"
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
- node 14
|
||||
- yarn
|
||||
- jq
|
||||
- git
|
||||
|
||||
### <a id="dependencies-linux"></a>Linux
|
||||
|
||||
@@ -30,15 +31,16 @@
|
||||
### <a id="dependencies-windows"></a>Windows
|
||||
|
||||
- powershell
|
||||
- git
|
||||
- sed
|
||||
- 7z
|
||||
- [WiX Toolset](http://wixtoolset.org/releases/)
|
||||
|
||||
## <a id="build-scripts"></a>Build Scripts
|
||||
|
||||
Each platform has its build helper script in the directory `build`.
|
||||
|
||||
- Linux: `./build/build_linux.sh`
|
||||
- MacOS: `./build/build_macos_.sh`
|
||||
- MacOS: `./build/build_macos.sh`
|
||||
- Windows: `powershell -ExecutionPolicy ByPass -File .\build\build_windows.ps1`
|
||||
|
||||
## <a id="build-docker"></a>Build in Docker
|
||||
|
||||
46
get_repo.sh
46
get_repo.sh
@@ -1,26 +1,44 @@
|
||||
#!/bin/bash
|
||||
|
||||
mkdir -p vscode
|
||||
cd vscode
|
||||
|
||||
git init -q
|
||||
git remote add origin https://github.com/Microsoft/vscode.git
|
||||
|
||||
# figure out latest tag by calling MS update API
|
||||
if [ "$INSIDER" == "1" ]; then
|
||||
UPDATE_INFO=$(curl https://update.code.visualstudio.com/api/update/darwin/insider/lol)
|
||||
else
|
||||
export MS_COMMIT=$(echo $UPDATE_INFO | jq -r '.version')
|
||||
export MS_TAG=$(echo $UPDATE_INFO | jq -r '.name')
|
||||
elif [[ -z "${MS_TAG}" ]]; then
|
||||
UPDATE_INFO=$(curl https://update.code.visualstudio.com/api/update/darwin/stable/lol)
|
||||
fi
|
||||
export LATEST_MS_COMMIT=$(echo $UPDATE_INFO | jq -r '.version')
|
||||
export LATEST_MS_TAG=$(echo $UPDATE_INFO | jq -r '.name')
|
||||
echo "Got the latest MS tag: ${LATEST_MS_TAG} version: ${LATEST_MS_COMMIT}"
|
||||
|
||||
if [ "$INSIDER" == "1" ]; then
|
||||
mkdir -p vscode; cd vscode
|
||||
git init ; git remote add origin https://github.com/Microsoft/vscode.git
|
||||
git fetch --depth 1 origin $LATEST_MS_COMMIT; git checkout FETCH_HEAD
|
||||
cd ..
|
||||
export MS_COMMIT=$(echo $UPDATE_INFO | jq -r '.version')
|
||||
export MS_TAG=$(echo $UPDATE_INFO | jq -r '.name')
|
||||
else
|
||||
git clone https://github.com/Microsoft/vscode.git --branch $LATEST_MS_TAG --depth 1
|
||||
reference=$( git ls-remote --tags | grep -x ".*refs\/tags\/${MS_TAG}" | head -1 )
|
||||
|
||||
if [[ -z "${reference}" ]]; then
|
||||
echo "The following tag can't be found: ${MS_TAG}"
|
||||
exit 1
|
||||
elif [[ "${reference}" =~ ^([[:alnum:]]+)[[:space:]]+refs\/tags\/([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then
|
||||
export MS_COMMIT="${BASH_REMATCH[1]}"
|
||||
export MS_TAG="${BASH_REMATCH[2]}"
|
||||
else
|
||||
echo "The following reference can't be parsed: ${reference}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Got the MS tag: ${MS_TAG} version: ${MS_COMMIT}"
|
||||
|
||||
git fetch --depth 1 origin $MS_COMMIT
|
||||
git checkout FETCH_HEAD
|
||||
|
||||
cd ..
|
||||
|
||||
# for GH actions
|
||||
if [[ $GITHUB_ENV ]]; then
|
||||
echo "LATEST_MS_COMMIT=$LATEST_MS_COMMIT" >> $GITHUB_ENV
|
||||
echo "LATEST_MS_TAG=$LATEST_MS_TAG" >> $GITHUB_ENV
|
||||
echo "MS_TAG=$MS_TAG" >> $GITHUB_ENV
|
||||
echo "MS_COMMIT=$MS_COMMIT" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
@@ -134,6 +134,14 @@ build_win32() {
|
||||
convert -size 138x140 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-250.bmp"
|
||||
composite -size 116x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-250.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-250.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}build/windows/msi/resources/wix-banner.bmp" ]; then
|
||||
convert -size 493x58 xc:white "${SRC_PREFIX}build/windows/msi/resources/wix-banner.bmp"
|
||||
composite -geometry +438+6 \( icons/codium_only.svg -resize 50x50 \) "${SRC_PREFIX}build/windows/msi/resources/wix-banner.bmp" "${SRC_PREFIX}build/windows/msi/resources/wix-banner.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp" ]; then
|
||||
convert -size 493x312 xc:white "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp"
|
||||
composite -geometry +22+152 \( icons/codium_only.svg -resize 120x90 \) "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp" "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$0" == "$BASH_SOURCE" ];
|
||||
|
||||
15
install_gh.sh
Executable file
15
install_gh.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
GH_ARCH="amd64"
|
||||
|
||||
VERSION=`curl "https://api.github.com/repos/cli/cli/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/' | cut -c2-`
|
||||
|
||||
curl -sSL "https://github.com/cli/cli/releases/download/v${VERSION}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
|
||||
|
||||
tar xf "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
|
||||
|
||||
cp "gh_${VERSION}_linux_${GH_ARCH}/bin/gh" /usr/local/bin/
|
||||
|
||||
gh --version
|
||||
@@ -1,28 +1,28 @@
|
||||
diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts
|
||||
index 129b8de..fadb99a 100644
|
||||
index 78d6060..dfa9de2 100644
|
||||
--- a/src/vs/base/common/product.ts
|
||||
+++ b/src/vs/base/common/product.ts
|
||||
@@ -68,6 +68,7 @@ export interface IProductConfiguration {
|
||||
@@ -69,6 +69,7 @@ export interface IProductConfiguration {
|
||||
|
||||
readonly extensionsGallery?: {
|
||||
readonly serviceUrl: string;
|
||||
+ readonly cacheUrl?: string;
|
||||
readonly itemUrl: string;
|
||||
readonly resourceUrlTemplate: string;
|
||||
readonly controlUrl: string;
|
||||
readonly extensionsGallery?: {
|
||||
readonly serviceUrl: string;
|
||||
+ readonly cacheUrl?: string;
|
||||
readonly itemUrl: string;
|
||||
readonly resourceUrlTemplate: string;
|
||||
readonly controlUrl: string;
|
||||
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
|
||||
index d79c8a3..8b4153f 100644
|
||||
index 09dfc64..fec0cfa 100644
|
||||
--- a/src/vs/platform/product/common/product.ts
|
||||
+++ b/src/vs/platform/product/common/product.ts
|
||||
@@ -4,11 +4,12 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { FileAccess } from 'vs/base/common/network';
|
||||
-import { isWeb, globals } from 'vs/base/common/platform';
|
||||
+import { isWeb, isWindows, globals } from 'vs/base/common/platform';
|
||||
-import { globals } from 'vs/base/common/platform';
|
||||
+import { globals, isWindows } from 'vs/base/common/platform';
|
||||
import { env } from 'vs/base/common/process';
|
||||
import { dirname, joinPath } from 'vs/base/common/resources';
|
||||
import { IProductConfiguration } from 'vs/base/common/product';
|
||||
import { dirname, joinPath } from 'vs/base/common/resources';
|
||||
import { ISandboxConfiguration } from 'vs/base/parts/sandbox/common/sandboxTypes';
|
||||
+import { getUserDataPath } from 'vs/platform/environment/node/userDataPath';
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/src/main.js b/src/main.js
|
||||
index f91f7b7..0ec4b6f 100644
|
||||
--- a/src/main.js
|
||||
+++ b/src/main.js
|
||||
@@ -174,7 +174,7 @@ function configureCommandlineSwitchesSync(cliArgs) {
|
||||
// Read argv config
|
||||
const argvConfig = readArgvConfigSync();
|
||||
|
||||
- let browserCodeLoadingStrategy = typeof codeCachePath === 'string' ? 'bypassHeatCheck' : 'none';
|
||||
+ let browserCodeLoadingStrategy = undefined;
|
||||
|
||||
Object.keys(argvConfig).forEach(argvKey => {
|
||||
const argvValue = argvConfig[argvKey];
|
||||
48
patches/report-issue.patch
Normal file
48
patches/report-issue.patch
Normal file
@@ -0,0 +1,48 @@
|
||||
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterMain.ts b/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
|
||||
index fcd4485..8d97e5a 100644
|
||||
--- a/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
|
||||
+++ b/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
|
||||
@@ -682,7 +682,7 @@ export class IssueReporter extends Disposable {
|
||||
|
||||
sourceSelect.innerText = '';
|
||||
sourceSelect.append(this.makeOption('', localize('selectSource', "Select source"), true));
|
||||
- sourceSelect.append(this.makeOption('vscode', localize('vscode', "Visual Studio Code"), false));
|
||||
+ sourceSelect.append(this.makeOption('vscode', localize('vscode', "VSCodium"), false));
|
||||
sourceSelect.append(this.makeOption('extension', localize('extension', "An extension"), false));
|
||||
if (this.configuration.product.reportMarketplaceIssueUrl) {
|
||||
sourceSelect.append(this.makeOption('marketplace', localize('marketplace', "Extensions marketplace"), false));
|
||||
diff --git a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
|
||||
index 0c5855b..654f9a4 100644
|
||||
--- a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
|
||||
+++ b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
|
||||
@@ -144,7 +144,7 @@ class ReportExtensionSlowAction extends Action {
|
||||
- Extension Name: \`${this.extension.name}\`
|
||||
- Extension Version: \`${this.extension.version}\`
|
||||
- OS Version: \`${osVersion}\`
|
||||
-- VS Code version: \`${this._productService.version}\`\n\n${message}`);
|
||||
+- VSCodium version: \`${this._productService.version}\`\n\n${message}`);
|
||||
|
||||
const url = `${this.repoInfo.base}/${this.repoInfo.owner}/${this.repoInfo.repo}/issues/new/?body=${body}&title=${title}`;
|
||||
this._openerService.open(URI.parse(url));
|
||||
diff --git a/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts b/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts
|
||||
index f1755db..e77be21 100644
|
||||
--- a/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts
|
||||
+++ b/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts
|
||||
@@ -14,7 +14,7 @@ import { ExtensionType, IExtensionDescription } from 'vs/platform/extensions/com
|
||||
import { IOpenerService } from 'vs/platform/opener/common/opener';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
|
||||
-const builtinExtensionIssueUrl = 'https://github.com/microsoft/vscode';
|
||||
+const builtinExtensionIssueUrl = 'https://github.com/VSCodium/vscodium';
|
||||
|
||||
export class ReportExtensionIssueAction extends Action {
|
||||
|
||||
@@ -76,7 +76,7 @@ export class ReportExtensionIssueAction extends Action {
|
||||
- Extension Name: \`${extension.description.name}\`
|
||||
- Extension Version: \`${extension.description.version}\`
|
||||
- OS Version: \`${osVersion}\`
|
||||
-- VS Code version: \`${this.productService.version}\`\n\n${message}`
|
||||
+- VSCodium version: \`${this.productService.version}\`\n\n${message}`
|
||||
);
|
||||
|
||||
return `${baseUrl}${queryStringPrefix}body=${body}&title=${encodeURIComponent(title)}`;
|
||||
260
patches/use-github-pat.patch
Normal file
260
patches/use-github-pat.patch
Normal file
@@ -0,0 +1,260 @@
|
||||
diff --git a/extensions/github-authentication/src/githubServer.ts b/extensions/github-authentication/src/githubServer.ts
|
||||
index 8424f5b..5bac245 100644
|
||||
--- a/extensions/github-authentication/src/githubServer.ts
|
||||
+++ b/extensions/github-authentication/src/githubServer.ts
|
||||
@@ -6,8 +6,6 @@
|
||||
import * as nls from 'vscode-nls';
|
||||
import * as vscode from 'vscode';
|
||||
import fetch, { Response } from 'node-fetch';
|
||||
-import { v4 as uuid } from 'uuid';
|
||||
-import { PromiseAdapter, promiseFromEvent } from './common/utils';
|
||||
import { ExperimentationTelemetry } from './experimentationService';
|
||||
import { AuthProviderType } from './github';
|
||||
import { Log } from './common/logger';
|
||||
@@ -15,8 +13,6 @@ import { Log } from './common/logger';
|
||||
const localize = nls.loadMessageBundle();
|
||||
|
||||
const NETWORK_ERROR = 'network error';
|
||||
-const AUTH_RELAY_SERVER = 'vscode-auth.github.com';
|
||||
-// const AUTH_RELAY_STAGING_SERVER = 'client-auth-staging-14a768b.herokuapp.com';
|
||||
|
||||
class UriEventHandler extends vscode.EventEmitter<vscode.Uri> implements vscode.UriHandler {
|
||||
constructor(private readonly Logger: Log) {
|
||||
@@ -29,14 +25,6 @@ class UriEventHandler extends vscode.EventEmitter<vscode.Uri> implements vscode.
|
||||
}
|
||||
}
|
||||
|
||||
-function parseQuery(uri: vscode.Uri) {
|
||||
- return uri.query.split('&').reduce((prev: any, current) => {
|
||||
- const queryString = current.split('=');
|
||||
- prev[queryString[0]] = queryString[1];
|
||||
- return prev;
|
||||
- }, {});
|
||||
-}
|
||||
-
|
||||
export interface IGitHubServer extends vscode.Disposable {
|
||||
login(scopes: string): Promise<string>;
|
||||
getUserInfo(token: string): Promise<{ id: string, accountName: string }>;
|
||||
@@ -96,11 +84,7 @@ async function getUserInfo(token: string, serverUri: vscode.Uri, logger: Log): P
|
||||
export class GitHubServer implements IGitHubServer {
|
||||
friendlyName = 'GitHub';
|
||||
type = AuthProviderType.github;
|
||||
- private _statusBarItem: vscode.StatusBarItem | undefined;
|
||||
- private _onDidManuallyProvideToken = new vscode.EventEmitter<string | undefined>();
|
||||
|
||||
- private _pendingStates = new Map<string, string[]>();
|
||||
- private _codeExchangePromises = new Map<string, { promise: Promise<string>, cancel: vscode.EventEmitter<void> }>();
|
||||
private _statusBarCommandId = `${this.type}.provide-manually`;
|
||||
private _disposable: vscode.Disposable;
|
||||
private _uriHandler = new UriEventHandler(this._logger);
|
||||
@@ -115,150 +99,35 @@ export class GitHubServer implements IGitHubServer {
|
||||
this._disposable.dispose();
|
||||
}
|
||||
|
||||
- private isTestEnvironment(url: vscode.Uri): boolean {
|
||||
- return /\.azurewebsites\.net$/.test(url.authority) || url.authority.startsWith('localhost:');
|
||||
- }
|
||||
-
|
||||
- // TODO@joaomoreno TODO@TylerLeonhardt
|
||||
- private async isNoCorsEnvironment(): Promise<boolean> {
|
||||
- const uri = await vscode.env.asExternalUri(vscode.Uri.parse(`${vscode.env.uriScheme}://vscode.github-authentication/dummy`));
|
||||
- return (uri.scheme === 'https' && /^(vscode|github)\./.test(uri.authority)) || (uri.scheme === 'http' && /^localhost/.test(uri.authority));
|
||||
- }
|
||||
-
|
||||
public async login(scopes: string): Promise<string> {
|
||||
this._logger.info(`Logging in for the following scopes: ${scopes}`);
|
||||
|
||||
- // TODO@joaomoreno TODO@TylerLeonhardt
|
||||
- const nocors = await this.isNoCorsEnvironment();
|
||||
- const callbackUri = await vscode.env.asExternalUri(vscode.Uri.parse(`${vscode.env.uriScheme}://vscode.github-authentication/did-authenticate${nocors ? '?nocors=true' : ''}`));
|
||||
-
|
||||
- if (this.isTestEnvironment(callbackUri)) {
|
||||
- const token = await vscode.window.showInputBox({ prompt: 'GitHub Personal Access Token', ignoreFocusOut: true });
|
||||
- if (!token) { throw new Error('Sign in failed: No token provided'); }
|
||||
-
|
||||
- const tokenScopes = await getScopes(token, this.getServerUri('/'), this._logger); // Example: ['repo', 'user']
|
||||
- const scopesList = scopes.split(' '); // Example: 'read:user repo user:email'
|
||||
- if (!scopesList.every(scope => {
|
||||
- const included = tokenScopes.includes(scope);
|
||||
- if (included || !scope.includes(':')) {
|
||||
- return included;
|
||||
- }
|
||||
+ const token = await vscode.window.showInputBox({ prompt: 'GitHub Personal Access Token', ignoreFocusOut: true });
|
||||
+ if (!token) { throw new Error('Sign in failed: No token provided'); }
|
||||
|
||||
- return scope.split(':').some(splitScopes => {
|
||||
- return tokenScopes.includes(splitScopes);
|
||||
- });
|
||||
- })) {
|
||||
- throw new Error(`The provided token is does not match the requested scopes: ${scopes}`);
|
||||
+ const tokenScopes = await getScopes(token, this.getServerUri('/'), this._logger); // Example: ['repo', 'user']
|
||||
+ const scopesList = scopes.split(' '); // Example: 'read:user repo user:email'
|
||||
+ if (!scopesList.every(scope => {
|
||||
+ const included = tokenScopes.includes(scope);
|
||||
+ if (included || !scope.includes(':')) {
|
||||
+ return included;
|
||||
}
|
||||
|
||||
- return token;
|
||||
- }
|
||||
-
|
||||
- this.updateStatusBarItem(true);
|
||||
-
|
||||
- const state = uuid();
|
||||
- const existingStates = this._pendingStates.get(scopes) || [];
|
||||
- this._pendingStates.set(scopes, [...existingStates, state]);
|
||||
-
|
||||
- const uri = vscode.Uri.parse(`https://${AUTH_RELAY_SERVER}/authorize/?callbackUri=${encodeURIComponent(callbackUri.toString())}&scope=${scopes}&state=${state}&responseType=code&authServer=https://github.com${nocors ? '&nocors=true' : ''}`);
|
||||
- await vscode.env.openExternal(uri);
|
||||
-
|
||||
- // Register a single listener for the URI callback, in case the user starts the login process multiple times
|
||||
- // before completing it.
|
||||
- let codeExchangePromise = this._codeExchangePromises.get(scopes);
|
||||
- if (!codeExchangePromise) {
|
||||
- codeExchangePromise = promiseFromEvent(this._uriHandler.event, this.exchangeCodeForToken(scopes));
|
||||
- this._codeExchangePromises.set(scopes, codeExchangePromise);
|
||||
+ return scope.split(':').some(splitScopes => {
|
||||
+ return tokenScopes.includes(splitScopes);
|
||||
+ });
|
||||
+ })) {
|
||||
+ throw new Error(`The provided token is does not match the requested scopes: ${scopes}`);
|
||||
}
|
||||
|
||||
- return Promise.race([
|
||||
- codeExchangePromise.promise,
|
||||
- promiseFromEvent<string | undefined, string>(this._onDidManuallyProvideToken.event, (token: string | undefined, resolve, reject): void => {
|
||||
- if (!token) {
|
||||
- reject('Cancelled');
|
||||
- } else {
|
||||
- resolve(token);
|
||||
- }
|
||||
- }).promise,
|
||||
- new Promise<string>((_, reject) => setTimeout(() => reject('Cancelled'), 60000))
|
||||
- ]).finally(() => {
|
||||
- this._pendingStates.delete(scopes);
|
||||
- codeExchangePromise?.cancel.fire();
|
||||
- this._codeExchangePromises.delete(scopes);
|
||||
- this.updateStatusBarItem(false);
|
||||
- });
|
||||
+ return token;
|
||||
}
|
||||
|
||||
- private exchangeCodeForToken: (scopes: string) => PromiseAdapter<vscode.Uri, string> =
|
||||
- (scopes) => async (uri, resolve, reject) => {
|
||||
- const query = parseQuery(uri);
|
||||
- const code = query.code;
|
||||
-
|
||||
- const acceptedStates = this._pendingStates.get(scopes) || [];
|
||||
- if (!acceptedStates.includes(query.state)) {
|
||||
- // A common scenario of this happening is if you:
|
||||
- // 1. Trigger a sign in with one set of scopes
|
||||
- // 2. Before finishing 1, you trigger a sign in with a different set of scopes
|
||||
- // In this scenario we should just return and wait for the next UriHandler event
|
||||
- // to run as we are probably still waiting on the user to hit 'Continue'
|
||||
- this._logger.info('State not found in accepted state. Skipping this execution...');
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- const url = `https://${AUTH_RELAY_SERVER}/token?code=${code}&state=${query.state}`;
|
||||
- this._logger.info('Exchanging code for token...');
|
||||
-
|
||||
- // TODO@joao: remove
|
||||
- if (query.nocors) {
|
||||
- try {
|
||||
- const json: any = await vscode.commands.executeCommand('_workbench.fetchJSON', url, 'POST');
|
||||
- this._logger.info('Token exchange success!');
|
||||
- resolve(json.access_token);
|
||||
- } catch (err) {
|
||||
- reject(err);
|
||||
- }
|
||||
- } else {
|
||||
- try {
|
||||
- const result = await fetch(url, {
|
||||
- method: 'POST',
|
||||
- headers: {
|
||||
- Accept: 'application/json'
|
||||
- }
|
||||
- });
|
||||
-
|
||||
- if (result.ok) {
|
||||
- const json = await result.json();
|
||||
- this._logger.info('Token exchange success!');
|
||||
- resolve(json.access_token);
|
||||
- } else {
|
||||
- reject(result.statusText);
|
||||
- }
|
||||
- } catch (ex) {
|
||||
- reject(ex);
|
||||
- }
|
||||
- }
|
||||
- };
|
||||
-
|
||||
private getServerUri(path: string = '') {
|
||||
const apiUri = vscode.Uri.parse('https://api.github.com');
|
||||
return vscode.Uri.parse(`${apiUri.scheme}://${apiUri.authority}${path}`);
|
||||
}
|
||||
|
||||
- private updateStatusBarItem(isStart?: boolean) {
|
||||
- if (isStart && !this._statusBarItem) {
|
||||
- this._statusBarItem = vscode.window.createStatusBarItem('status.git.signIn', vscode.StatusBarAlignment.Left);
|
||||
- this._statusBarItem.name = localize('status.git.signIn.name', "GitHub Sign-in");
|
||||
- this._statusBarItem.text = localize('signingIn', "$(mark-github) Signing in to github.com...");
|
||||
- this._statusBarItem.command = this._statusBarCommandId;
|
||||
- this._statusBarItem.show();
|
||||
- }
|
||||
-
|
||||
- if (!isStart && this._statusBarItem) {
|
||||
- this._statusBarItem.dispose();
|
||||
- this._statusBarItem = undefined;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
private async manuallyProvideUri() {
|
||||
const uri = await vscode.window.showInputBox({
|
||||
prompt: 'Uri',
|
||||
@@ -290,44 +159,7 @@ export class GitHubServer implements IGitHubServer {
|
||||
return getUserInfo(token, this.getServerUri('/user'), this._logger);
|
||||
}
|
||||
|
||||
- public async sendAdditionalTelemetryInfo(token: string): Promise<void> {
|
||||
- if (!vscode.env.isTelemetryEnabled) {
|
||||
- return;
|
||||
- }
|
||||
- const nocors = await this.isNoCorsEnvironment();
|
||||
-
|
||||
- if (nocors) {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- try {
|
||||
- const result = await fetch('https://education.github.com/api/user', {
|
||||
- headers: {
|
||||
- Authorization: `token ${token}`,
|
||||
- 'faculty-check-preview': 'true',
|
||||
- 'User-Agent': 'Visual-Studio-Code'
|
||||
- }
|
||||
- });
|
||||
-
|
||||
- if (result.ok) {
|
||||
- const json: { student: boolean, faculty: boolean } = await result.json();
|
||||
-
|
||||
- /* __GDPR__
|
||||
- "session" : {
|
||||
- "isEdu": { "classification": "NonIdentifiableDemographicInfo", "purpose": "FeatureInsight" }
|
||||
- }
|
||||
- */
|
||||
- this._telemetryReporter.sendTelemetryEvent('session', {
|
||||
- isEdu: json.student
|
||||
- ? 'student'
|
||||
- : json.faculty
|
||||
- ? 'faculty'
|
||||
- : 'none'
|
||||
- });
|
||||
- }
|
||||
- } catch (e) {
|
||||
- // No-op
|
||||
- }
|
||||
+ public async sendAdditionalTelemetryInfo(_token: string): Promise<void> {
|
||||
}
|
||||
|
||||
public async checkEnterpriseVersion(token: string): Promise<void> {
|
||||
92
prepare_artifacts.sh
Executable file
92
prepare_artifacts.sh
Executable file
@@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
npm install -g checksum
|
||||
|
||||
sum_file() {
|
||||
if [[ -f "$1" ]]; then
|
||||
echo "Calcuating checksum for $1"
|
||||
checksum -a sha256 "$1" > "$1".sha256
|
||||
checksum "$1" > "$1".sha1
|
||||
fi
|
||||
}
|
||||
|
||||
mkdir artifacts
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
echo "Building and moving ZIP"
|
||||
cd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
zip -r -X -y ../artifacts/VSCodium-darwin-${VSCODE_ARCH}-${MS_TAG}.zip ./*.app
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_DMG}" != "no" ]]; then
|
||||
echo "Building and moving DMG"
|
||||
pushd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
npx create-dmg VSCodium.app ..
|
||||
mv "../VSCodium ${MS_TAG}.dmg" "../artifacts/VSCodium.${VSCODE_ARCH}.${MS_TAG}.dmg"
|
||||
popd
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
echo "Moving ZIP"
|
||||
mv vscode\\.build\\win32-${VSCODE_ARCH}\\archive\\VSCode-win32-${VSCODE_ARCH}.zip artifacts\\VSCodium-win32-${VSCODE_ARCH}-${MS_TAG}.zip
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
|
||||
echo "Moving System EXE"
|
||||
mv vscode\\.build\\win32-${VSCODE_ARCH}\\system-setup\\VSCodeSetup.exe artifacts\\VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
|
||||
echo "Moving User EXE"
|
||||
mv vscode\\.build\\win32-${VSCODE_ARCH}\\user-setup\\VSCodeSetup.exe artifacts\\VSCodiumUserSetup-${VSCODE_ARCH}-${MS_TAG}.exe
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
|
||||
echo "Moving MSI"
|
||||
mv build\\windows\\msi\\releasedir\\VSCodium-${VSCODE_ARCH}-${MS_TAG}.msi artifacts/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
|
||||
echo "Moving MSI with disabled updates"
|
||||
mv build\\windows\\msi\\releasedir\\VSCodium-${VSCODE_ARCH}-updates-disabled-${MS_TAG}.msi artifacts/
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if [[ "${SHOULD_BUILD_TAR}" != "no" ]]; then
|
||||
echo "Building and moving TAR"
|
||||
cd VSCode-linux-${VSCODE_ARCH}
|
||||
tar czf ../artifacts/VSCodium-linux-${VSCODE_ARCH}-${MS_TAG}.tar.gz .
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_DEB}" != "no" ]]; then
|
||||
echo "Moving DEB"
|
||||
mv vscode/.build/linux/deb/*/deb/*.deb artifacts/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
|
||||
echo "Moving RPM"
|
||||
mv vscode/.build/linux/rpm/*/*.rpm artifacts/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
echo "Moving AppImage"
|
||||
mv build/linux/appimage/out/*.AppImage* artifacts/
|
||||
fi
|
||||
fi
|
||||
|
||||
cd artifacts
|
||||
|
||||
for FILE in *
|
||||
do
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
sum_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
@@ -3,15 +3,20 @@
|
||||
set -e
|
||||
|
||||
cp -rp src/* vscode/
|
||||
cp -f LICENSE vscode/LICENSE.txt
|
||||
|
||||
cd vscode || exit
|
||||
|
||||
../update_settings.sh
|
||||
|
||||
# apply patches
|
||||
{ set +x; } 2>/dev/null
|
||||
|
||||
for file in ../patches/*.patch; do
|
||||
if [ -f "$file" ]; then
|
||||
echo applying patch: $file;
|
||||
if ! git apply --ignore-whitespace $file; then
|
||||
git apply --ignore-whitespace "$file"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo failed to apply patch $file 1>&2
|
||||
fi
|
||||
fi
|
||||
@@ -20,12 +25,15 @@ done
|
||||
for file in ../patches/user/*.patch; do
|
||||
if [ -f "$file" ]; then
|
||||
echo applying user patch: $file;
|
||||
if ! git apply --ignore-whitespace $file; then
|
||||
git apply --ignore-whitespace "$file"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo failed to apply patch $file 1>&2
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
set -x
|
||||
|
||||
if [[ "$OS_NAME" == "osx" ]]; then
|
||||
CHILD_CONCURRENCY=1 yarn --frozen-lockfile --ignore-optional
|
||||
npm_config_argv='{"original":["--ignore-optional"]}' yarn postinstall
|
||||
@@ -65,8 +73,10 @@ win32x64UserAppId='setpath (["win32x64UserAppId"]; "{{2E1F05D1-C245-4562-81EE-28
|
||||
urlProtocol='setpath(["urlProtocol"]; "vscodium")'
|
||||
extensionAllowedProposedApi='setpath(["extensionAllowedProposedApi"]; getpath(["extensionAllowedProposedApi"]) + ["ms-vscode.cpptools", "ms-azuretools.vscode-docker", "visualstudioexptteam.vscodeintellicode", "GitHub.codespaces", "GitHub.vscode-pull-request-github-insiders", "GitHub.vscode-pull-request-github", "Microsoft.vscode-nmake-tools", "ms-ai-tools.notebook-renderers", "ms-dotnettools.dotnet-interactive-vscode", "ms-python.gather", "ms-python.python", "ms-toolsai.jupyter", "ms-toolsai.vscode-ai", "ms-toolsai.vscode-ai-remote", "ms-vscode-remote.remote-containers-nightly", "ms-vscode-remote.remote-containers", "ms-vscode-remote.remote-ssh-edit-nightly", "ms-vscode-remote.remote-ssh-edit", "ms-vscode-remote.remote-ssh-nightly", "ms-vscode-remote.remote-ssh", "ms-vscode-remote.remote-wsl-nightly", "ms-vscode-remote.remote-wsl", "ms-vscode-remote.remote-wsl-recommender", "ms-vscode-remote.vscode-remote-extensionpack-nightly", "ms-vscode-remote.vscode-remote-extensionpack", "ms-vscode.azure-account", "ms-vscode.azure-sphere-tools-ui", "ms-vscode.azure-sphere-tools", "ms-vscode.github-browser", "ms-vscode.github-richnav", "ms-vscode.js-debug-nightly", "ms-vscode.js-debug", "ms-vscode.lsif-browser", "ms-vscode.vscode-js-profile-flame", "ms-vscode.vscode-js-profile-table", "ms-vscode.vscode-selfhost-test-provider", "ms-vsliveshare.cloudenv-explorer", "ms-vsliveshare.cloudenv", "ms-vsliveshare.vsliveshare", "ms-vsonline.vsonline", "dbaeumer.vscode-eslint"])'
|
||||
serverDataFolderName='setpath(["serverDataFolderName"]; ".vscode-server-oss")'
|
||||
reportIssueUrl='setpath(["reportIssueUrl"]; "https://github.com/VSCodium/vscodium/issues/new/choose")'
|
||||
licenseUrl='setpath(["licenseUrl"]; "https://github.com/VSCodium/vscodium/blob/master/LICENSE")'
|
||||
|
||||
product_json_changes="${checksumFailMoreInfoUrl} | ${tipsAndTricksUrl} | ${twitterUrl} | ${requestFeatureUrl} | ${documentationUrl} | ${introductoryVideosUrl} | ${extensionAllowedBadgeProviders} | ${updateUrl} | ${releaseNotesUrl} | ${keyboardShortcutsUrlMac} | ${keyboardShortcutsUrlLinux} | ${keyboardShortcutsUrlWin} | ${quality} | ${extensionsGallery} | ${linkProtectionTrustedDomains} | ${nameShort} | ${nameLong} | ${linuxIconName} | ${applicationName} | ${win32MutexName} | ${win32DirName} | ${win32NameVersion} | ${win32RegValueName} | ${win32AppUserModelId} | ${win32ShellNameShort} | ${win32x64UserAppId} | ${urlProtocol} | ${extensionAllowedProposedApi} | ${serverDataFolderName}"
|
||||
product_json_changes="${checksumFailMoreInfoUrl} | ${tipsAndTricksUrl} | ${twitterUrl} | ${requestFeatureUrl} | ${documentationUrl} | ${introductoryVideosUrl} | ${extensionAllowedBadgeProviders} | ${updateUrl} | ${releaseNotesUrl} | ${keyboardShortcutsUrlMac} | ${keyboardShortcutsUrlLinux} | ${keyboardShortcutsUrlWin} | ${quality} | ${extensionsGallery} | ${linkProtectionTrustedDomains} | ${nameShort} | ${nameLong} | ${linuxIconName} | ${applicationName} | ${win32MutexName} | ${win32DirName} | ${win32NameVersion} | ${win32RegValueName} | ${win32AppUserModelId} | ${win32ShellNameShort} | ${win32x64UserAppId} | ${urlProtocol} | ${extensionAllowedProposedApi} | ${serverDataFolderName} | ${reportIssueUrl} | ${licenseUrl}"
|
||||
cat product.json.bak | jq "${product_json_changes}" > product.json
|
||||
cat product.json
|
||||
|
||||
|
||||
27
release.sh
Executable file
27
release.sh
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ -z "${GH_CLI_TOKEN}" ]]; then
|
||||
echo "Will not release because no GH_CLI_TOKEN defined"
|
||||
exit
|
||||
fi
|
||||
|
||||
echo "${GH_CLI_TOKEN}" | gh auth login --with-token
|
||||
|
||||
if [[ $( gh release view "${MS_TAG}" 2>&1 ) =~ "release not found" ]]; then
|
||||
echo "Creating release '${MS_TAG}'"
|
||||
gh release create "${MS_TAG}"
|
||||
fi
|
||||
|
||||
cd artifacts
|
||||
|
||||
for FILE in *
|
||||
do
|
||||
if [[ -f "${FILE}" ]] && [[ "${FILE}" != *.sha1 ]] && [[ "${FILE}" != *.sha256 ]]; then
|
||||
echo "Uploading '${FILE}'"
|
||||
gh release upload "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
30
sum.sh
30
sum.sh
@@ -1,30 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
npm install -g checksum
|
||||
|
||||
sum_file () {
|
||||
if [[ -f "$1" ]]; then
|
||||
checksum -a sha256 "$1" > "$1".sha256
|
||||
checksum "$1" > "$1".sha1
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||
if [[ "$OS_NAME" == "osx" ]]; then
|
||||
sum_file VSCodium-darwin-*.zip
|
||||
sum_file VSCodium*.dmg
|
||||
elif [[ "$OS_NAME" == "windows" ]]; then
|
||||
sum_file VSCodiumSetup-*.exe
|
||||
sum_file VSCodiumUserSetup-*.exe
|
||||
sum_file VSCodium-win32-*.zip
|
||||
else # linux
|
||||
cp out/*.AppImage* .
|
||||
cp vscode/.build/linux/deb/*/deb/*.deb .
|
||||
cp vscode/.build/linux/rpm/*/*.rpm .
|
||||
|
||||
sum_file VSCodium-*.AppImage
|
||||
sum_file VSCodium-linux*.tar.gz
|
||||
sum_file *.deb
|
||||
sum_file *.rpm
|
||||
fi
|
||||
fi
|
||||
@@ -1,10 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ "$SHOULD_BUILD" != "yes" ]]; then
|
||||
set -e
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Will not update version JSON because we did not build"
|
||||
exit
|
||||
fi
|
||||
|
||||
if [[ -z "${GITHUB_TOKEN}" ]]; then
|
||||
echo "Will not update version JSON because no GITHUB_TOKEN defined"
|
||||
exit
|
||||
fi
|
||||
|
||||
# {
|
||||
# "url": "https://az764295.vo.msecnd.net/stable/51b0b28134d51361cf996d2f0a1c698247aeabd8/VSCode-darwin-stable.zip",
|
||||
# "name": "1.33.1",
|
||||
@@ -16,45 +23,48 @@ fi
|
||||
# }
|
||||
|
||||
# `url` is URL_BASE + filename of asset e.g.
|
||||
# darwin: https://github.com/VSCodium/vscodium/releases/download/${LATEST_MS_TAG}/VSCodium-darwin-${LATEST_MS_TAG}.zip
|
||||
# `name` is $LATEST_MS_TAG
|
||||
# `version` is $LATEST_MS_COMMIT
|
||||
# `productVersion` is $LATEST_MS_TAG
|
||||
# darwin: https://github.com/VSCodium/vscodium/releases/download/${MS_TAG}/VSCodium-darwin-${MS_TAG}.zip
|
||||
# `name` is $MS_TAG
|
||||
# `version` is $MS_COMMIT
|
||||
# `productVersion` is $MS_TAG
|
||||
# `hash` in <filename>.sha1
|
||||
# `timestamp` is $(node -e 'console.log(Date.now())')
|
||||
# `sha256hash` in <filename>.sha256
|
||||
|
||||
URL_BASE=https://github.com/VSCodium/vscodium/releases/download/${LATEST_MS_TAG}
|
||||
URL_BASE="https://github.com/VSCodium/vscodium/releases/download/${MS_TAG}"
|
||||
|
||||
# to make testing on forks easier
|
||||
VERSIONS_REPO="${GITHUB_USERNAME}/versions"
|
||||
echo "Versions repo:" $VERSIONS_REPO
|
||||
echo "Versions repo: ${VERSIONS_REPO}"
|
||||
|
||||
# generateJson <assetName>
|
||||
# e.g. generateJson VSCodium-darwin-1.33.0.zip
|
||||
generateJson() {
|
||||
local assetName=$1
|
||||
JSON_DATA="{}"
|
||||
|
||||
# generate parts
|
||||
local url=${URL_BASE}/${assetName}
|
||||
local name=$LATEST_MS_TAG
|
||||
local version=$LATEST_MS_COMMIT
|
||||
local productVersion=$LATEST_MS_TAG
|
||||
local url="${URL_BASE}/${ASSET_NAME}"
|
||||
local name="${MS_TAG}"
|
||||
local version="${MS_COMMIT}"
|
||||
local productVersion="${MS_TAG}"
|
||||
local timestamp=$(node -e 'console.log(Date.now())')
|
||||
|
||||
local sha1hash=$(cat ${assetName}.sha1 | awk '{ print $1 }')
|
||||
local sha256hash=$(cat ${assetName}.sha256 | awk '{ print $1 }')
|
||||
if [[ ! -f "artifacts/${ASSET_NAME}" ]]; then
|
||||
echo "Downloading artifact '${ASSET_NAME}'"
|
||||
gh release download "${MS_TAG}" --dir "artifacts" --pattern "${ASSET_NAME}*"
|
||||
fi
|
||||
|
||||
local sha1hash=$(cat "artifacts/${ASSET_NAME}.sha1" | awk '{ print $1 }')
|
||||
local sha256hash=$(cat "artifacts/${ASSET_NAME}.sha256" | awk '{ print $1 }')
|
||||
|
||||
# check that nothing is blank (blank indicates something awry with build)
|
||||
for key in url name version productVersion sha1hash timestamp sha256hash; do
|
||||
if [[ "${!key}" == "" ]]; then
|
||||
echo "Missing data for version update; exiting..."
|
||||
if [[ -z "${key}" ]]; then
|
||||
echo "Variable '${key}' is empty; exiting..."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# generate json
|
||||
local json=$(jq \
|
||||
JSON_DATA=$(jq \
|
||||
--arg url "${url}" \
|
||||
--arg name "${name}" \
|
||||
--arg version "${version}" \
|
||||
@@ -64,76 +74,86 @@ generateJson() {
|
||||
--arg sha256hash "${sha256hash}" \
|
||||
'. | .url=$url | .name=$name | .version=$version | .productVersion=$productVersion | .hash=$hash | .timestamp=$timestamp | .sha256hash=$sha256hash' \
|
||||
<<<'{}')
|
||||
|
||||
echo "$json"
|
||||
}
|
||||
|
||||
updateLatestVersion() {
|
||||
echo "Generating ${VERSION_PATH}/latest.json"
|
||||
|
||||
generateJson
|
||||
|
||||
cd versions
|
||||
|
||||
local versionPath=$1
|
||||
local json=$2
|
||||
|
||||
# create/update the latest.json file in the correct location
|
||||
mkdir -p $versionPath
|
||||
echo $json > $versionPath/latest.json
|
||||
mkdir -p "${VERSION_PATH}"
|
||||
echo "${JSON_DATA}" > "${VERSION_PATH}/latest.json"
|
||||
|
||||
cd ..
|
||||
}
|
||||
|
||||
# init versions repo for later commiting + pushing the json file to it
|
||||
# thank you https://www.vinaygopinath.me/blog/tech/commit-to-master-branch-on-github-using-travis-ci/
|
||||
git clone https://github.com/${VERSIONS_REPO}.git
|
||||
git clone "https://github.com/${VERSIONS_REPO}.git"
|
||||
cd versions
|
||||
git config user.email "vscodium-ci@not-real.com"
|
||||
git config user.name "VSCodium CI"
|
||||
git remote rm origin
|
||||
git remote add origin https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@github.com/${VERSIONS_REPO}.git > /dev/null 2>&1
|
||||
git remote add origin "https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@github.com/${VERSIONS_REPO}.git" > /dev/null 2>&1
|
||||
cd ..
|
||||
|
||||
if [[ "$OS_NAME" == "osx" ]]; then
|
||||
# zip, sha1, and sha256 files are all at top level dir
|
||||
ASSET_NAME=VSCodium-darwin-${VSCODE_ARCH}-${LATEST_MS_TAG}.zip
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
ASSET_NAME=VSCodium-darwin-${VSCODE_ARCH}-${MS_TAG}.zip
|
||||
VERSION_PATH="darwin/${VSCODE_ARCH}"
|
||||
JSON="$(generateJson ${ASSET_NAME})"
|
||||
updateLatestVersion "$VERSION_PATH" "$JSON"
|
||||
elif [[ "$OS_NAME" == "windows" ]]; then
|
||||
updateLatestVersion
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
# system installer
|
||||
ASSET_NAME=VSCodiumSetup-${VSCODE_ARCH}-${LATEST_MS_TAG}.exe
|
||||
ASSET_NAME=VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe
|
||||
VERSION_PATH="win32/${VSCODE_ARCH}/system"
|
||||
JSON="$(generateJson ${ASSET_NAME})"
|
||||
updateLatestVersion "$VERSION_PATH" "$JSON"
|
||||
updateLatestVersion
|
||||
|
||||
# user installer
|
||||
ASSET_NAME=VSCodiumUserSetup-${VSCODE_ARCH}-${LATEST_MS_TAG}.exe
|
||||
ASSET_NAME=VSCodiumUserSetup-${VSCODE_ARCH}-${MS_TAG}.exe
|
||||
VERSION_PATH="win32/${VSCODE_ARCH}/user"
|
||||
JSON="$(generateJson ${ASSET_NAME})"
|
||||
updateLatestVersion "$VERSION_PATH" "$JSON"
|
||||
updateLatestVersion
|
||||
|
||||
# windows archive
|
||||
ASSET_NAME=VSCodium-win32-${VSCODE_ARCH}-${LATEST_MS_TAG}.zip
|
||||
ASSET_NAME=VSCodium-win32-${VSCODE_ARCH}-${MS_TAG}.zip
|
||||
VERSION_PATH="win32/${VSCODE_ARCH}/archive"
|
||||
JSON="$(generateJson ${ASSET_NAME})"
|
||||
updateLatestVersion "$VERSION_PATH" "$JSON"
|
||||
updateLatestVersion
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
# msi
|
||||
ASSET_NAME=VSCodium-${VSCODE_ARCH}-${MS_TAG}.msi
|
||||
VERSION_PATH="win32/${VSCODE_ARCH}/msi"
|
||||
updateLatestVersion
|
||||
|
||||
# updates-disabled msi
|
||||
ASSET_NAME=VSCodium-${VSCODE_ARCH}-updates-disabled-${MS_TAG}.msi
|
||||
VERSION_PATH="win32/${VSCODE_ARCH}/msi-updates-disabled"
|
||||
updateLatestVersion
|
||||
fi
|
||||
else # linux
|
||||
# update service links to tar.gz file
|
||||
# see https://update.code.visualstudio.com/api/update/linux-x64/stable/VERSION
|
||||
# as examples
|
||||
ASSET_NAME=VSCodium-linux-${VSCODE_ARCH}-${LATEST_MS_TAG}.tar.gz
|
||||
ASSET_NAME=VSCodium-linux-${VSCODE_ARCH}-${MS_TAG}.tar.gz
|
||||
VERSION_PATH="linux/${VSCODE_ARCH}"
|
||||
JSON="$(generateJson ${ASSET_NAME})"
|
||||
updateLatestVersion "$VERSION_PATH" "$JSON"
|
||||
updateLatestVersion
|
||||
fi
|
||||
|
||||
cd versions
|
||||
|
||||
git pull origin master # in case another build just pushed
|
||||
git add .
|
||||
dateAndMonth=`date "+%D %T"`
|
||||
git commit -m "CI update: $dateAndMonth (Build $GITHUB_RUN_NUMBER)"
|
||||
if ! git push origin master --quiet; then
|
||||
git pull origin master
|
||||
git push origin master --quiet
|
||||
|
||||
CHANGES=$( git status --porcelain )
|
||||
|
||||
if [[ ! -z "${CHANGES}" ]]; then
|
||||
dateAndMonth=$( date "+%D %T" )
|
||||
git commit -m "CI update: ${dateAndMonth} (Build ${GITHUB_RUN_NUMBER})"
|
||||
if ! git push origin master --quiet; then
|
||||
git pull origin master
|
||||
git push origin master --quiet
|
||||
fi
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
Reference in New Issue
Block a user