Merge branch 'joao/linux-arm'

This commit is contained in:
João Moreno 2020-09-11 12:45:08 +02:00
commit e75b1a6dcd
No known key found for this signature in database
GPG key ID: 896B853774D1A575
11 changed files with 245 additions and 86 deletions

View file

@ -52,21 +52,25 @@ steps:
git merge $(node -p "require('./package.json').distro") git merge $(node -p "require('./package.json').distro")
displayName: Merge distro displayName: Merge distro
- script: |
echo -n $VSCODE_ARCH > .build/arch
displayName: Prepare arch cache flag
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1 - task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs: inputs:
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock' keyfile: '.build/arch, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules' targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'npm-vscode' vstsFeed: 'npm-vscode'
- script: | - script: |
set -e set -e
CHILD_CONCURRENCY=1 yarn --frozen-lockfile CHILD_CONCURRENCY=1 npm_config_arch=$(NPM_ARCH) yarn --frozen-lockfile
displayName: Install dependencies displayName: Install dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true')) condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1 - task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs: inputs:
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock' keyfile: '.build/arch, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules' targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'npm-vscode' vstsFeed: 'npm-vscode'
condition: and(succeeded(), ne(variables['CacheRestored'], 'true')) condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
@ -85,64 +89,64 @@ steps:
- script: | - script: |
set -e set -e
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \ VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
yarn gulp vscode-linux-x64-min-ci yarn gulp vscode-linux-$(VSCODE_ARCH)-min-ci
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \ VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
yarn gulp vscode-reh-linux-x64-min-ci yarn gulp vscode-reh-linux-$(VSCODE_ARCH)-min-ci
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \ VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
yarn gulp vscode-reh-web-linux-x64-min-ci yarn gulp vscode-reh-web-linux-$(VSCODE_ARCH)-min-ci
displayName: Build displayName: Build
- script: | - script: |
set -e set -e
service xvfb start service xvfb start
displayName: Start xvfb displayName: Start xvfb
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false')) condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: | - script: |
set -e set -e
DISPLAY=:10 ./scripts/test.sh --build --tfs "Unit Tests" DISPLAY=:10 ./scripts/test.sh --build --tfs "Unit Tests"
displayName: Run unit tests (Electron) displayName: Run unit tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false')) condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: | - script: |
set -e set -e
DISPLAY=:10 yarn test-browser --build --browser chromium --tfs "Browser Unit Tests" DISPLAY=:10 yarn test-browser --build --browser chromium --tfs "Browser Unit Tests"
displayName: Run unit tests (Browser) displayName: Run unit tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false')) condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: | - script: |
# Figure out the full absolute path of the product we just built # Figure out the full absolute path of the product we just built
# including the remote server and configure the integration tests # including the remote server and configure the integration tests
# to run with these builds instead of running out of sources. # to run with these builds instead of running out of sources.
set -e set -e
APP_ROOT=$(agent.builddirectory)/VSCode-linux-x64 APP_ROOT=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName") APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \ INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-x64" \ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
DISPLAY=:10 ./scripts/test-integration.sh --build --tfs "Integration Tests" DISPLAY=:10 ./scripts/test-integration.sh --build --tfs "Integration Tests"
displayName: Run integration tests (Electron) displayName: Run integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false')) condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: | - script: |
set -e set -e
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-x64" \ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-$(VSCODE_ARCH)" \
DISPLAY=:10 ./resources/server/test/test-web-integration.sh --browser chromium DISPLAY=:10 ./resources/server/test/test-web-integration.sh --browser chromium
displayName: Run integration tests (Browser) displayName: Run integration tests (Browser)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false')) condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: | - script: |
set -e set -e
APP_ROOT=$(agent.builddirectory)/VSCode-linux-x64 APP_ROOT=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName") APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \ INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-x64" \ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH)" \
DISPLAY=:10 ./resources/server/test/test-remote-integration.sh DISPLAY=:10 ./resources/server/test/test-remote-integration.sh
displayName: Run remote integration tests (Electron) displayName: Run remote integration tests (Electron)
condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false')) condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- task: PublishPipelineArtifact@0 - task: PublishPipelineArtifact@0
inputs: inputs:
artifactName: crash-dump-linux artifactName: 'crash-dump-linux-$(VSCODE_ARCH)'
targetPath: .build/crashes targetPath: .build/crashes
displayName: 'Publish Crash Reports' displayName: 'Publish Crash Reports'
continueOnError: true continueOnError: true
@ -157,15 +161,26 @@ steps:
- script: | - script: |
set -e set -e
yarn gulp "vscode-linux-x64-build-deb" yarn gulp "vscode-linux-$(VSCODE_ARCH)-build-deb"
yarn gulp "vscode-linux-x64-build-rpm" yarn gulp "vscode-linux-$(VSCODE_ARCH)-build-rpm"
yarn gulp "vscode-linux-x64-prepare-snap" displayName: Build deb, rpm packages
displayName: Build packages
- script: |
set -e
yarn gulp "vscode-linux-$(VSCODE_ARCH)-prepare-snap"
displayName: Prepare snap package
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'))
# needed for code signing
- task: UseDotNet@2
displayName: 'Install .NET Core SDK 2.x'
inputs:
version: 2.x
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1 - task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
inputs: inputs:
ConnectedServiceName: 'ESRP CodeSign' ConnectedServiceName: 'ESRP CodeSign'
FolderPath: '.build/linux/rpm/x86_64' FolderPath: '.build/linux/rpm'
Pattern: '*.rpm' Pattern: '*.rpm'
signConfigType: inlineSignParams signConfigType: inlineSignParams
inlineOperation: | inlineOperation: |
@ -186,14 +201,16 @@ steps:
AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \ AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \ AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \ VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
VSCODE_ARCH="$(VSCODE_ARCH)" \
./build/azure-pipelines/linux/publish.sh ./build/azure-pipelines/linux/publish.sh
displayName: Publish displayName: Publish
- task: PublishPipelineArtifact@0 - task: PublishPipelineArtifact@0
displayName: 'Publish Pipeline Artifact' displayName: 'Publish Pipeline Artifact'
inputs: inputs:
artifactName: snap-x64 artifactName: 'snap-$(VSCODE_ARCH)'
targetPath: .build/linux/snap-tarball targetPath: .build/linux/snap-tarball
condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'))
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0 - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: 'Component Detection' displayName: 'Component Detection'

