Files
atom/script/vsts/platforms/windows.yml
Jason Rudolph 9e03795c20 Provide the BUILD_ARCH env var for bootstrapping Windows env on VSTS
`script/vsts/windows-run.js` checks the BUILD_ARCH env var, so let's 
make sure it's populated.
2019-04-03 13:11:24 -04:00

183 lines
7.0 KiB
YAML

jobs:
- job: Windows
dependsOn: GetReleaseVersion
timeoutInMinutes: 180
strategy:
maxParallel: 2
matrix:
x64:
buildArch: x64
x86:
buildArch: x86
pool:
vmImage: vs2015-win2012r2 # needed for python 2.7 and gyp
variables:
ReleaseVersion: $[ dependencies.GetReleaseVersion.outputs['Version.ReleaseVersion'] ]
IsReleaseBranch: $[ dependencies.GetReleaseVersion.outputs['Version.IsReleaseBranch'] ]
IsSignedZipBranch: $[ dependencies.GetReleaseVersion.outputs['Version.IsSignedZipBranch'] ]
steps:
- task: NodeTool@0
inputs:
versionSpec: 8.9.3
displayName: Install Node.js 8.9.3
- script: |
ECHO Installing npm-windows-upgrade
npm install --global --production npm-windows-upgrade
ECHO Upgrading npm
npm-windows-upgrade --no-spinner --no-prompt --npm-version 6.2.0
displayName: Install npm 6.2.0
- script: |
cd script\vsts
npm install
displayName: Install Windows build dependencies
- script: |
node script\vsts\windows-run.js script\bootstrap.cmd
env:
BUILD_ARCH: $(buildArch)
displayName: Bootstrap build environment
- script: node script\vsts\windows-run.js script\lint.cmd
env:
BUILD_ARCH: $(buildArch)
displayName: Run linter
- script: |
IF NOT EXIST C:\tmp MKDIR C:\tmp
SET SQUIRREL_TEMP=C:\tmp
IF [%IS_RELEASE_BRANCH%]==[true] (
ECHO Creating production artifacts for release branch %BUILD_SOURCEBRANCHNAME%
node script\vsts\windows-run.js script\build.cmd --code-sign --compress-artifacts --create-windows-installer
) ELSE (
IF [%IS_SIGNED_ZIP_BRANCH%]==[true] (
ECHO Creating signed CI artifacts for branch %BUILD_SOURCEBRANCHNAME%
node script\vsts\windows-run.js script\build.cmd --code-sign --compress-artifacts
) ELSE (
ECHO Pull request build, no code signing will be performed
node script\vsts\windows-run.js script\build.cmd --compress-artifacts
)
)
env:
GITHUB_TOKEN: $(GITHUB_TOKEN)
BUILD_ARCH: $(buildArch)
ATOM_RELEASE_VERSION: $(ReleaseVersion)
ATOM_WIN_CODE_SIGNING_CERT_DOWNLOAD_URL: $(ATOM_WIN_CODE_SIGNING_CERT_DOWNLOAD_URL)
ATOM_WIN_CODE_SIGNING_CERT_PASSWORD: $(ATOM_WIN_CODE_SIGNING_CERT_PASSWORD)
IS_RELEASE_BRANCH: $(IsReleaseBranch)
IS_SIGNED_ZIP_BRANCH: $(IsSignedZipBranch)
displayName: Build Atom
- script: node script\vsts\windows-run.js script\test.cmd
env:
CI: true
CI_PROVIDER: VSTS
ATOM_JASMINE_REPORTER: list
TEST_JUNIT_XML_ROOT: $(Common.TestResultsDirectory)\junit
BUILD_ARCH: $(buildArch)
displayName: Run tests
condition: and(succeeded(), ne(variables['Atom.SkipTests'], 'true'))
- script: >
node script\vsts\windows-run.js script\postprocess-junit-results.cmd
--search-folder %TEST_JUNIT_XML_ROOT% --test-results-files "**/*.xml"
env:
TEST_JUNIT_XML_ROOT: $(Common.TestResultsDirectory)\junit
displayName: Post-process test results
condition: ne(variables['Atom.SkipTests'], 'true')
- task: PublishTestResults@2
inputs:
testResultsFormat: JUnit
searchFolder: $(Common.TestResultsDirectory)\junit
testResultsFiles: "**/*.xml"
mergeTestResults: true
testRunTitle: Windows $(buildArch)
condition: ne(variables['Atom.SkipTests'], 'true')
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.SourcesDirectory)/out/atom-x64-windows.zip
ArtifactName: atom-x64-windows.zip
ArtifactType: Container
displayName: Upload atom-x64-windows.zip
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'), eq(variables['buildArch'], 'x64'))
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.SourcesDirectory)/out/AtomSetup-x64.exe
ArtifactName: AtomSetup-x64.exe
ArtifactType: Container
displayName: Upload AtomSetup-x64.exe
condition: and(succeeded(), eq(variables['IsReleaseBranch'], 'true'), eq(variables['buildArch'], 'x64'))
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.SourcesDirectory)/out/atom-x64-$(ReleaseVersion)-full.nupkg
ArtifactName: atom-x64-$(ReleaseVersion)-full.nupkg
ArtifactType: Container
displayName: Upload atom-x64-$(ReleaseVersion)-full.nupkg
condition: and(succeeded(), eq(variables['IsReleaseBranch'], 'true'), eq(variables['buildArch'], 'x64'))
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.SourcesDirectory)/out/atom-x64-$(ReleaseVersion)-delta.nupkg
ArtifactName: atom-x64-$(ReleaseVersion)-delta.nupkg
ArtifactType: Container
displayName: Upload atom-x64-$(ReleaseVersion)-delta.nupkg
condition: and(succeeded(), eq(variables['IsReleaseBranch'], 'true'), eq(variables['buildArch'], 'x64'))
continueOnError: true # Nightly builds don't produce delta packages yet, so don't fail the build
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.SourcesDirectory)/out/RELEASES-x64
ArtifactName: RELEASES-x64
ArtifactType: Container
displayName: Upload RELEASES-x64
condition: and(succeeded(), eq(variables['IsReleaseBranch'], 'true'), eq(variables['buildArch'], 'x64'))
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.SourcesDirectory)/out/atom-windows.zip
ArtifactName: atom-windows.zip
ArtifactType: Container
displayName: Upload atom-windows.zip
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'), eq(variables['buildArch'], 'x86'))
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.SourcesDirectory)/out/AtomSetup.exe
ArtifactName: AtomSetup.exe
ArtifactType: Container
displayName: Upload AtomSetup.exe
condition: and(succeeded(), eq(variables['IsReleaseBranch'], 'true'), eq(variables['buildArch'], 'x86'))
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.SourcesDirectory)/out/atom-$(ReleaseVersion)-full.nupkg
ArtifactName: atom-$(ReleaseVersion)-full.nupkg
ArtifactType: Container
displayName: Upload atom-$(ReleaseVersion)-full.nupkg
condition: and(succeeded(), eq(variables['IsReleaseBranch'], 'true'), eq(variables['buildArch'], 'x86'))
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.SourcesDirectory)/out/atom-$(ReleaseVersion)-delta.nupkg
ArtifactName: atom-$(ReleaseVersion)-delta.nupkg
ArtifactType: Container
displayName: Upload atom-$(ReleaseVersion)-delta.nupkg
condition: and(succeeded(), eq(variables['IsReleaseBranch'], 'true'), eq(variables['buildArch'], 'x86'))
continueOnError: true # Nightly builds don't produce delta packages yet, so don't fail the build
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.SourcesDirectory)/out/RELEASES
ArtifactName: RELEASES
ArtifactType: Container
displayName: Upload RELEASES
condition: and(succeeded(), eq(variables['IsReleaseBranch'], 'true'), eq(variables['buildArch'], 'x86'))