mirror of
https://github.com/VSCodium/vscodium.git
synced 2026-04-12 00:37:19 +10:00
Compare commits
45 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a5b2066f76 | ||
|
|
376c501f95 | ||
|
|
ae7942f5e5 | ||
|
|
eebde70091 | ||
|
|
a7e8154e98 | ||
|
|
69f1e08df3 | ||
|
|
13c905e2d8 | ||
|
|
3687110918 | ||
|
|
c72968db2d | ||
|
|
ec6568188f | ||
|
|
0608a0e812 | ||
|
|
69d8ba45eb | ||
|
|
c904b620f1 | ||
|
|
5e481cb178 | ||
|
|
39d4b9c134 | ||
|
|
f6363a3665 | ||
|
|
4ac72d1b71 | ||
|
|
1fe19328cc | ||
|
|
d774292e9f | ||
|
|
7911c1a336 | ||
|
|
273bb0fae2 | ||
|
|
4f99cbf064 | ||
|
|
3290066771 | ||
|
|
5b2cfc70d3 | ||
|
|
0d98ab9664 | ||
|
|
84a944e39f | ||
|
|
207c9cd04b | ||
|
|
11db2cfa65 | ||
|
|
a12f6d7dce | ||
|
|
70f523fbfe | ||
|
|
a47dcab06a | ||
|
|
2f6d19354f | ||
|
|
2cdcb23c1a | ||
|
|
e37fe1cc3b | ||
|
|
de66a50908 | ||
|
|
6aa7f0a180 | ||
|
|
d6fc93a4b5 | ||
|
|
f70c614be3 | ||
|
|
2ea06de9f8 | ||
|
|
64e0cd0c7f | ||
|
|
33bc3b2f8b | ||
|
|
7452656dd9 | ||
|
|
6a307fcc6d | ||
|
|
79a2dd7d51 | ||
|
|
b6c2a40d0b |
14
.travis.yml
14
.travis.yml
@@ -6,9 +6,10 @@ matrix:
|
||||
- os: linux
|
||||
sudo: required
|
||||
env: BUILDARCH=ia32
|
||||
- os: linux
|
||||
sudo: required
|
||||
env: BUILDARCH=arm64
|
||||
# arm64 builds don't work yet
|
||||
# - os: linux
|
||||
# sudo: required
|
||||
# env: BUILDARCH=arm64
|
||||
- os: osx
|
||||
|
||||
language: node_js
|
||||
@@ -26,7 +27,9 @@ script:
|
||||
- ./trigger-azure.sh
|
||||
|
||||
before_deploy:
|
||||
- ./sign_mac_app.sh
|
||||
- ./create_zip.sh
|
||||
- ./sum.sh
|
||||
|
||||
deploy:
|
||||
provider: releases
|
||||
@@ -36,6 +39,7 @@ deploy:
|
||||
api_key: $GITHUB_TOKEN
|
||||
file_glob: true
|
||||
file:
|
||||
- ./*.sha256
|
||||
- ./*.zip
|
||||
- ./*.tar.gz
|
||||
- vscode/.build/linux/deb/i386/deb/*.deb
|
||||
@@ -43,6 +47,10 @@ deploy:
|
||||
- vscode/.build/linux/deb/amd64/deb/*.deb
|
||||
- vscode/.build/linux/rpm/x86_64/*.rpm
|
||||
- vscode/.build/linux/deb/arm64/deb/*.deb
|
||||
- vscode/out/*.AppImage
|
||||
on:
|
||||
all_branches: true
|
||||
condition: $SHOULD_BUILD = yes
|
||||
|
||||
after_deploy:
|
||||
- ./update_version.sh
|
||||
|
||||
26
DOCS.md
26
DOCS.md
@@ -1,20 +1,25 @@
|
||||
# More Info
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Getting all the Telemetry Out](#disable-telemetry)
|
||||
- [Extensions + Marketplace](#extensions-marketplace)
|
||||
- [Migrating from Visual Studio Code to VSCodium](#migrating)
|
||||
- [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)
|
||||
- [Gentoo overlay/ebuild](#gentoo-overlay)
|
||||
|
||||
## <a id="disable-telemetry"></a>Getting all the Telemetry Out
|
||||
|
||||
Even though we do not pass the telemetry build flags (and go out of our way to cripple the baked-in telemetry), Microsoft will still track usage by default.
|
||||
|
||||
We do however set the default `telemetry.enableCrashReporter` and `telemetry.enableTelemetry` values to false. You can see those by viewing your VSCodium settings.json and searching for `telemetry`.
|
||||
|
||||
The instructions [here](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting) and [here](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-crash-reporting) help with explaining and toggling telemetry.
|
||||
The instructions [here](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting) and [here](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-crash-reporting) help with explaining and toggling telemetry.
|
||||
|
||||
It is also highly recommended that you review all the settings that "use online services" by following [these instructions](https://code.visualstudio.com/docs/supporting/faq#_managing-online-services). The `@tag:usesOnlineServices` filter on the settings page will show that by default:
|
||||
|
||||
- Extensions auto check for updates and auto install updates
|
||||
- Searches within the app are sent to an online service for "natural language processing"
|
||||
- Updates to the app are fetched in the background
|
||||
@@ -26,34 +31,46 @@ __Please note that some extensions send telemetry data to Microsoft as well. We
|
||||
_(For example the C# extension `ms-vscode.csharp` sends tracking data to Microsoft.)_
|
||||
|
||||
## <a id="extensions-marketplace"></a>Extensions + Marketplace
|
||||
|
||||
Until something more open comes around, we use the Microsoft Marketplace/Extensions in the `product.json` file. Those links are licensed under MIT as per [the comments on this issue.](https://github.com/Microsoft/vscode/issues/31168#issuecomment-317319063)
|
||||
|
||||
If you use the [code-settings-sync](https://github.com/shanalikhan/code-settings-sync) extension, you may have [an issue](https://github.com/VSCodium/vscodium/issues/72) installing extensions (via the plugin). Refer to [this workaround](https://github.com/shanalikhan/code-settings-sync/issues/668#issuecomment-462065341) to get it working properly.
|
||||
|
||||
### Proprietary Debugging Tools
|
||||
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the offical Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
|
||||
|
||||
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the offical Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
|
||||
|
||||
A workaround exists to get debugging working in C# projects, by using Samsung's opensource [netcoredbg](https://github.com/Samsung/netcoredbg) package. See [this comment](https://github.com/VSCodium/vscodium/issues/82#issue-409806641) for instructions on how to set that up.
|
||||
|
||||
## <a id="migrating"></a>Migrating from Visual Studio Code to VSCodium
|
||||
|
||||
VSCodium (and a freshly cloned copy of vscode built from source) stores its extension files in `~/.vscode-oss`. So if you currently have Visual Studio Code installed, your extensions won't automatically populate. You can reinstall your extensions from the Marketplace in VSCodium, or copy the `extensions` from `~/.vscode/extensions` to `~/.vscode-oss/extensions`.
|
||||
|
||||
Visual Studio Code stores its `keybindings.json` and `settings.json` file in the these locations:
|
||||
|
||||
- __Windows__: `%APPDATA%\Code\User`
|
||||
- __macOS__: `$HOME/Library/Application Support/Code/User`
|
||||
- __Linux__: `$HOME/.config/Code/User`
|
||||
|
||||
You can copy these files to the VSCodium user settings folder:
|
||||
|
||||
- __Windows__: `%APPDATA%\VSCodium\User`
|
||||
- __macOS__: `$HOME/Library/Application Support/VSCodium/User`
|
||||
- __Linux__: `$HOME/.config/VSCodium/User`
|
||||
|
||||
To copy your settings manually:
|
||||
|
||||
- In Visual Studio Code, go to Settings (Command+, if on a Mac)
|
||||
- Click the three dots `...` and choose 'Open settings.json'
|
||||
- Copy the contents of settings.json into the same place in VSCodium
|
||||
|
||||
## <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. For Windows and Linux the instructions can be followed as written. For Mac OS, portable mode is enabled by the existence of a specially named folder. For Visual Studio Code that folder name is `code-portable-data`. For VSCodium, that folder name is `vscodium-portable-data`.
|
||||
|
||||
So to enable portable mode for VSCodium on Mac OS, follow the instructions outlined in the link above, but create a folder named `vscodium-portable-data` instead of `code-portable-data`.
|
||||
|
||||
## <a id="press-and-hold"></a>How do I press and hold a key and have it repeat in VSCodium (Mac)?
|
||||
|
||||
This is a common question for Visual Studio Code and the procedure is slightly different in VSCodium because the `defaults` path is different.
|
||||
|
||||
```bash
|
||||
@@ -61,6 +78,7 @@ $ defaults write com.visualstudio.code.oss ApplePressAndHoldEnabled -bool false
|
||||
```
|
||||
|
||||
## <a id="terminal-support"></a>How do I open VSCodium from the terminal?
|
||||
|
||||
- Go to the command palette (View | Command Palette...)
|
||||
- Choose `Shell command: Install 'vscodium' command in PATH`.
|
||||
|
||||
@@ -74,3 +92,7 @@ This allows you to open files or directories in VSCodium directly from your term
|
||||
```
|
||||
|
||||
Feel free to alias this command to something easier to type in your shell profile (e.g. `alias code=vscodium`).
|
||||
|
||||
## <a id="gentoo-overlay"></a>Gentoo ebuild/overlay
|
||||
|
||||
There is an external Gentoo overlay with a working ebuild to install VSCodium, provided by [@wolviecb](https://github.com/wolviecb/). The overlay can be found [here](https://github.com/wolviecb/overlay).
|
||||
|
||||
23
README.md
23
README.md
@@ -15,11 +15,15 @@
|
||||
|
||||
</div>
|
||||
|
||||
**This is not a fork. This is a repository of scripts to automatically build Microsoft's `vscode` repository into freely-licensed binaries with a community-driven default configuration.**
|
||||
|
||||
## Table of Contents
|
||||
- [Download/Install](#download-install)
|
||||
- [Install with Brew](#install-with-brew)
|
||||
- [Install with Chocolatey](#install-with-choco)
|
||||
- [Install with Scoop](#install-with-scoop)
|
||||
- [Install with Package Manager](#install-with-package-manager)
|
||||
- [Install on Arch Linux](#install-on-arch-linux)
|
||||
- [Flatpak Option](#flatpak)
|
||||
- [Why Does This Exist](#why)
|
||||
- [More Info](#more-info)
|
||||
@@ -44,14 +48,24 @@ If you use Windows and have [Chocolatey](https://chocolatey.org) installed (than
|
||||
choco install vscodium
|
||||
```
|
||||
|
||||
#### <a id="install-with-scoop"></a>Install with Scoop (Windows)
|
||||
If you use Windows and have [Scoop](https://scoop.sh) installed:
|
||||
```bash
|
||||
scoop bucket add extras
|
||||
scoop install vscodium
|
||||
```
|
||||
|
||||
#### <a id="install-with-package-manager"></a>Install with Package Manager (Linux)
|
||||
You can always install using the downloads (deb, rpm, tar) on the [releases page](https://github.com/VSCodium/vscodium/releases), but you can also install using your favorite package manager and get automatic updates. [@paulcarroty](https://github.com/paulcarroty) has set up a repository with instructions [here](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo). Any issues installing VSCodium using your package manager should be directed to that repository's issue tracker.
|
||||
|
||||
#### <a id="install-on-arch-linux"></a>Install on Arch Linux
|
||||
VSCodium is available in [AUR](https://wiki.archlinux.org/index.php/Arch_User_Repository) as package [vscodium-bin](https://aur.archlinux.org/packages/vscodium-bin/), maintained by [@plague-doctor](https://github.com/plague-doctor).
|
||||
|
||||
#### <a id="flatpak"></a>Flatpak Option (Linux)
|
||||
VSCodium is not available as a Flatpak app, but [@amtlib-dot-dll](https://github.com/amtlib-dot-dll) has done significant work to package up the open source build of Visual Studio Code without telemetry, very similarly to VSCodium. That package is available [here](https://flathub.org/apps/details/com.visualstudio.code.oss) and the build repo is [here](https://github.com/flathub/com.visualstudio.code.oss).
|
||||
|
||||
## <a id="why"></a>Why Does This Exist
|
||||
This repository contains a build file to generate FLOSS release binaries of Microsoft's VSCode.
|
||||
This repository contains build files to generate free release binaries of Microsoft's VSCode. When we speak of "free software", we're talking about freedom, not price.
|
||||
|
||||
Microsoft's downloads of Visual Studio Code are licensed under [this not-FLOSS license](https://code.visualstudio.com/license) and contain telemetry/tracking. According to [this comment](https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005) from a Visual Studio Code maintainer:
|
||||
|
||||
@@ -79,12 +93,15 @@ Please note that some Visual Studio Code extensions have licenses that restrict
|
||||
|
||||
## <a id="supported-os"></a>Supported OS
|
||||
- [x] OSX x64 (zipped app file)
|
||||
- [x] Linux x64 (`.deb`, `.rpm`, and `.tar.gz` files)
|
||||
- [x] Linux x64 (`.deb`, `.rpm`, `AppImage`, and `.tar.gz` files)
|
||||
- [x] Linux x86 (`.deb`, `.rpm`, and `.tar.gz` files)
|
||||
- [x] Windows x86
|
||||
- [x] Windows x64
|
||||
- [x] Windows x86
|
||||
|
||||
The ARM architecture is not currently supported but is being worked on.
|
||||
|
||||
## <a id="donate"></a>Donate
|
||||
If you would like to support the development of VSCodium, feel free to send BTC to `3PgjE95yzBDTrSPxPiqoxSgZFuKPPAix1N`.
|
||||
|
||||
## <a id="license"></a>License
|
||||
MIT
|
||||
|
||||
35
VSCodium-AppImage-Recipe.yml
Normal file
35
VSCodium-AppImage-Recipe.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
# Based on
|
||||
# https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml
|
||||
#
|
||||
# On a Debian/Ubuntu system:
|
||||
# wget -c "https://github.com/AppImage/pkg2appimage/raw/master/pkg2appimage"
|
||||
# bash -ex pkg2appimage VSCodium
|
||||
|
||||
app: VSCodium
|
||||
|
||||
ingredients:
|
||||
packages:
|
||||
- code
|
||||
- libgconf2-4
|
||||
dist: trusty
|
||||
sources:
|
||||
- deb http://archive.ubuntu.com/ubuntu/ trusty main universe
|
||||
script:
|
||||
- pwd
|
||||
- cp ../.build/linux/deb/amd64/deb/*.deb .
|
||||
- ls vscodium_*.deb | cut -d _ -f 2 > VERSION
|
||||
|
||||
script:
|
||||
- sed -i -e 's|/usr/share/vscodium/||g' usr/share/applications/vscodium.desktop
|
||||
- sed -i -e 's|com.visualstudio.code.oss|vscodium|g' usr/share/applications/vscodium.desktop
|
||||
- cp usr/share/applications/vscodium.desktop .
|
||||
- cp usr/share/pixmaps/com.visualstudio.code.oss.png vscodium.png
|
||||
- convert vscodium.png -resize 512x512 usr/share/icons/hicolor/512x512/apps/vscodium.png
|
||||
- convert vscodium.png -resize 256x256 usr/share/icons/hicolor/256x256/apps/vscodium.png
|
||||
- convert vscodium.png -resize 128x128 usr/share/icons/hicolor/128x128/apps/vscodium.png
|
||||
- convert vscodium.png -resize 64x64 usr/share/icons/hicolor/64x64/apps/vscodium.png
|
||||
- convert vscodium.png -resize 48x48 usr/share/icons/hicolor/48x48/apps/vscodium.png
|
||||
- convert vscodium.png -resize 32x32 usr/share/icons/hicolor/32x32/apps/vscodium.png
|
||||
- convert vscodium.png -resize 24x24 usr/share/icons/hicolor/24x24/apps/vscodium.png
|
||||
- convert vscodium.png -resize 22x22 usr/share/icons/hicolor/22x22/apps/vscodium.png
|
||||
- ( cd usr/bin/ ; ln -s ../share/vscodium/vscodium . )
|
||||
26
build.sh
26
build.sh
@@ -9,7 +9,28 @@ if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||
|
||||
yarn
|
||||
mv product.json product.json.bak
|
||||
cat product.json.bak | jq 'setpath(["extensionsGallery"]; {"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery", "cacheUrl": "https://vscode.blob.core.windows.net/gallery/index", "itemUrl": "https://marketplace.visualstudio.com/items"}) | setpath(["nameShort"]; "VSCodium") | setpath(["nameLong"]; "VSCodium") | setpath(["applicationName"]; "vscodium") | setpath(["win32MutexName"]; "vscodium") | setpath(["win32DirName"]; "VSCodium") | setpath(["win32NameVersion"]; "VSCodium") | setpath(["win32RegValueName"]; "VSCodium") | setpath(["win32AppUserModelId"]; "Microsoft.VSCodium") | setpath(["win32ShellNameShort"]; "V&SCodium") | setpath(["urlProtocol"]; "vscodium")' > product.json
|
||||
|
||||
# set fields in product.json
|
||||
quality='setpath(["quality"]; "stable")'
|
||||
extensionsGallery='setpath(["extensionsGallery"]; {"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery", "cacheUrl": "https://vscode.blob.core.windows.net/gallery/index", "itemUrl": "https://marketplace.visualstudio.com/items"})'
|
||||
nameShort='setpath(["nameShort"]; "VSCodium")'
|
||||
nameLong='setpath(["nameLong"]; "VSCodium")'
|
||||
applicationName='setpath(["applicationName"]; "vscodium")'
|
||||
win32MutexName='setpath(["win32MutexName"]; "vscodium")'
|
||||
win32DirName='setpath(["win32DirName"]; "VSCodium")'
|
||||
win32NameVersion='setpath(["win32NameVersion"]; "VSCodium")'
|
||||
win32RegValueName='setpath(["win32RegValueName"]; "VSCodium")'
|
||||
win32AppUserModelId='setpath(["win32AppUserModelId"]; "Microsoft.VSCodium")'
|
||||
win32ShellNameShort='setpath(["win32ShellNameShort"]; "V&SCodium")'
|
||||
win32x64UserAppId='setpath (["win32x64UserAppId"]; "{{2E1F05D1-C245-4562-81EE-28188DB6FD17}")'
|
||||
urlProtocol='setpath(["urlProtocol"]; "vscodium")'
|
||||
extensionAllowedProposedApi='setpath(["extensionAllowedProposedApi"]; getpath(["extensionAllowedProposedApi"]) + ["ms-vsliveshare.vsliveshare"])'
|
||||
keyboardShortcutsUrlMac='setpath(["keyboardShortcutsUrlMac"]; "https://go.microsoft.com/fwlink/?linkid=832143")'
|
||||
keyboardShortcutsUrlLinux='setpath(["keyboardShortcutsUrlLinux"]; "https://go.microsoft.com/fwlink/?linkid=832144")'
|
||||
keyboardShortcutsUrlWin='setpath(["keyboardShortcutsUrlWin"]; "https://go.microsoft.com/fwlink/?linkid=832145")'
|
||||
|
||||
product_json_changes="${keyboardShortcutsUrlMac} | ${keyboardShortcutsUrlLinux} | ${keyboardShortcutsUrlWin} | ${quality} | ${extensionsGallery} | ${nameShort} | ${nameLong} | ${applicationName} | ${win32MutexName} | ${win32DirName} | ${win32NameVersion} | ${win32RegValueName} | ${win32AppUserModelId} | ${win32ShellNameShort} | ${win32x64UserAppId} | ${urlProtocol} | ${extensionAllowedProposedApi}"
|
||||
cat product.json.bak | jq "${product_json_changes}" > product.json
|
||||
cat product.json
|
||||
../undo_telemetry.sh
|
||||
|
||||
@@ -36,7 +57,8 @@ if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||
npm run gulp -- "vscode-linux-${BUILDARCH}-min"
|
||||
npm run gulp -- "vscode-linux-${BUILDARCH}-build-deb"
|
||||
npm run gulp -- "vscode-linux-${BUILDARCH}-build-rpm"
|
||||
fi
|
||||
. ../create_appimage.sh
|
||||
fi
|
||||
|
||||
cd ..
|
||||
fi
|
||||
|
||||
@@ -10,7 +10,7 @@ echo "VSCodium assets: ${VSCODIUM_ASSETS}"
|
||||
if [ "$GITHUB_TOKEN" != "" ]; then
|
||||
if [ "$VSCODIUM_ASSETS" != "null" ]; then
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
HAVE_MAC=$(echo $VSCODIUM_ASSETS | jq 'map(.name) | contains(["zip"])')
|
||||
HAVE_MAC=$(echo $VSCODIUM_ASSETS | jq --arg suffix "darwin-$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"
|
||||
|
||||
10
create_appimage.sh
Executable file
10
create_appimage.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
if [[ "$BUILDARCH" == "x64" ]]; then
|
||||
# install a dep needed for this process
|
||||
sudo apt-get install desktop-file-utils
|
||||
|
||||
# download pkg2appimage from github
|
||||
curl -LO "https://github.com/AppImage/pkg2appimage/raw/master/pkg2appimage"
|
||||
|
||||
bash -e pkg2appimage ../VSCodium-AppImage-Recipe.yml
|
||||
fi
|
||||
@@ -3,7 +3,7 @@
|
||||
if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
cd VSCode-darwin
|
||||
zip -r -X -y ../VSCodium-darwin-${LATEST_MS_TAG}.zip ./*
|
||||
zip -r -X -y ../VSCodium-darwin-${LATEST_MS_TAG}.zip ./*.app
|
||||
elif [[ "$BUILDARCH" == "ia32" ]]; then
|
||||
cd VSCode-linux-ia32
|
||||
tar czf ../VSCodium-linux-ia32-${LATEST_MS_TAG}.tar.gz .
|
||||
|
||||
@@ -8,7 +8,8 @@ else
|
||||
cd vscode
|
||||
fi
|
||||
|
||||
export LATEST_MS_TAG=$(git describe --tags `git rev-list --tags --max-count=1`)
|
||||
export LATEST_MS_COMMIT=$(git rev-list --tags --max-count=1)
|
||||
export LATEST_MS_TAG=$(git describe --tags ${LATEST_MS_COMMIT})
|
||||
echo "Got the latest MS tag: ${LATEST_MS_TAG}"
|
||||
git checkout $LATEST_MS_TAG
|
||||
cd ..
|
||||
|
||||
23
sign_mac_app.sh
Executable file
23
sign_mac_app.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
# thanks to https://www.jviotti.com/2016/03/16/how-to-code-sign-os-x-electron-apps-in-travis-ci.html
|
||||
# for the helpful instructions
|
||||
if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
if [ -d "VSCode-darwin" ]; then # just in case the build failed
|
||||
cd VSCode-darwin
|
||||
export CERTIFICATE_P12=VSCodium.p12
|
||||
echo $CERTIFICATE_OSX_P12 | base64 --decode > $CERTIFICATE_P12
|
||||
export KEYCHAIN=build.keychain
|
||||
security create-keychain -p mysecretpassword $KEYCHAIN
|
||||
security default-keychain -s $KEYCHAIN
|
||||
security unlock-keychain -p mysecretpassword $KEYCHAIN
|
||||
security import $CERTIFICATE_P12 -k $KEYCHAIN -P $CERTIFICATE_OSX_PASSWORD -T /usr/bin/codesign
|
||||
|
||||
# https://docs.travis-ci.com/user/common-build-problems/
|
||||
security set-key-partition-list -S apple-tool:,apple: -s -k mysecretpassword $KEYCHAIN
|
||||
|
||||
codesign --deep --force --verbose --sign "$CERTIFICATE_OSX_ID" VSCodium.app
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 9.3 KiB |
27
sum.sh
Executable file
27
sum.sh
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
sum_file () {
|
||||
if [[ -f "$1" ]]; then
|
||||
shasum -a 256 $1 > $1.sha256
|
||||
shasum $1 > $1.sha1
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
sum_file VSCodium-darwin-*.zip
|
||||
else # linux
|
||||
if [[ "$BUILDARCH" == "x64" ]]; then
|
||||
deb_arch=amd64
|
||||
rpm_arch=x86_64
|
||||
elif [[ "$BUILDARCH" == "ia32" ]]; then
|
||||
deb_arch=i386
|
||||
rpm_arch=i386
|
||||
fi
|
||||
sum_file VSCodium-linux*.tar.gz
|
||||
sum_file vscode/.build/linux/deb/${deb_arch}/deb/*.deb
|
||||
sum_file vscode/.build/linux/rpm/${rpm_arch}/*.rpm
|
||||
cp vscode/.build/linux/deb/${deb_arch}/deb/*.sha256 .
|
||||
cp vscode/.build/linux/rpm/${rpm_arch}/*.sha256 .
|
||||
fi
|
||||
fi
|
||||
@@ -1,9 +1,49 @@
|
||||
REPLACEMENT="s/'default': true/'default': false/"
|
||||
DEFAULT_TRUE="'default': true"
|
||||
DEFAULT_FALSE="'default': false"
|
||||
TELEMETRY_ENABLE="'telemetry.enableTelemetry':"
|
||||
TELEMETRY_CRASH_REPORTER="'telemetry.enableCrashReporter':"
|
||||
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
sed -i '' -E "$REPLACEMENT" src/vs/platform/telemetry/common/telemetryService.ts
|
||||
sed -i '' -E "$REPLACEMENT" src/vs/workbench/services/crashReporter/electron-browser/crashReporterService.ts
|
||||
else
|
||||
sed -i -E "$REPLACEMENT" src/vs/platform/telemetry/common/telemetryService.ts
|
||||
sed -i -E "$REPLACEMENT" src/vs/workbench/services/crashReporter/electron-browser/crashReporterService.ts
|
||||
fi
|
||||
replace () {
|
||||
echo $1
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
sed -i '' -E "$1" $2
|
||||
else
|
||||
sed -i -E "$1" $2
|
||||
fi
|
||||
}
|
||||
|
||||
update_setting () {
|
||||
local FILENAME="$2"
|
||||
# check that the file exists
|
||||
if [ ! -f $FILENAME ]; then
|
||||
echo "File to update setting in does not exist ${FILENAME}"
|
||||
return
|
||||
fi
|
||||
|
||||
# go through lines of file, looking for block that contains setting
|
||||
local SETTING="$1"
|
||||
local LINE_NUM=0
|
||||
while read -r line; do
|
||||
local LINE_NUM=$(( $LINE_NUM + 1 ))
|
||||
if [[ $line == *"$SETTING"* ]]; then
|
||||
local IN_SETTING=1
|
||||
fi
|
||||
if [[ $line == *"$DEFAULT_TRUE"* && "$IN_SETTING" == "1" ]]; then
|
||||
local FOUND=1
|
||||
break
|
||||
fi
|
||||
done < $FILENAME
|
||||
|
||||
if [[ "$FOUND" != "1" ]]; then
|
||||
echo "$DEFAULT_TRUE not found for setting $SETTING in file $FILENAME"
|
||||
return
|
||||
fi
|
||||
|
||||
# construct line-aware replacement string
|
||||
local DEFAULT_TRUE_TO_FALSE="${LINE_NUM}s/${DEFAULT_TRUE}/${DEFAULT_FALSE}/"
|
||||
|
||||
replace "$DEFAULT_TRUE_TO_FALSE" $FILENAME
|
||||
}
|
||||
|
||||
update_setting "$TELEMETRY_ENABLE" src/vs/platform/telemetry/common/telemetryService.ts
|
||||
update_setting "$TELEMETRY_CRASH_REPORTER" src/vs/workbench/electron-browser/main.contribution.ts
|
||||
|
||||
93
update_version.sh
Executable file
93
update_version.sh
Executable file
@@ -0,0 +1,93 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ "$SHOULD_BUILD" != "yes" ]]; then
|
||||
echo "Will not update version JSON because we did not build"
|
||||
exit
|
||||
fi
|
||||
|
||||
# {
|
||||
# "url": "https://az764295.vo.msecnd.net/stable/51b0b28134d51361cf996d2f0a1c698247aeabd8/VSCode-darwin-stable.zip",
|
||||
# "name": "1.33.1",
|
||||
# "version": "51b0b28134d51361cf996d2f0a1c698247aeabd8",
|
||||
# "productVersion": "1.33.1",
|
||||
# "hash": "cb4109f196d23b9d1e8646ce43145c5bb62f55a8",
|
||||
# "timestamp": 1554971059007,
|
||||
# "sha256hash": "ac2a1c8772501732cd5ff539a04bb4dc566b58b8528609d2b34bbf970d08cf01"
|
||||
# }
|
||||
|
||||
# `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
|
||||
# `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}
|
||||
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
# zip, sha1, and sha256 files are all at top level dir
|
||||
ASSET_PATH=.
|
||||
ASSET_NAME=VSCodium-darwin-${LATEST_MS_TAG}.zip
|
||||
VERSION_PATH="darwin"
|
||||
elif [[ "$CI_WINDOWS" == "True" ]]; then
|
||||
# TODO: make this logic work for Windows builds too
|
||||
# or re-implement it in PowerShell and call that from the Windows build
|
||||
exit
|
||||
else # linux
|
||||
# update service links to tar.gz file
|
||||
# see https://update.code.visualstudio.com/api/update/linux-x64/stable/VERSION
|
||||
# and https://update.code.visualstudio.com/api/update/linux-ia32/stable/VERSION
|
||||
# as examples
|
||||
ASSET_PATH=.
|
||||
ASSET_NAME=VSCodium-linux-${BUILDARCH}-${LATEST_MS_TAG}.tar.gz
|
||||
VERSION_PATH="linux/${BUILDARCH}"
|
||||
fi
|
||||
|
||||
# generate parts
|
||||
url=${URL_BASE}/${ASSET_NAME}
|
||||
name=$LATEST_MS_TAG
|
||||
version=$LATEST_MS_COMMIT
|
||||
productVersion=$LATEST_MS_TAG
|
||||
sha1hash=$(cat ${ASSET_PATH}/${ASSET_NAME}.sha1 | awk '{ print $ 1 }')
|
||||
timestamp=$(node -e 'console.log(Date.now())')
|
||||
sha256hash=$(cat ${ASSET_PATH}/${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..."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# generate json
|
||||
JSON=$(jq \
|
||||
--arg url "${url}" \
|
||||
--arg name "${name}" \
|
||||
--arg version "${version}" \
|
||||
--arg productVersion "${productVersion}" \
|
||||
--arg hash "${sha1hash}" \
|
||||
--arg timestamp "${timestamp}" \
|
||||
--arg sha256hash "${sha256hash}" \
|
||||
'. | .url=$url | .name=$name | .version=$version | .productVersion=$productVersion | .hash=$hash | .timestamp=$timestamp | .sha256hash=$sha256hash' \
|
||||
<<<'{}')
|
||||
|
||||
echo $JSON
|
||||
|
||||
# clone down the current versions repo
|
||||
# create/update the latest.json file in the correct location
|
||||
# commit and push (thank you https://www.vinaygopinath.me/blog/tech/commit-to-master-branch-on-github-using-travis-ci/)
|
||||
git clone https://github.com/VSCodium/versions.git
|
||||
cd versions
|
||||
git config user.email "travis@travis-ci.org"
|
||||
git config user.name "Travis CI"
|
||||
mkdir -p $VERSION_PATH
|
||||
echo $JSON > $VERSION_PATH/latest.json
|
||||
git add $VERSION_PATH
|
||||
dateAndMonth=`date "+%D %T"`
|
||||
git commit -m "Travis update: $dateAndMonth (Build $TRAVIS_BUILD_NUMBER)"
|
||||
git remote rm origin
|
||||
git remote add origin https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@github.com/VSCodium/versions.git > /dev/null 2>&1
|
||||
git push origin master --quiet
|
||||
@@ -39,21 +39,25 @@ steps:
|
||||
- bash: |
|
||||
if [[ "$SHOULD_BUILD" == "yes" ]]; then mv vscode\\.build\\win32-$(BUILDARCH)\\archive\\VSCode-win32-$(BUILDARCH).zip VSCodium-win32-$(BUILDARCH)-${LATEST_MS_TAG}.zip; fi
|
||||
displayName: 'move the zip folder'
|
||||
- powershell: |
|
||||
Get-FileHash VSCodiumSetup-$(BUILDARCH)-$(LATEST_MS_TAG).exe -Algorithm SHA256 | Format-List > VSCodiumSetup-$(BUILDARCH)-$(LATEST_MS_TAG).sha256
|
||||
Get-FileHash VSCodiumUserSetup-$(BUILDARCH)-$(LATEST_MS_TAG).exe -Algorithm SHA256 | Format-List > VSCodiumUserSetup-$(BUILDARCH)-$(LATEST_MS_TAG).sha256
|
||||
Get-FileHash VSCodium-win32-$(BUILDARCH)-$(LATEST_MS_TAG).zip -Algorithm SHA256 | Format-List > VSCodium-win32-$(BUILDARCH)-$(LATEST_MS_TAG).sha256
|
||||
condition: eq(variables['SHOULD_BUILD'], 'yes')
|
||||
displayName: 'compute sums'
|
||||
- task: CopyFiles@2
|
||||
inputs:
|
||||
contents: |
|
||||
VSCodium*.zip
|
||||
VSCodiumUserSetup*.exe
|
||||
VSCodiumSetup*.exe
|
||||
*.sha256
|
||||
targetFolder: $(Build.ArtifactStagingDirectory)
|
||||
condition: eq(variables['SHOULD_BUILD'], 'yes')
|
||||
displayName: 'copy artifacts to staging directory'
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish artifacts: system-setup'
|
||||
displayName: 'Publish artifacts'
|
||||
condition: eq(variables['SHOULD_BUILD'], 'yes')
|
||||
inputs:
|
||||
PathtoPublish: 'VSCodiumSetup-$(BUILDARCH)-$(LATEST_MS_TAG).exe'
|
||||
ArtifactName: 'system_setup'
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish artifacts: user-setup'
|
||||
condition: eq(variables['SHOULD_BUILD'], 'yes')
|
||||
inputs:
|
||||
PathtoPublish: 'VSCodiumUserSetup-$(BUILDARCH)-$(LATEST_MS_TAG).exe'
|
||||
ArtifactName: 'user_setup'
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: 'Publish artifacts: archive'
|
||||
condition: eq(variables['SHOULD_BUILD'], 'yes')
|
||||
inputs:
|
||||
PathtoPublish: 'VSCodium-win32-$(BUILDARCH)-$(LATEST_MS_TAG).zip'
|
||||
ArtifactName: 'archive'
|
||||
PathtoPublish: $(Build.ArtifactStagingDirectory)
|
||||
ArtifactName: 'everything'
|
||||
|
||||
Reference in New Issue
Block a user