View file

@ -4,11 +4,10 @@ REPO="$(pwd)"
ROOT="$REPO/.." ROOT="$REPO/.."
# Publish tarball # Publish tarball
PLATFORM_LINUX="linux-x64" PLATFORM_LINUX="linux-$VSCODE_ARCH"
BUILDNAME="VSCode-$PLATFORM_LINUX" BUILDNAME="VSCode-$PLATFORM_LINUX"
BUILD="$ROOT/$BUILDNAME"
BUILD_VERSION="$(date +%s)" BUILD_VERSION="$(date +%s)"
[ -z "$VSCODE_QUALITY" ] && TARBALL_FILENAME="code-$BUILD_VERSION.tar.gz" || TARBALL_FILENAME="code-$VSCODE_QUALITY-$BUILD_VERSION.tar.gz" [ -z "$VSCODE_QUALITY" ] && TARBALL_FILENAME="code-$VSCODE_ARCH-$BUILD_VERSION.tar.gz" || TARBALL_FILENAME="code-$VSCODE_QUALITY-$VSCODE_ARCH-$BUILD_VERSION.tar.gz"
TARBALL_PATH="$ROOT/$TARBALL_FILENAME" TARBALL_PATH="$ROOT/$TARBALL_FILENAME"
rm -rf $ROOT/code-*.tar.* rm -rf $ROOT/code-*.tar.*
@ -28,24 +27,36 @@ rm -rf $ROOT/vscode-server-*.tar.*
node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH" node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH"
# Publish DEB # Publish DEB
PLATFORM_DEB="linux-deb-x64" case $VSCODE_ARCH in
DEB_ARCH="amd64" x64) DEB_ARCH="amd64" ;;
*) DEB_ARCH="$VSCODE_ARCH" ;;
esac
PLATFORM_DEB="linux-deb-$VSCODE_ARCH"
DEB_FILENAME="$(ls $REPO/.build/linux/deb/$DEB_ARCH/deb/)" DEB_FILENAME="$(ls $REPO/.build/linux/deb/$DEB_ARCH/deb/)"
DEB_PATH="$REPO/.build/linux/deb/$DEB_ARCH/deb/$DEB_FILENAME" DEB_PATH="$REPO/.build/linux/deb/$DEB_ARCH/deb/$DEB_FILENAME"
node build/azure-pipelines/common/createAsset.js "$PLATFORM_DEB" package "$DEB_FILENAME" "$DEB_PATH" node build/azure-pipelines/common/createAsset.js "$PLATFORM_DEB" package "$DEB_FILENAME" "$DEB_PATH"
# Publish RPM # Publish RPM
PLATFORM_RPM="linux-rpm-x64" case $VSCODE_ARCH in
RPM_ARCH="x86_64" x64) RPM_ARCH="x86_64" ;;
armhf) RPM_ARCH="armv7hl" ;;
arm64) RPM_ARCH="aarch64" ;;
*) RPM_ARCH="$VSCODE_ARCH" ;;
esac
PLATFORM_RPM="linux-rpm-$VSCODE_ARCH"
RPM_FILENAME="$(ls $REPO/.build/linux/rpm/$RPM_ARCH/ | grep .rpm)" RPM_FILENAME="$(ls $REPO/.build/linux/rpm/$RPM_ARCH/ | grep .rpm)"
RPM_PATH="$REPO/.build/linux/rpm/$RPM_ARCH/$RPM_FILENAME" RPM_PATH="$REPO/.build/linux/rpm/$RPM_ARCH/$RPM_FILENAME"
node build/azure-pipelines/common/createAsset.js "$PLATFORM_RPM" package "$RPM_FILENAME" "$RPM_PATH" node build/azure-pipelines/common/createAsset.js "$PLATFORM_RPM" package "$RPM_FILENAME" "$RPM_PATH"
# Publish Snap if [ "$VSCODE_ARCH" == "x64" ]; then
# Pack snap tarball artifact, in order to preserve file perms # Publish Snap
mkdir -p $REPO/.build/linux/snap-tarball # Pack snap tarball artifact, in order to preserve file perms
SNAP_TARBALL_PATH="$REPO/.build/linux/snap-tarball/snap-x64.tar.gz" mkdir -p $REPO/.build/linux/snap-tarball
rm -rf $SNAP_TARBALL_PATH SNAP_TARBALL_PATH="$REPO/.build/linux/snap-tarball/snap-$VSCODE_ARCH.tar.gz"
(cd .build/linux && tar -czf $SNAP_TARBALL_PATH snap) rm -rf $SNAP_TARBALL_PATH
(cd .build/linux && tar -czf $SNAP_TARBALL_PATH snap)
fi

