Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 64 additions & 4 deletions .azure-pipelines/pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -286,11 +286,12 @@ stages:
AZP_BRANCH: $(Build.SourceBranch)

- stage: linux_x64
dependsOn: ["precheck"]
dependsOn: ["env", "precheck"]
# For post-submit builds, continue even if precheck fails
condition: and(not(canceled()), or(succeeded(), eq(variables['PostSubmit'], true)))
jobs:
- job: release
condition: and(not(canceled()), ne(stageDependencies.env.repo.outputs['changed.mobileOnly'], 'true'), ne(stageDependencies.env.repo.outputs['changed.docsOnly'], 'true'))
timeoutInMinutes: 120
pool:
vmImage: "ubuntu-20.04"
Expand All @@ -299,12 +300,26 @@ stages:
parameters:
ciTarget: bazel.release

- job: released
dependsOn: ["release"]
pool:
vmImage: "ubuntu-20.04"
# This condition ensures that this (required) job passes if all of
# the preceeding jobs either pass or are skipped
# adapted from:
# https://learn.microsoft.com/en-us/azure/devops/pipelines/process/expressions?view=azure-devops#job-to-job-dependencies-within-one-stage
condition: in(dependencies.release.result, 'Succeeded', 'SucceededWithIssues', 'Skipped')
steps:
- bash: |
echo "linux_x64 released"

- stage: linux_arm64
dependsOn: ["precheck"]
dependsOn: ["env", "precheck"]
# For post-submit builds, continue even if precheck fails
condition: and(not(canceled()), or(succeeded(), eq(variables['PostSubmit'], true)))
jobs:
- job: release
condition: and(not(canceled()), ne(stageDependencies.env.repo.outputs['changed.mobileOnly'], 'true'), ne(stageDependencies.env.repo.outputs['changed.docsOnly'], 'true'))
timeoutInMinutes: 120
pool: "arm-large"
steps:
Expand All @@ -316,6 +331,19 @@ stages:
artifactSuffix: ".arm64"
bazelBuildExtraOptions: "--sandbox_base=/tmp/sandbox_base"

- job: released
dependsOn: ["release"]
pool:
vmImage: "ubuntu-20.04"
# This condition ensures that this (required) job passes if all of
# the preceeding jobs either pass or are skipped
# adapted from:
# https://learn.microsoft.com/en-us/azure/devops/pipelines/process/expressions?view=azure-devops#job-to-job-dependencies-within-one-stage
condition: in(dependencies.release.result, 'Succeeded', 'SucceededWithIssues', 'Skipped')
steps:
- bash: |
echo "linux_arm64 released"

- stage: distribution
dependsOn: ["linux_arm64", "linux_x64"]
jobs:
Expand Down Expand Up @@ -724,9 +752,10 @@ stages:
echo "examples verifiied"

- stage: macos
dependsOn: ["precheck"]
dependsOn: ["env", "precheck"]
jobs:
- job: test
condition: and(not(canceled()), succeeded(), ne(stageDependencies.env.repo.outputs['changed.mobileOnly'], 'true'), ne(stageDependencies.env.repo.outputs['changed.docsOnly'], 'true'))
timeoutInMinutes: 180
pool:
vmImage: "macos-11"
Expand Down Expand Up @@ -758,10 +787,24 @@ stages:
REPO_URI: $(Build.Repository.Uri)
BUILD_URI: $(Build.BuildUri)

- job: tested
dependsOn: ["test"]
pool:
vmImage: "ubuntu-20.04"
# This condition ensures that this (required) job passes if all of
# the preceeding jobs either pass or are skipped
# adapted from:
# https://learn.microsoft.com/en-us/azure/devops/pipelines/process/expressions?view=azure-devops#job-to-job-dependencies-within-one-stage
condition: in(dependencies.test.result, 'Succeeded', 'SucceededWithIssues', 'Skipped')
steps:
- bash: |
echo "macos tested"

- stage: windows
dependsOn: ["precheck"]
dependsOn: ["env", "precheck"]
jobs:
- job: release
condition: and(not(canceled()), succeeded(), ne(stageDependencies.env.repo.outputs['changed.mobileOnly'], 'true'), ne(stageDependencies.env.repo.outputs['changed.docsOnly'], 'true'))
timeoutInMinutes: 180
pool:
vmImage: "windows-2019"
Expand Down Expand Up @@ -800,6 +843,7 @@ stages:
condition: always()

- job: docker
condition: and(not(canceled()), succeeded(), ne(stageDependencies.env.repo.outputs['changed.mobileOnly'], 'true'), ne(stageDependencies.env.repo.outputs['changed.docsOnly'], 'true'))
strategy:
matrix:
windows2019:
Expand Down Expand Up @@ -845,3 +889,19 @@ stages:
artifactName: docker_windows
timeoutInMinutes: 10
condition: always()

- job: released
dependsOn: ["release", "docker"]
pool:
vmImage: "ubuntu-20.04"
# This condition ensures that this (required) job passes if all of
# the preceeding jobs either pass or are skipped
# adapted from:
# https://learn.microsoft.com/en-us/azure/devops/pipelines/process/expressions?view=azure-devops#job-to-job-dependencies-within-one-stage
condition: |
and(
in(dependencies.release.result, 'Succeeded', 'SucceededWithIssues', 'Skipped'),
in(dependencies.docker.result, 'Succeeded', 'SucceededWithIssues', 'Skipped'))
steps:
- bash: |
echo "windows released"