32 bit builds (#32)
* Support 32-bit Linux builds * Update README and correct scripts * Use npm run instead of npx
This commit is contained in:
parent
1a85464271
commit
ae47b31091
6 changed files with 75 additions and 28 deletions
|
@ -2,6 +2,9 @@ matrix:
|
|||
include:
|
||||
- os: linux
|
||||
sudo: required
|
||||
- os: linux
|
||||
sudo: required
|
||||
env: BUILDARCH=ia32
|
||||
- os: osx
|
||||
|
||||
language: node_js
|
||||
|
@ -28,6 +31,8 @@ deploy:
|
|||
file:
|
||||
- ./*.zip
|
||||
- ./*.tar.gz
|
||||
- vscode/.build/linux/deb/i386/deb/*.deb
|
||||
- vscode/.build/linux/rpm/i386/*.rpm
|
||||
- vscode/.build/linux/deb/amd64/deb/*.deb
|
||||
- vscode/.build/linux/rpm/x86_64/*.rpm
|
||||
on:
|
||||
|
|
|
@ -50,10 +50,11 @@ Microsoft's build process does download additional files. This was brought up in
|
|||
## <a id="supported-os"></a>Supported OS
|
||||
- [x] OSX x64 (zipped app file)
|
||||
- [x] Linux x64 (`.deb`, `.rpm`, and `.tar.gz` files)
|
||||
- [ ] Windows x64
|
||||
- [x] Linux x86 (`.deb`, `.rpm`, and `.tar.gz` files)
|
||||
- [ ] Windows
|
||||
- The plan is to build the Windows executable with [AppVeyor](https://appveyor.com). PRs are welcome :blue_heart:
|
||||
|
||||
32-bit x86 and ARM architectures are not currently supported. If you know of a way to do this with Travis or any other free CI/CD platform please put in an issue or a PR.
|
||||
The ARM architecture is not currently supported. If you know of a way to do this with Travis or any other free CI/CD platform please put in an issue or a PR.
|
||||
|
||||
## <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)
|
||||
|
|
25
build.sh
25
build.sh
|
@ -2,23 +2,36 @@
|
|||
|
||||
if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||
cd vscode
|
||||
|
||||
if [[ "$BUILDARCH" == "ia32" ]]; then
|
||||
export npm_config_arch=ia32
|
||||
fi
|
||||
|
||||
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
|
||||
cat product.json
|
||||
export NODE_ENV=production
|
||||
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
npx gulp vscode-darwin-min
|
||||
else
|
||||
if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then
|
||||
# microsoft adds their apt repo to sources
|
||||
# unless the app name is code-oss
|
||||
# as we are renaming the application to vscodium
|
||||
# we need to edit a line in the post install template
|
||||
sed -i "s/code-oss/vscodium/" resources/linux/debian/postinst.template
|
||||
npx gulp vscode-linux-x64-min
|
||||
npx gulp vscode-linux-x64-build-deb
|
||||
npx gulp vscode-linux-x64-build-rpm
|
||||
fi
|
||||
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
npm run gulp vscode-darwin-min
|
||||
elif [[ "$BUILDARCH" == "ia32" ]]; then
|
||||
npm run gulp vscode-linux-ia32-min
|
||||
npm run gulp vscode-linux-ia32-build-deb
|
||||
npm run gulp vscode-linux-ia32-build-rpm
|
||||
unset npm_config_arch
|
||||
else
|
||||
npm run gulp vscode-linux-x64-min
|
||||
npm run gulp vscode-linux-x64-build-deb
|
||||
npm run gulp vscode-linux-x64-build-rpm
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
|
|
@ -14,29 +14,49 @@ if [ "$GITHUB_TOKEN" != "" ]; then
|
|||
echo "Building on Mac because we have no ZIP"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
else
|
||||
HAVE_RPM=$(echo $VSCODIUM_ASSETS | jq 'map(.name) | contains(["rpm"])')
|
||||
HAVE_DEB=$(echo $VSCODIUM_ASSETS | jq 'map(.name) | contains(["deb"])')
|
||||
HAVE_TAR=$(echo $VSCODIUM_ASSETS | jq 'map(.name) | contains(["tar.gz"])')
|
||||
if [[ "$HAVE_RPM" != "true" ]]; then
|
||||
echo "Building on Linux because we have no RPM"
|
||||
elif [[ $BUILDARCH == "ia32" ]]; then
|
||||
HAVE_IA32_RPM=$(echo $VSCODIUM_ASSETS | jq 'map(.name) | contains(["i386.rpm"])')
|
||||
HAVE_IA32_DEB=$(echo $VSCODIUM_ASSETS | jq 'map(.name) | contains(["i386.deb"])')
|
||||
HAVE_IA32_TAR=$(echo $VSCODIUM_ASSETS | jq --arg suffix "ia32-$LATEST_MS_TAG.tar.gz" 'map(.name) | contains([$suffix])')
|
||||
if [[ "$HAVE_IA32_RPM" != "true" ]]; then
|
||||
echo "Building on Linux ia32 because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$HAVE_DEB" != "true" ]]; then
|
||||
echo "Building on Linux because we have no DEB"
|
||||
if [[ "$HAVE_IA32_DEB" != "true" ]]; then
|
||||
echo "Building on Linux ia32 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$HAVE_TAR" != "true" ]]; then
|
||||
echo "Building on Linux because we have no TAR"
|
||||
if [[ "$HAVE_IA32_TAR" != "true" ]]; then
|
||||
echo "Building on Linux ia32 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if [[ "$SHOULD_BUILD" != "yes" ]]; then
|
||||
echo "Already have all the Linux builds"
|
||||
echo "Already have all the Linux ia32 builds"
|
||||
fi
|
||||
else
|
||||
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
|
||||
else
|
||||
echo "Release assets do not exist at all, continuing build"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if git rev-parse $LATEST_MS_TAG >/dev/null 2>&1
|
||||
then
|
||||
export TRAVIS_TAG=$LATEST_MS_TAG
|
||||
|
@ -45,6 +65,5 @@ if [ "$GITHUB_TOKEN" != "" ]; then
|
|||
git config --local user.email "builds@travis-ci.com"
|
||||
git tag $LATEST_MS_TAG
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
@ -4,6 +4,9 @@ if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
|||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
cd VSCode-darwin
|
||||
zip -r ../VSCode-darwin-${LATEST_MS_TAG}.zip ./*
|
||||
elif [[ "$BUILDARCH" == "ia32" ]]; then
|
||||
cd VSCode-linux-ia32
|
||||
tar czf ../VSCode-linux-ia32-${LATEST_MS_TAG}.tar.gz .
|
||||
else
|
||||
cd VSCode-linux-x64
|
||||
tar czf ../VSCode-linux-x64-${LATEST_MS_TAG}.tar.gz .
|
||||
|
|
|
@ -7,4 +7,10 @@ if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
|||
else
|
||||
sudo apt-get update
|
||||
sudo apt-get install libx11-dev libxkbfile-dev libsecret-1-dev fakeroot rpm
|
||||
if [[ "$BUILDARCH" == "ia32" ]]; then
|
||||
sudo dpkg --add-architecture i386
|
||||
sudo apt-get update
|
||||
sudo apt-get install libc6-dev-i386 gcc-multilib g++-multilib
|
||||
sudo apt-get install libx11-dev:i386 libxkbfile-dev:i386
|
||||
fi
|
||||
fi
|
Loading…
Reference in a new issue