diff --git a/azure-pipelines/build-and-release.yml b/azure-pipelines/build-and-release.yml new file mode 100644 index 00000000..329a136e --- /dev/null +++ b/azure-pipelines/build-and-release.yml @@ -0,0 +1,32 @@ +trigger: none +pr: none + +schedules: +- cron: "0 5 * * Mon-Fri" + displayName: Mon-Fri at 7:00 + branches: + include: + - main + +stages: +- stage: Build + jobs: + - job: Build + pool: + vmImage: 'windows-latest' + demands: + - Cmd + - npm + steps: + - template: build.yml + +- stage: Release + dependsOn: + - Build + condition: and(succeeded(), eq(variables['RELEASE'], 'true')) + pool: + vmImage: 'Ubuntu-16.04' + jobs: + - job: Release + steps: + - template: release.yml diff --git a/azure-pipelines/build.yml b/azure-pipelines/build.yml index 735a3096..31ff0a38 100644 --- a/azure-pipelines/build.yml +++ b/azure-pipelines/build.yml @@ -1,9 +1,3 @@ -pool: - vmImage: 'windows-latest' - demands: - - Cmd - - npm - steps: - task: ArchiveFiles@1 displayName: 'Archive source ' @@ -242,14 +236,4 @@ steps: displayName: 'Publish Test Results **/xunit.trx' inputs: testResultsFormat: VSTest - testResultsFiles: '**/xunit.trx' - -trigger: none -pr: none - -schedules: -- cron: "0 5 * * Mon-Fri" - displayName: Mon-Fri at 5:00AM - branches: - include: - - main \ No newline at end of file + testResultsFiles: '**/xunit.trx' \ No newline at end of file diff --git a/azure-pipelines/release.yml b/azure-pipelines/release.yml index dacc82cd..7a1c1f89 100644 --- a/azure-pipelines/release.yml +++ b/azure-pipelines/release.yml @@ -1,67 +1,51 @@ -stages: -- stage: Release - jobs: - - job: Release - pool: - vmImage: 'Ubuntu-16.04' - steps: - - task: AzureKeyVault@1 - displayName: 'Azure Key Vault: ado-secrets' - inputs: - azureSubscription: 'ClientToolsInfra_670062 (88d5392f-a34f-4769-b405-f597fc533613)' - KeyVaultName: 'ado-secrets' - SecretsFilter: 'github-distro-mixin-password,ado-crossplatbuildscripts-password' - - powershell: | - git clone https://$(ado-crossplatbuildscripts-password)@dev.azure.com/mssqltools/_git/CrossPlatBuildScripts - displayName: Clone CrossPlatBuildScripts - - task: DownloadPipelineArtifact@2 - displayName: 'Download pipeline source artifacts' - inputs: - buildType: 'specific' - project: 'ae14e11c-7eb2-46af-b588-471e6116d635' - definition: '309' - specificBuildWithTriggering: true - buildVersionToDownload: 'latest' - artifactName: 'source' - itemPattern: '**/source.tar.gz' - targetPath: '$(Agent.TempDirectory)/source' - - task: DownloadPipelineArtifact@2 - displayName: 'Download pipeline drop artifacts' - inputs: - buildType: 'specific' - project: 'ae14e11c-7eb2-46af-b588-471e6116d635' - definition: '309' - specificBuildWithTriggering: true - buildVersionToDownload: 'latest' - artifactName: 'drop' - itemPattern: '**/*' - targetPath: '$(Agent.TempDirectory)/drop' - - task: ExtractFiles@1 - displayName: 'Extract files ' - inputs: - archiveFilePatterns: '$(Agent.TempDirectory)/source/source.tar.gz' - destinationFolder: '$(System.DefaultWorkingDirectory)/sqltoolsservice' - - task: CopyFiles@2 - displayName: 'Copy Files to: $(System.DefaultWorkingDirectory)/sqltoolsservice/artifacts/package' - inputs: - SourceFolder: '$(Agent.TempDirectory)/drop' - TargetFolder: '$(System.DefaultWorkingDirectory)/sqltoolsservice/artifacts/package' - - task: PowerShell@2 - displayName: 'PowerShell Script' - inputs: - filePath: '$(System.DefaultWorkingDirectory)/CrossPlatBuildScripts/AutomatedReleases/sqltoolsserviceRelease.ps1' - arguments: '-workspace $(System.DefaultWorkingDirectory)/sqltoolsservice -minTag v3.0.0.0 -target main -tagFormat release -isPrerelease $false -artifactsBuildId $(Build.TriggeredBy.BuildId)' - workingDirectory: '$(System.DefaultWorkingDirectory)/sqltoolsservice' - env: - GITHUB_DISTRO_MIXIN_PASSWORD: $(github-distro-mixin-password) - ADO_CROSSPLATBUILDSCRIPTS_PASSWORD: $(ado-crossplatbuildscripts-password) - -trigger: none -pr: none - -schedules: -- cron: "0 7 * * Mon-Fri" - displayName: Mon-Fri at 7:00UTC - branches: - include: - - main \ No newline at end of file +steps: +- task: AzureKeyVault@1 + displayName: 'Azure Key Vault: ado-secrets' + inputs: + azureSubscription: 'ClientToolsInfra_670062 (88d5392f-a34f-4769-b405-f597fc533613)' + KeyVaultName: 'ado-secrets' + SecretsFilter: 'github-distro-mixin-password,ado-crossplatbuildscripts-password' +- powershell: | + git clone https://$(ado-crossplatbuildscripts-password)@dev.azure.com/mssqltools/_git/CrossPlatBuildScripts + displayName: Clone CrossPlatBuildScripts +- task: DownloadPipelineArtifact@2 + displayName: 'Download pipeline source artifacts' + inputs: + buildType: 'specific' + project: 'ae14e11c-7eb2-46af-b588-471e6116d635' + definition: '309' + specificBuildWithTriggering: true + buildVersionToDownload: 'latest' + artifactName: 'source' + itemPattern: '**/source.tar.gz' + targetPath: '$(Agent.TempDirectory)/source' +- task: DownloadPipelineArtifact@2 + displayName: 'Download pipeline drop artifacts' + inputs: + buildType: 'specific' + project: 'ae14e11c-7eb2-46af-b588-471e6116d635' + definition: '309' + specificBuildWithTriggering: true + buildVersionToDownload: 'latest' + artifactName: 'drop' + itemPattern: '**/*' + targetPath: '$(Agent.TempDirectory)/drop' +- task: ExtractFiles@1 + displayName: 'Extract files ' + inputs: + archiveFilePatterns: '$(Agent.TempDirectory)/source/source.tar.gz' + destinationFolder: '$(System.DefaultWorkingDirectory)/sqltoolsservice' +- task: CopyFiles@2 + displayName: 'Copy Files to: $(System.DefaultWorkingDirectory)/sqltoolsservice/artifacts/package' + inputs: + SourceFolder: '$(Agent.TempDirectory)/drop' + TargetFolder: '$(System.DefaultWorkingDirectory)/sqltoolsservice/artifacts/package' +- task: PowerShell@2 + displayName: 'PowerShell Script' + inputs: + filePath: '$(System.DefaultWorkingDirectory)/CrossPlatBuildScripts/AutomatedReleases/sqltoolsserviceRelease.ps1' + arguments: '-workspace $(System.DefaultWorkingDirectory)/sqltoolsservice -minTag v3.0.0.0 -target main -tagFormat release -isPrerelease $false -artifactsBuildId $(Build.BuildId)' + workingDirectory: '$(System.DefaultWorkingDirectory)/sqltoolsservice' + env: + GITHUB_DISTRO_MIXIN_PASSWORD: $(github-distro-mixin-password) + ADO_CROSSPLATBUILDSCRIPTS_PASSWORD: $(ado-crossplatbuildscripts-password) \ No newline at end of file