View file

@ -13,6 +13,12 @@ resources:
- container: vscode-x64 - container: vscode-x64
image: vscodehub.azurecr.io/vscode-linux-build-agent:x64 image: vscodehub.azurecr.io/vscode-linux-build-agent:x64
endpoint: VSCodeHub endpoint: VSCodeHub
- container: vscode-arm64
image: vscodehub.azurecr.io/vscode-linux-build-agent:buster-arm64
endpoint: VSCodeHub
- container: vscode-armhf
image: vscodehub.azurecr.io/vscode-linux-build-agent:buster-armhf
endpoint: VSCodeHub
- container: snapcraft - container: snapcraft
image: snapcore/snapcraft:stable image: snapcore/snapcraft:stable
@ -64,6 +70,9 @@ stages:
- job: Linux - job: Linux
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
container: vscode-x64 container: vscode-x64
variables:
VSCODE_ARCH: x64
NPM_ARCH: x64
steps: steps:
- template: linux/product-build-linux.yml - template: linux/product-build-linux.yml
@ -72,22 +81,28 @@ stages:
- Linux - Linux
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
container: snapcraft container: snapcraft
variables:
VSCODE_ARCH: x64
steps: steps:
- template: linux/snap-build-linux.yml - template: linux/snap-build-linux.yml
- job: LinuxArmhf - job: LinuxArmhf
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true'))
container: vscode-armhf
variables: variables:
VSCODE_ARCH: armhf VSCODE_ARCH: armhf
NPM_ARCH: armv7l
steps: steps:
- template: linux/product-build-linux-multiarch.yml - template: linux/product-build-linux.yml
- job: LinuxArm64 - job: LinuxArm64
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARM64'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ARM64'], 'true'))
container: vscode-arm64
variables: variables:
VSCODE_ARCH: arm64 VSCODE_ARCH: arm64
NPM_ARCH: arm64
steps: steps:
- template: linux/product-build-linux-multiarch.yml - template: linux/product-build-linux.yml
- job: LinuxAlpine - job: LinuxAlpine
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ALPINE'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ALPINE'], 'true'))

