mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-24 04:09:28 +00:00
inline linux snap (#246076)
* inline linux snap
* hm
* no need for tar
* hm
* hm
* debug
* hm
* 💄
This commit is contained in:
23
build/azure-pipelines/linux/build-snap.sh
Executable file
23
build/azure-pipelines/linux/build-snap.sh
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Get snapcraft version
|
||||||
|
snapcraft --version
|
||||||
|
|
||||||
|
# Make sure we get latest packages
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get upgrade -y
|
||||||
|
sudo apt-get install -y curl apt-transport-https ca-certificates
|
||||||
|
|
||||||
|
# Define variables
|
||||||
|
SNAP_ROOT="$(pwd)/.build/linux/snap/$VSCODE_ARCH"
|
||||||
|
|
||||||
|
# Create snap package
|
||||||
|
BUILD_VERSION="$(date +%s)"
|
||||||
|
SNAP_FILENAME="code-$VSCODE_QUALITY-$VSCODE_ARCH-$BUILD_VERSION.snap"
|
||||||
|
SNAP_PATH="$SNAP_ROOT/$SNAP_FILENAME"
|
||||||
|
case $VSCODE_ARCH in
|
||||||
|
x64) SNAPCRAFT_TARGET_ARGS="" ;;
|
||||||
|
*) SNAPCRAFT_TARGET_ARGS="--target-arch $VSCODE_ARCH" ;;
|
||||||
|
esac
|
||||||
|
(cd $SNAP_ROOT/code-* && sudo --preserve-env snapcraft snap $SNAPCRAFT_TARGET_ARGS --output "$SNAP_PATH")
|
||||||
@@ -329,14 +329,30 @@ steps:
|
|||||||
echo "##vso[task.setvariable variable=RPM_PATH]$(ls .build/linux/rpm/*/*.rpm)"
|
echo "##vso[task.setvariable variable=RPM_PATH]$(ls .build/linux/rpm/*/*.rpm)"
|
||||||
displayName: Build rpm package
|
displayName: Build rpm package
|
||||||
|
|
||||||
|
- task: Docker@1
|
||||||
|
inputs:
|
||||||
|
azureSubscriptionEndpoint: vscode
|
||||||
|
azureContainerRegistry: vscodehub.azurecr.io
|
||||||
|
command: login
|
||||||
|
displayName: Login to Container Registry
|
||||||
|
|
||||||
- script: |
|
- script: |
|
||||||
set -e
|
set -e
|
||||||
npm run gulp "vscode-linux-$(VSCODE_ARCH)-prepare-snap"
|
npm run gulp "vscode-linux-$(VSCODE_ARCH)-prepare-snap"
|
||||||
ARCHIVE_PATH=".build/linux/snap-tarball/snap-$(VSCODE_ARCH).tar.gz"
|
sudo -E docker run -e VSCODE_ARCH -e VSCODE_QUALITY -v $(pwd):/work -w /work vscodehub.azurecr.io/vscode-linux-build-agent:snapcraft-x64 /bin/bash -c "./build/azure-pipelines/linux/build-snap.sh"
|
||||||
mkdir -p $(dirname $ARCHIVE_PATH)
|
|
||||||
tar -czf $ARCHIVE_PATH -C .build/linux snap
|
SNAP_ROOT="$(pwd)/.build/linux/snap/$(VSCODE_ARCH)"
|
||||||
echo "##vso[task.setvariable variable=SNAP_PATH]$ARCHIVE_PATH"
|
SNAP_EXTRACTED_PATH=$(find $SNAP_ROOT -maxdepth 1 -type d -name 'code-*')
|
||||||
displayName: Prepare snap package
|
SNAP_PATH=$(find $SNAP_ROOT -maxdepth 1 -type f -name '*.snap')
|
||||||
|
|
||||||
|
# SBOM tool doesn't like recursive symlinks
|
||||||
|
sudo find $SNAP_EXTRACTED_PATH -type l -delete
|
||||||
|
|
||||||
|
echo "##vso[task.setvariable variable=SNAP_EXTRACTED_PATH]$SNAP_EXTRACTED_PATH"
|
||||||
|
echo "##vso[task.setvariable variable=SNAP_PATH]$SNAP_PATH"
|
||||||
|
env:
|
||||||
|
VSCODE_ARCH: $(VSCODE_ARCH)
|
||||||
|
displayName: Build snap package
|
||||||
|
|
||||||
- task: UseDotNet@2
|
- task: UseDotNet@2
|
||||||
inputs:
|
inputs:
|
||||||
@@ -441,7 +457,9 @@ steps:
|
|||||||
- task: 1ES.PublishPipelineArtifact@1
|
- task: 1ES.PublishPipelineArtifact@1
|
||||||
inputs:
|
inputs:
|
||||||
targetPath: $(SNAP_PATH)
|
targetPath: $(SNAP_PATH)
|
||||||
artifactName: $(ARTIFACT_PREFIX)snap-$(VSCODE_ARCH)
|
artifactName: vscode_client_linux_$(VSCODE_ARCH)_snap
|
||||||
sbomEnabled: false
|
sbomBuildDropPath: $(SNAP_EXTRACTED_PATH)
|
||||||
|
sbomPackageName: "VS Code Linux $(VSCODE_ARCH) SNAP"
|
||||||
|
sbomPackageVersion: $(Build.SourceVersion)
|
||||||
condition: and(succeededOrFailed(), ne(variables['SNAP_PATH'], ''))
|
condition: and(succeededOrFailed(), ne(variables['SNAP_PATH'], ''))
|
||||||
displayName: Publish snap pre-package
|
displayName: Publish snap package
|
||||||
|
|||||||
@@ -1,64 +0,0 @@
|
|||||||
steps:
|
|
||||||
- task: NodeTool@0
|
|
||||||
inputs:
|
|
||||||
versionSource: fromFile
|
|
||||||
versionFilePath: .nvmrc
|
|
||||||
nodejsMirror: https://github.com/joaomoreno/node-mirror/releases/download
|
|
||||||
|
|
||||||
- task: DownloadPipelineArtifact@2
|
|
||||||
displayName: "Download Pipeline Artifact"
|
|
||||||
inputs:
|
|
||||||
artifact: snap-$(VSCODE_ARCH)
|
|
||||||
path: .build/linux/snap-tarball
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Get snapcraft version
|
|
||||||
snapcraft --version
|
|
||||||
|
|
||||||
# Make sure we get latest packages
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get upgrade -y
|
|
||||||
sudo apt-get install -y curl apt-transport-https ca-certificates
|
|
||||||
|
|
||||||
# Define variables
|
|
||||||
SNAP_ROOT="$(pwd)/.build/linux/snap/$(VSCODE_ARCH)"
|
|
||||||
|
|
||||||
# Unpack snap tarball artifact, in order to preserve file perms
|
|
||||||
(cd .build/linux && tar -xzf snap-tarball/snap-$(VSCODE_ARCH).tar.gz)
|
|
||||||
|
|
||||||
# Create snap package
|
|
||||||
BUILD_VERSION="$(date +%s)"
|
|
||||||
SNAP_FILENAME="code-$VSCODE_QUALITY-$(VSCODE_ARCH)-$BUILD_VERSION.snap"
|
|
||||||
SNAP_PATH="$SNAP_ROOT/$SNAP_FILENAME"
|
|
||||||
case $(VSCODE_ARCH) in
|
|
||||||
x64) SNAPCRAFT_TARGET_ARGS="" ;;
|
|
||||||
*) SNAPCRAFT_TARGET_ARGS="--target-arch $(VSCODE_ARCH)" ;;
|
|
||||||
esac
|
|
||||||
(cd $SNAP_ROOT/code-* && sudo --preserve-env snapcraft snap $SNAPCRAFT_TARGET_ARGS --output "$SNAP_PATH")
|
|
||||||
displayName: Prepare for publish
|
|
||||||
|
|
||||||
- script: |
|
|
||||||
set -e
|
|
||||||
SNAP_ROOT="$(pwd)/.build/linux/snap/$(VSCODE_ARCH)"
|
|
||||||
SNAP_EXTRACTED_PATH=$(find $SNAP_ROOT -maxdepth 1 -type d -name 'code-*')
|
|
||||||
SNAP_PATH=$(find $SNAP_ROOT -maxdepth 1 -type f -name '*.snap')
|
|
||||||
|
|
||||||
# SBOM tool doesn't like recursive symlinks
|
|
||||||
sudo find $SNAP_EXTRACTED_PATH -type l -delete
|
|
||||||
|
|
||||||
echo "##vso[task.setvariable variable=SNAP_EXTRACTED_PATH]$SNAP_EXTRACTED_PATH"
|
|
||||||
echo "##vso[task.setvariable variable=SNAP_PATH]$SNAP_PATH"
|
|
||||||
target:
|
|
||||||
container: host
|
|
||||||
displayName: Find host snap path & prepare for SBOM
|
|
||||||
|
|
||||||
- task: 1ES.PublishPipelineArtifact@1
|
|
||||||
inputs:
|
|
||||||
targetPath: $(SNAP_PATH)
|
|
||||||
artifactName: vscode_client_linux_$(VSCODE_ARCH)_snap
|
|
||||||
sbomBuildDropPath: $(SNAP_EXTRACTED_PATH)
|
|
||||||
sbomPackageName: "VS Code Linux $(VSCODE_ARCH) SNAP"
|
|
||||||
sbomPackageVersion: $(Build.SourceVersion)
|
|
||||||
displayName: Publish snap package
|
|
||||||
@@ -185,8 +185,6 @@ extends:
|
|||||||
sourceAnalysisPool: 1es-windows-2022-x64
|
sourceAnalysisPool: 1es-windows-2022-x64
|
||||||
createAdoIssuesForJustificationsForDisablement: false
|
createAdoIssuesForJustificationsForDisablement: false
|
||||||
containers:
|
containers:
|
||||||
snapcraft:
|
|
||||||
image: vscodehub.azurecr.io/vscode-linux-build-agent:snapcraft-x64
|
|
||||||
ubuntu-2004-arm64:
|
ubuntu-2004-arm64:
|
||||||
image: onebranch.azurecr.io/linux/ubuntu-2004-arm64:latest
|
image: onebranch.azurecr.io/linux/ubuntu-2004-arm64:latest
|
||||||
stages:
|
stages:
|
||||||
@@ -499,21 +497,6 @@ extends:
|
|||||||
VSCODE_RUN_BROWSER_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}
|
VSCODE_RUN_BROWSER_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}
|
||||||
VSCODE_RUN_REMOTE_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}
|
VSCODE_RUN_REMOTE_TESTS: ${{ eq(parameters.VSCODE_STEP_ON_IT, false) }}
|
||||||
|
|
||||||
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX, true)) }}:
|
|
||||||
- job: LinuxSnap
|
|
||||||
dependsOn:
|
|
||||||
- Linuxx64
|
|
||||||
container: snapcraft
|
|
||||||
variables:
|
|
||||||
VSCODE_ARCH: x64
|
|
||||||
templateContext:
|
|
||||||
authenticatedContainerRegistries:
|
|
||||||
- registry: onebranch.azurecr.io
|
|
||||||
tenant: AME
|
|
||||||
identity: 1ESPipelineIdentity
|
|
||||||
steps:
|
|
||||||
- template: build/azure-pipelines/linux/snap-build-linux.yml@self
|
|
||||||
|
|
||||||
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true)) }}:
|
- ${{ if and(eq(variables['VSCODE_CIBUILD'], false), eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true)) }}:
|
||||||
- job: LinuxArmhf
|
- job: LinuxArmhf
|
||||||
variables:
|
variables:
|
||||||
|
|||||||
Reference in New Issue
Block a user