-
Notifications
You must be signed in to change notification settings - Fork 201
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
a20c787
commit dff4d50
Showing
1 changed file
with
151 additions
and
151 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,154 +1,154 @@ | ||
# Copyright (c) 2024 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
trigger: none | ||
|
||
pr: | ||
autoCancel: true # cancel previous builds on push | ||
branches: | ||
include: | ||
- main | ||
- main-2.x | ||
- release/* | ||
|
||
jobs: | ||
- template: build.yml | ||
parameters: | ||
test_mode: pr | ||
- template: check-for-release-job.yml | ||
|
||
|
||
- job: check_standard_change_label | ||
dependsOn: | ||
- check_for_release | ||
condition: and(eq(variables['Build.Reason'], 'PullRequest'), | ||
eq(dependencies.check_for_release.outputs['out.is_release'], 'true')) | ||
pool: | ||
name: 'ubuntu_20_04' | ||
demands: assignment -equals default | ||
steps: | ||
- checkout: self | ||
- bash: | | ||
set -euo pipefail | ||
curl https://api.github.com/repos/digital-asset/daml/pulls/$PR -s | jq -r '.labels[].name' | grep -q '^Standard-Change$' | ||
env: | ||
PR: $(System.PullRequest.PullRequestNumber) | ||
# required for collect_build_data | ||
- job: release | ||
condition: false | ||
|
||
- job: notify_release_pr | ||
condition: and(not(canceled()), | ||
or(startsWith(variables['Build.SourceBranchName'], 'auto-release-pr-'), | ||
startsWith(variables['System.PullRequest.SourceBranch'], 'auto-release-pr-')), | ||
eq(dependencies.check_for_release.outputs['out.is_release'], 'true')) | ||
dependsOn: | ||
- git_sha | ||
- collect_build_data | ||
- check_for_release | ||
- platform_independence_test | ||
pool: | ||
name: 'ubuntu_20_04' | ||
demands: assignment -equals default | ||
variables: | ||
branch_sha: $[ dependencies.git_sha.outputs['out.branch'] ] | ||
status: $[ dependencies.collect_build_data.result ] | ||
is_release: $[ dependencies.check_for_release.outputs['out.is_release'] ] | ||
steps: | ||
- checkout: self | ||
persistCredentials: true | ||
- template: bash-lib.yml | ||
parameters: | ||
var_name: bash-lib | ||
- bash: | | ||
set -euo pipefail | ||
source $(bash-lib) | ||
AUTH="$(get_gh_auth_header)" | ||
PR=$(curl -H "$AUTH" \ | ||
-H "Accept: application/vnd.github.groot-preview+json" \ | ||
-s -f \ | ||
"https://api.github.com/repos/digital-asset/daml/commits/$(git rev-parse HEAD)/pulls" \ | ||
| jq '.[0].number' \ | ||
|| echo "") | ||
# Note: if we somehow fail to resolve the PR number from the GitHub | ||
# API, there is still value in getting the notification on Slack, as | ||
# we do have the build number and from there we can click through to | ||
# the PR. Hence the `|| echo ""`. | ||
PR_HANDLER=$(next_in_rotation_slack) | ||
case "$(status)" in | ||
Succeeded*) | ||
msg="has succeeded! Next step is to approve & merge. This is probably a good time to start your Windows testing machine." | ||
;; | ||
Failed*) | ||
msg="has failed. Please investigate." | ||
;; | ||
*) | ||
# Should not be reached, but who knows? | ||
msg="has completed with status $(status). See <https://github.com/digital-asset/daml/blob/main/release/RELEASE.md|RELEASE.md> for what to do next." | ||
;; | ||
esac | ||
tell_slack "<@${PR_HANDLER}> <https://dev.azure.com/digitalasset/daml/_build/results?buildId=$(Build.BuildId)|Build $(Build.BuildId)> for release PR <https://github.com/digital-asset/daml/pull/${PR}|#${PR}> $msg" | ||
- job: notify_user | ||
# No Slack tokens on forks | ||
condition: and(not(canceled()), | ||
eq(variables['System.PullRequest.IsFork'], 'False')) | ||
dependsOn: | ||
- git_sha | ||
- collect_build_data | ||
- check_for_release | ||
pool: | ||
name: 'ubuntu_20_04' | ||
demands: assignment -equals default | ||
variables: | ||
pr.num: $[ variables['System.PullRequest.PullRequestNumber'] ] | ||
branch_sha: $[ dependencies.git_sha.outputs['out.branch'] ] | ||
build_status: $[ dependencies.collect_build_data.result ] | ||
steps: | ||
- template: bash-lib.yml | ||
parameters: | ||
var_name: bash-lib | ||
- bash: | | ||
set -euo pipefail | ||
source $(bash-lib) | ||
user=$(user_slack_handle $(branch_sha)) | ||
if [ "$user" != "" ]; then | ||
tell_slack "<@${user}> <https://dev.azure.com/digitalasset/daml/_build/results?buildId=$(Build.BuildId)|Build $(Build.BuildId)> for <https://github.com/digital-asset/daml/pull/$(pr.num)|PR $(pr.num)> has completed with status $(build_status)." \ | ||
"$(Slack.team-daml-ci)" | ||
fi | ||
if [ "$(git log -n1 --format="%(trailers:key=tell-slack,valueonly)" HEAD)" = "canton" ]; then | ||
if [ "$(build_status)" = "Failed" ]; then | ||
tell_slack "<https://dev.azure.com/digitalasset/daml/_build/results?buildId=$(Build.BuildId)|Build $(Build.BuildId)> for <https://github.com/digital-asset/daml/pull/$(pr.num)|canton update PR $(pr.num)> has completed with status $(build_status)." \ | ||
"$(Slack.team-canton-notifications)" | ||
fi | ||
fi | ||
- job: self_service_compat_test | ||
pool: | ||
name: 'ubuntu_20_04' | ||
demands: assignment -equals default | ||
condition: eq(variables['Build.Reason'], 'PullRequest') | ||
steps: | ||
- checkout: self | ||
- template: bash-lib.yml | ||
parameters: | ||
var_name: bash-lib | ||
- bash: | | ||
set -euo pipefail | ||
cd sdk | ||
eval "$(./dev-env/bin/dade-assist)" | ||
source $(bash-lib) | ||
COMMIT=$(git rev-parse HEAD^2) | ||
REQUEST=$(git log -n1 --format="%(trailers:key=run-full-compat,valueonly)" $COMMIT) | ||
if [ $REQUEST == true ]; then | ||
# Unfortunately recovering the actual branch name is tricky | ||
trigger_azure $AZURE_TOKEN digital-asset.daml-daily-compat --commit-id $COMMIT --branch not-main | ||
fi | ||
env: | ||
AZURE_TOKEN: $(System.AccessToken) | ||
#trigger: none | ||
# | ||
#pr: | ||
# autoCancel: true # cancel previous builds on push | ||
# branches: | ||
# include: | ||
# - main | ||
# - main-2.x | ||
# - release/* | ||
# | ||
#jobs: | ||
#- template: build.yml | ||
# parameters: | ||
# test_mode: pr | ||
#- template: check-for-release-job.yml | ||
# | ||
# | ||
#- job: check_standard_change_label | ||
# dependsOn: | ||
# - check_for_release | ||
# condition: and(eq(variables['Build.Reason'], 'PullRequest'), | ||
# eq(dependencies.check_for_release.outputs['out.is_release'], 'true')) | ||
# pool: | ||
# name: 'ubuntu_20_04' | ||
# demands: assignment -equals default | ||
# steps: | ||
# - checkout: self | ||
# - bash: | | ||
# set -euo pipefail | ||
# | ||
# curl https://api.github.com/repos/digital-asset/daml/pulls/$PR -s | jq -r '.labels[].name' | grep -q '^Standard-Change$' | ||
# env: | ||
# PR: $(System.PullRequest.PullRequestNumber) | ||
# | ||
## required for collect_build_data | ||
#- job: release | ||
# condition: false | ||
# | ||
#- job: notify_release_pr | ||
# condition: and(not(canceled()), | ||
# or(startsWith(variables['Build.SourceBranchName'], 'auto-release-pr-'), | ||
# startsWith(variables['System.PullRequest.SourceBranch'], 'auto-release-pr-')), | ||
# eq(dependencies.check_for_release.outputs['out.is_release'], 'true')) | ||
# dependsOn: | ||
# - git_sha | ||
# - collect_build_data | ||
# - check_for_release | ||
# - platform_independence_test | ||
# pool: | ||
# name: 'ubuntu_20_04' | ||
# demands: assignment -equals default | ||
# variables: | ||
# branch_sha: $[ dependencies.git_sha.outputs['out.branch'] ] | ||
# status: $[ dependencies.collect_build_data.result ] | ||
# is_release: $[ dependencies.check_for_release.outputs['out.is_release'] ] | ||
# steps: | ||
# - checkout: self | ||
# persistCredentials: true | ||
# - template: bash-lib.yml | ||
# parameters: | ||
# var_name: bash-lib | ||
# - bash: | | ||
# set -euo pipefail | ||
# | ||
# source $(bash-lib) | ||
# | ||
# AUTH="$(get_gh_auth_header)" | ||
# PR=$(curl -H "$AUTH" \ | ||
# -H "Accept: application/vnd.github.groot-preview+json" \ | ||
# -s -f \ | ||
# "https://api.github.com/repos/digital-asset/daml/commits/$(git rev-parse HEAD)/pulls" \ | ||
# | jq '.[0].number' \ | ||
# || echo "") | ||
# # Note: if we somehow fail to resolve the PR number from the GitHub | ||
# # API, there is still value in getting the notification on Slack, as | ||
# # we do have the build number and from there we can click through to | ||
# # the PR. Hence the `|| echo ""`. | ||
# PR_HANDLER=$(next_in_rotation_slack) | ||
# | ||
# case "$(status)" in | ||
# Succeeded*) | ||
# msg="has succeeded! Next step is to approve & merge. This is probably a good time to start your Windows testing machine." | ||
# ;; | ||
# Failed*) | ||
# msg="has failed. Please investigate." | ||
# ;; | ||
# *) | ||
# # Should not be reached, but who knows? | ||
# msg="has completed with status $(status). See <https://github.com/digital-asset/daml/blob/main/release/RELEASE.md|RELEASE.md> for what to do next." | ||
# ;; | ||
# esac | ||
# tell_slack "<@${PR_HANDLER}> <https://dev.azure.com/digitalasset/daml/_build/results?buildId=$(Build.BuildId)|Build $(Build.BuildId)> for release PR <https://github.com/digital-asset/daml/pull/${PR}|#${PR}> $msg" | ||
# | ||
#- job: notify_user | ||
# # No Slack tokens on forks | ||
# condition: and(not(canceled()), | ||
# eq(variables['System.PullRequest.IsFork'], 'False')) | ||
# dependsOn: | ||
# - git_sha | ||
# - collect_build_data | ||
# - check_for_release | ||
# pool: | ||
# name: 'ubuntu_20_04' | ||
# demands: assignment -equals default | ||
# variables: | ||
# pr.num: $[ variables['System.PullRequest.PullRequestNumber'] ] | ||
# branch_sha: $[ dependencies.git_sha.outputs['out.branch'] ] | ||
# build_status: $[ dependencies.collect_build_data.result ] | ||
# steps: | ||
# - template: bash-lib.yml | ||
# parameters: | ||
# var_name: bash-lib | ||
# - bash: | | ||
# set -euo pipefail | ||
# source $(bash-lib) | ||
# | ||
# user=$(user_slack_handle $(branch_sha)) | ||
# if [ "$user" != "" ]; then | ||
# tell_slack "<@${user}> <https://dev.azure.com/digitalasset/daml/_build/results?buildId=$(Build.BuildId)|Build $(Build.BuildId)> for <https://github.com/digital-asset/daml/pull/$(pr.num)|PR $(pr.num)> has completed with status $(build_status)." \ | ||
# "$(Slack.team-daml-ci)" | ||
# fi | ||
# if [ "$(git log -n1 --format="%(trailers:key=tell-slack,valueonly)" HEAD)" = "canton" ]; then | ||
# if [ "$(build_status)" = "Failed" ]; then | ||
# tell_slack "<https://dev.azure.com/digitalasset/daml/_build/results?buildId=$(Build.BuildId)|Build $(Build.BuildId)> for <https://github.com/digital-asset/daml/pull/$(pr.num)|canton update PR $(pr.num)> has completed with status $(build_status)." \ | ||
# "$(Slack.team-canton-notifications)" | ||
# fi | ||
# fi | ||
# | ||
#- job: self_service_compat_test | ||
# pool: | ||
# name: 'ubuntu_20_04' | ||
# demands: assignment -equals default | ||
# condition: eq(variables['Build.Reason'], 'PullRequest') | ||
# steps: | ||
# - checkout: self | ||
# - template: bash-lib.yml | ||
# parameters: | ||
# var_name: bash-lib | ||
# - bash: | | ||
# set -euo pipefail | ||
# cd sdk | ||
# eval "$(./dev-env/bin/dade-assist)" | ||
# source $(bash-lib) | ||
# COMMIT=$(git rev-parse HEAD^2) | ||
# REQUEST=$(git log -n1 --format="%(trailers:key=run-full-compat,valueonly)" $COMMIT) | ||
# if [ $REQUEST == true ]; then | ||
# # Unfortunately recovering the actual branch name is tricky | ||
# trigger_azure $AZURE_TOKEN digital-asset.daml-daily-compat --commit-id $COMMIT --branch not-main | ||
# fi | ||
# env: | ||
# AZURE_TOKEN: $(System.AccessToken) |