View file

@ -52,9 +52,13 @@ steps:
displayName: Merge distro displayName: Merge distro
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true')) condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
- script: |
echo -n $VSCODE_ARCH > .build/arch
displayName: Prepare arch cache flag
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1 - task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs: inputs:
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock' keyfile: '.build/arch, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules' targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'npm-vscode' vstsFeed: 'npm-vscode'
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true')) condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
@ -67,7 +71,7 @@ steps:
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1 - task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs: inputs:
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock' keyfile: '.build/arch, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules' targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'npm-vscode' vstsFeed: 'npm-vscode'
condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'), ne(variables['CacheRestored'], 'true')) condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'), ne(variables['CacheRestored'], 'true'))

View file

@ -37,19 +37,11 @@ const BUILD_TARGETS = [
const noop = () => { return Promise.resolve(); }; const noop = () => { return Promise.resolve(); };
gulp.task('vscode-reh-win32-ia32-min', noop); BUILD_TARGETS.forEach(({ platform, arch }) => {
gulp.task('vscode-reh-win32-x64-min', noop); for (const target of ['reh', 'reh-web']) {
gulp.task('vscode-reh-darwin-min', noop); gulp.task(`vscode-${target}-${platform}${ arch ? `-${arch}` : '' }-min`, noop);
gulp.task('vscode-reh-linux-x64-min', noop); }
gulp.task('vscode-reh-linux-armhf-min', noop); });
gulp.task('vscode-reh-linux-arm64-min', noop);
gulp.task('vscode-reh-linux-alpine-min', noop);
gulp.task('vscode-reh-web-win32-ia32-min', noop);
gulp.task('vscode-reh-web-win32-x64-min', noop);
gulp.task('vscode-reh-web-darwin-min', noop);
gulp.task('vscode-reh-web-linux-x64-min', noop);
gulp.task('vscode-reh-web-linux-alpine-min', noop);
function getNodeVersion() { function getNodeVersion() {
const yarnrc = fs.readFileSync(path.join(REPO_ROOT, 'remote', '.yarnrc'), 'utf8'); const yarnrc = fs.readFileSync(path.join(REPO_ROOT, 'remote', '.yarnrc'), 'utf8');

View file

@ -263,7 +263,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
let result = all let result = all
.pipe(util.skipDirectories()) .pipe(util.skipDirectories())
.pipe(util.fixWin32DirectoryPermissions()) .pipe(util.fixWin32DirectoryPermissions())
.pipe(electron(_.extend({}, config, { platform, arch, ffmpegChromium: true }))) .pipe(electron(_.extend({}, config, { platform, arch: arch === 'armhf' ? 'arm' : arch, ffmpegChromium: true })))
.pipe(filter(['**', '!LICENSE', '!LICENSES.chromium.html', '!version'], { dot: true })); .pipe(filter(['**', '!LICENSE', '!LICENSES.chromium.html', '!version'], { dot: true }));
if (platform === 'linux') { if (platform === 'linux') {
@ -324,7 +324,7 @@ const BUILD_TARGETS = [
{ platform: 'darwin', arch: null, opts: { stats: true } }, { platform: 'darwin', arch: null, opts: { stats: true } },
{ platform: 'linux', arch: 'ia32' }, { platform: 'linux', arch: 'ia32' },
{ platform: 'linux', arch: 'x64' }, { platform: 'linux', arch: 'x64' },
{ platform: 'linux', arch: 'arm' }, { platform: 'linux', arch: 'armhf' },
{ platform: 'linux', arch: 'arm64' }, { platform: 'linux', arch: 'arm64' },
]; ];
BUILD_TARGETS.forEach(buildTarget => { BUILD_TARGETS.forEach(buildTarget => {

View file

@ -23,7 +23,7 @@ const commit = util.getVersion(root);
const linuxPackageRevision = Math.floor(new Date().getTime() / 1000); const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
function getDebPackageArch(arch) { function getDebPackageArch(arch) {
return { x64: 'amd64', arm: 'armhf', arm64: 'arm64' }[arch]; return { x64: 'amd64', armhf: 'armhf', arm64: 'arm64' }[arch];
} }
function prepareDebPackage(arch) { function prepareDebPackage(arch) {
@ -120,7 +120,7 @@ function getRpmBuildPath(rpmArch) {
} }
function getRpmPackageArch(arch) { function getRpmPackageArch(arch) {
return { x64: 'x86_64', arm: 'armhf', arm64: 'arm64' }[arch]; return { x64: 'x86_64', armhf: 'armv7hl', arm64: 'aarch64' }[arch];
} }
function prepareRpmPackage(arch) { function prepareRpmPackage(arch) {
@ -256,33 +256,23 @@ function buildSnapPackage(arch) {
const BUILD_TARGETS = [ const BUILD_TARGETS = [
{ arch: 'x64' }, { arch: 'x64' },
{ arch: 'arm' }, { arch: 'armhf' },
{ arch: 'arm64' }, { arch: 'arm64' },
]; ];
BUILD_TARGETS.forEach((buildTarget) => { BUILD_TARGETS.forEach(({ arch }) => {
const arch = buildTarget.arch; const debArch = getDebPackageArch(arch);
const prepareDebTask = task.define(`vscode-linux-${arch}-prepare-deb`, task.series(util.rimraf(`.build/linux/deb/${debArch}`), prepareDebPackage(arch)));
const buildDebTask = task.define(`vscode-linux-${arch}-build-deb`, task.series(prepareDebTask, buildDebPackage(arch)));
gulp.task(buildDebTask);
{ const rpmArch = getRpmPackageArch(arch);
const debArch = getDebPackageArch(arch); const prepareRpmTask = task.define(`vscode-linux-${arch}-prepare-rpm`, task.series(util.rimraf(`.build/linux/rpm/${rpmArch}`), prepareRpmPackage(arch)));
const prepareDebTask = task.define(`vscode-linux-${arch}-prepare-deb`, task.series(util.rimraf(`.build/linux/deb/${debArch}`), prepareDebPackage(arch))); const buildRpmTask = task.define(`vscode-linux-${arch}-build-rpm`, task.series(prepareRpmTask, buildRpmPackage(arch)));
// gulp.task(prepareDebTask); gulp.task(buildRpmTask);
const buildDebTask = task.define(`vscode-linux-${arch}-build-deb`, task.series(prepareDebTask, buildDebPackage(arch)));
gulp.task(buildDebTask);
}
{ const prepareSnapTask = task.define(`vscode-linux-${arch}-prepare-snap`, task.series(util.rimraf(`.build/linux/snap/${arch}`), prepareSnapPackage(arch)));
const rpmArch = getRpmPackageArch(arch); gulp.task(prepareSnapTask);
const prepareRpmTask = task.define(`vscode-linux-${arch}-prepare-rpm`, task.series(util.rimraf(`.build/linux/rpm/${rpmArch}`), prepareRpmPackage(arch))); const buildSnapTask = task.define(`vscode-linux-${arch}-build-snap`, task.series(prepareSnapTask, buildSnapPackage(arch)));
// gulp.task(prepareRpmTask); gulp.task(buildSnapTask);
const buildRpmTask = task.define(`vscode-linux-${arch}-build-rpm`, task.series(prepareRpmTask, buildRpmPackage(arch)));
gulp.task(buildRpmTask);
}
{
const prepareSnapTask = task.define(`vscode-linux-${arch}-prepare-snap`, task.series(util.rimraf(`.build/linux/snap/${arch}`), prepareSnapPackage(arch)));
gulp.task(prepareSnapTask);
const buildSnapTask = task.define(`vscode-linux-${arch}-build-snap`, task.series(prepareSnapTask, buildSnapPackage(arch)));
gulp.task(buildSnapTask);
}
}); });

View file

@ -82,7 +82,7 @@ function getElectron(arch) {
return () => { return () => {
const electronOpts = _.extend({}, exports.config, { const electronOpts = _.extend({}, exports.config, {
platform: process.platform, platform: process.platform,
arch, arch: arch === 'armhf' ? 'arm' : arch,
ffmpegChromium: true, ffmpegChromium: true,
keepDefaultApp: true keepDefaultApp: true
}); });

View file

@ -88,7 +88,7 @@ function getElectron(arch: string): () => NodeJS.ReadWriteStream {
return () => { return () => {
const electronOpts = _.extend({}, config, { const electronOpts = _.extend({}, config, {
platform: process.platform, platform: process.platform,
arch, arch: arch === 'armhf' ? 'arm' : arch,
ffmpegChromium: true, ffmpegChromium: true,
keepDefaultApp: true keepDefaultApp: true
}); });

View file

@ -1,7 +1,7 @@
{ {
"name": "code-oss-dev", "name": "code-oss-dev",
"version": "1.50.0", "version": "1.50.0",
"distro": "4e70546a844cc9044dab1f605033be5c745f1940", "distro": "3729948d337954299b7e3b183f66034d51e4ad69",
"author": { "author": {
"name": "Microsoft Corporation" "name": "Microsoft Corporation"
}, },

View file

@ -63,5 +63,135 @@
"libxcb.so.1()(64bit)", "libxcb.so.1()(64bit)",
"libxkbfile.so.1()(64bit)", "libxkbfile.so.1()(64bit)",
"libsecret-1.so.0()(64bit)" "libsecret-1.so.0()(64bit)"
],
"aarch64": [
"libpthread.so.0()(aarch64)",
"libpthread.so.0(GLIBC_2.2.5)(aarch64)",
"libpthread.so.0(GLIBC_2.3.2)(aarch64)",
"libpthread.so.0(GLIBC_2.3.3)(aarch64)",
"libgtk-3.so.0()(aarch64)",
"libgdk-x11-2.0.so.0()(aarch64)",
"libatk-1.0.so.0()(aarch64)",
"libgio-2.0.so.0()(aarch64)",
"libpangocairo-1.0.so.0()(aarch64)",
"libgdk_pixbuf-2.0.so.0()(aarch64)",
"libcairo.so.2()(aarch64)",
"libpango-1.0.so.0()(aarch64)",
"libfreetype.so.6()(aarch64)",
"libfontconfig.so.1()(aarch64)",
"libgobject-2.0.so.0()(aarch64)",
"libdbus-1.so.3()(aarch64)",
"libXi.so.6()(aarch64)",
"libXcursor.so.1()(aarch64)",
"libXdamage.so.1()(aarch64)",
"libXrandr.so.2()(aarch64)",
"libXcomposite.so.1()(aarch64)",
"libXext.so.6()(aarch64)",
"libXfixes.so.3()(aarch64)",
"libXrender.so.1()(aarch64)",
"libX11.so.6()(aarch64)",
"libXss.so.1()(aarch64)",
"libXtst.so.6()(aarch64)",
"libgmodule-2.0.so.0()(aarch64)",
"librt.so.1()(aarch64)",
"libglib-2.0.so.0()(aarch64)",
"libnss3.so()(aarch64)",
"libnssutil3.so()(aarch64)",
"libsmime3.so()(aarch64)",
"libnspr4.so()(aarch64)",
"libasound.so.2()(aarch64)",
"libcups.so.2()(aarch64)",
"libdl.so.2()(aarch64)",
"libexpat.so.1()(aarch64)",
"libstdc++.so.6()(aarch64)",
"libstdc++.so.6(GLIBCXX_3.4)(aarch64)",
"libstdc++.so.6(GLIBCXX_3.4.10)(aarch64)",
"libstdc++.so.6(GLIBCXX_3.4.11)(aarch64)",
"libstdc++.so.6(GLIBCXX_3.4.14)(aarch64)",
"libstdc++.so.6(GLIBCXX_3.4.15)(aarch64)",
"libstdc++.so.6(GLIBCXX_3.4.9)(aarch64)",
"libm.so.6()(aarch64)",
"libm.so.6(GLIBC_2.2.5)(aarch64)",
"libgcc_s.so.1()(aarch64)",
"libgcc_s.so.1(GCC_3.0)(aarch64)",
"libgcc_s.so.1(GCC_4.0.0)(aarch64)",
"libc.so.6()(aarch64)",
"libc.so.6(GLIBC_2.11)(aarch64)",
"libc.so.6(GLIBC_2.2.5)(aarch64)",
"libc.so.6(GLIBC_2.3)(aarch64)",
"libc.so.6(GLIBC_2.3.2)(aarch64)",
"libc.so.6(GLIBC_2.3.4)(aarch64)",
"libc.so.6(GLIBC_2.4)(aarch64)",
"libc.so.6(GLIBC_2.6)(aarch64)",
"libc.so.6(GLIBC_2.7)(aarch64)",
"libc.so.6(GLIBC_2.9)(aarch64)",
"libxcb.so.1()(aarch64)",
"libxkbfile.so.1()(aarch64)",
"libsecret-1.so.0()(aarch64)"
],
"armv7hl": [
"libpthread.so.0()(armv7hl)",
"libpthread.so.0(GLIBC_2.2.5)(armv7hl)",
"libpthread.so.0(GLIBC_2.3.2)(armv7hl)",
"libpthread.so.0(GLIBC_2.3.3)(armv7hl)",
"libgtk-3.so.0()(armv7hl)",
"libgdk-x11-2.0.so.0()(armv7hl)",
"libatk-1.0.so.0()(armv7hl)",
"libgio-2.0.so.0()(armv7hl)",
"libpangocairo-1.0.so.0()(armv7hl)",
"libgdk_pixbuf-2.0.so.0()(armv7hl)",
"libcairo.so.2()(armv7hl)",
"libpango-1.0.so.0()(armv7hl)",
"libfreetype.so.6()(armv7hl)",
"libfontconfig.so.1()(armv7hl)",
"libgobject-2.0.so.0()(armv7hl)",
"libdbus-1.so.3()(armv7hl)",
"libXi.so.6()(armv7hl)",
"libXcursor.so.1()(armv7hl)",
"libXdamage.so.1()(armv7hl)",
"libXrandr.so.2()(armv7hl)",
"libXcomposite.so.1()(armv7hl)",
"libXext.so.6()(armv7hl)",
"libXfixes.so.3()(armv7hl)",
"libXrender.so.1()(armv7hl)",
"libX11.so.6()(armv7hl)",
"libXss.so.1()(armv7hl)",
"libXtst.so.6()(armv7hl)",
"libgmodule-2.0.so.0()(armv7hl)",
"librt.so.1()(armv7hl)",
"libglib-2.0.so.0()(armv7hl)",
"libnss3.so()(armv7hl)",
"libnssutil3.so()(armv7hl)",
"libsmime3.so()(armv7hl)",
"libnspr4.so()(armv7hl)",
"libasound.so.2()(armv7hl)",
"libcups.so.2()(armv7hl)",
"libdl.so.2()(armv7hl)",
"libexpat.so.1()(armv7hl)",
"libstdc++.so.6()(armv7hl)",
"libstdc++.so.6(GLIBCXX_3.4)(armv7hl)",
"libstdc++.so.6(GLIBCXX_3.4.10)(armv7hl)",
"libstdc++.so.6(GLIBCXX_3.4.11)(armv7hl)",
"libstdc++.so.6(GLIBCXX_3.4.14)(armv7hl)",
"libstdc++.so.6(GLIBCXX_3.4.15)(armv7hl)",
"libstdc++.so.6(GLIBCXX_3.4.9)(armv7hl)",
"libm.so.6()(armv7hl)",
"libm.so.6(GLIBC_2.2.5)(armv7hl)",
"libgcc_s.so.1()(armv7hl)",
"libgcc_s.so.1(GCC_3.0)(armv7hl)",
"libgcc_s.so.1(GCC_4.0.0)(armv7hl)",
"libc.so.6()(armv7hl)",
"libc.so.6(GLIBC_2.11)(armv7hl)",
"libc.so.6(GLIBC_2.2.5)(armv7hl)",
"libc.so.6(GLIBC_2.3)(armv7hl)",
"libc.so.6(GLIBC_2.3.2)(armv7hl)",
"libc.so.6(GLIBC_2.3.4)(armv7hl)",
"libc.so.6(GLIBC_2.4)(armv7hl)",
"libc.so.6(GLIBC_2.6)(armv7hl)",
"libc.so.6(GLIBC_2.7)(armv7hl)",
"libc.so.6(GLIBC_2.9)(armv7hl)",
"libxcb.so.1()(armv7hl)",
"libxkbfile.so.1()(armv7hl)",
"libsecret-1.so.0()(armv7hl)"
] ]
} }