diff --git a/build/azure-pipelines/docker/createDrop.sh b/build/azure-pipelines/docker/createDrop.sh new file mode 100755 index 0000000000..d03617a309 --- /dev/null +++ b/build/azure-pipelines/docker/createDrop.sh @@ -0,0 +1,13 @@ +set -e +REPO="$(pwd)" +ROOT="$REPO/.." + +PLATFORM_LINUX="linux-x64" +SERVER_BUILD_NAME="azuredatastudio-server-$PLATFORM_LINUX" + +# create docker +mkdir -p $REPO/.build/docker +docker build -t azuredatastudio-server -f $REPO/build/azure-pipelines/docker/Dockerfile $ROOT/$SERVER_BUILD_NAME +docker save azuredatastudio-server | gzip > $REPO/.build/docker/azuredatastudio-server-docker.tar.gz + +node build/azure-pipelines/common/copyArtifacts.js diff --git a/build/azure-pipelines/docker/sql-product-build-docker.yml b/build/azure-pipelines/docker/sql-product-build-docker.yml new file mode 100644 index 0000000000..ac06fa6bca --- /dev/null +++ b/build/azure-pipelines/docker/sql-product-build-docker.yml @@ -0,0 +1,96 @@ +steps: + - task: NodeTool@0 + inputs: + versionSpec: '10.15.1' + + - task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3 + inputs: + versionSpec: "1.x" + + - task: AzureKeyVault@1 + displayName: 'Azure Key Vault: Get Secrets' + inputs: + azureSubscription: 'ClientToolsInfra_670062 (88d5392f-a34f-4769-b405-f597fc533613)' + KeyVaultName: ado-secrets + SecretsFilter: 'github-distro-mixin-password' + + - script: | + set -e + cat << EOF > ~/.netrc + machine github.com + login azuredatastudio + password $(github-distro-mixin-password) + EOF + + git config user.email "andresse@microsoft.com" + git config user.name "AzureDataStudio" + displayName: Prepare tooling + + - script: | + set -e + git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git" + git fetch distro + git merge $(node -p "require('./package.json').distro") + displayName: Merge distro + + - task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1 + inputs: + keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock' + targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules' + vstsFeed: 'BuildCache' + + - script: | + set -e + CHILD_CONCURRENCY=1 yarn --frozen-lockfile + displayName: Install dependencies + env: + GITHUB_TOKEN: $(github-distro-mixin-password) + condition: and(succeeded(), ne(variables['CacheRestored'], 'true')) + + - task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1 + inputs: + keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock' + targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules' + vstsFeed: 'BuildCache' + condition: and(succeeded(), ne(variables['CacheRestored'], 'true')) + + - script: | + set -e + yarn postinstall + displayName: Run postinstall scripts + condition: and(succeeded(), eq(variables['CacheRestored'], 'true')) + + - script: | + set -e + node build/azure-pipelines/mixin + displayName: Mix in quality + + - task: DownloadPipelineArtifact@2 + inputs: + buildType: 'current' + targetPath: '$(Build.SourcesDirectory)/.build' + artifactName: drop + itemPattern: | + drop/linux/server/*.tar.gz + + - script: | + set -e + for f in $(Build.SourcesDirectory)/.build/linux/server/*.tar.gz + do + tar -C $(agent.builddirectory) -zxvf $f + rm $f + done + displayName: Unzip artifacts + + - script: | + set -e + ./build/azure-pipelines/docker/createDrop.sh + displayName: Create Drop + + - task: PublishBuildArtifacts@1 + displayName: 'Publish Artifact: drop' + + - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0 + displayName: 'Component Detection' + inputs: + failOnAlert: true diff --git a/build/azure-pipelines/linux/createDrop.sh b/build/azure-pipelines/linux/createDrop.sh index f246cd8de3..c1b0a7c6ed 100755 --- a/build/azure-pipelines/linux/createDrop.sh +++ b/build/azure-pipelines/linux/createDrop.sh @@ -29,9 +29,4 @@ SERVER_TARBALL_PATH="$REPO/.build/linux/server/$SERVER_TARBALL_FILENAME" rm -rf $ROOT/azuredatastudio-server-*.tar.* (cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME) -# create docker -mkdir -p $REPO/.build/docker -docker build -t azuredatastudio-server -f $REPO/build/azure-pipelines/docker/Dockerfile $ROOT/$SERVER_BUILD_NAME -docker save azuredatastudio-server | gzip > $REPO/.build/docker/azuredatastudio-server-docker.tar.gz - node build/azure-pipelines/common/copyArtifacts.js diff --git a/build/azure-pipelines/sql-product-build.yml b/build/azure-pipelines/sql-product-build.yml index 93ccbdfbfb..4ace4f811f 100644 --- a/build/azure-pipelines/sql-product-build.yml +++ b/build/azure-pipelines/sql-product-build.yml @@ -37,6 +37,16 @@ jobs: - template: linux/sql-product-build-linux.yml timeoutInMinutes: 70 +- job: Docker + condition: eq(variables['VSCODE_BUILD_DOCKER'], 'true') + pool: + vmImage: 'Ubuntu-16.04' + container: linux-x64 + dependsOn: + - Linux + steps: + - template: docker/sql-product-build-docker.yml + - job: Windows condition: eq(variables['VSCODE_BUILD_WIN32'], 'true') pool: @@ -64,6 +74,7 @@ jobs: dependsOn: - macOS - Linux + - Docker - Windows - Windows_Test steps: diff --git a/package.json b/package.json index 094fc4e114..8b90687512 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "azuredatastudio", "version": "1.17.0", - "distro": "b5ba37f6b0c11bd7c826d81dec82c379633e0e27", + "distro": "e08a809780402678e4367488126b47bb761d94a1", "author": { "name": "Microsoft Corporation" },