diff --git a/ci/bash-lib.yml b/ci/bash-lib.yml index 8c9eef7e01..8522fa611e 100644 --- a/ci/bash-lib.yml +++ b/ci/bash-lib.yml @@ -32,27 +32,56 @@ steps: fi } open_pr() { - local branch title + local branch title body out pr_number header output branch="$1" title="$2" + body="${3:-}" + out="${4:-/dev/stdout}" + pr_number="${5:-}" + header=$(mktemp) + output=$(mktemp) + git branch -D $branch || true git checkout -b $branch git -c user.name="Azure Pipelines Daml Build" \ -c user.email="support@digitalasset.com" \ commit \ - -m "$(printf "$title\n\nCHANGELOG_BEGIN\nCHANGELOG_END\n")" + -m "$(printf "$title\n\n$body\n\nCHANGELOG_BEGIN\nCHANGELOG_END\n")" git push origin $branch:$branch jq -n --arg title "$title" \ --arg branch "$branch" \ - '{"title": $title, "head": $branch, "base": "main"}' \ + --arg body "$(printf "$body")" \ + '{"title": $title, "head": $branch, "base": "main", "body": $body}' \ | curl -H "Content-Type: application/json" \ -H "$(get_gh_auth_header)" \ --fail \ --silent \ - --include \ --location \ + --dump-header "$header" \ + --output "$output" \ -d @- \ https://api.github.com/repos/digital-asset/daml/pulls + if [ -n "$out" ]; then + cat "$header" "$output" > "$out" + fi + if [ -n "$pr_number" ]; then + jq '.number' "$output" > "$pr_number" + fi + } + request_pr_review() { + local pr_number reviewer + pr_number="$1" + reviewer="$2" + + jq -n --arg reviewer "$reviewer" \ + '{"reviewers": [$reviewer]}' \ + | curl -H "Content-Type: application/json" \ + -H "$(get_gh_auth_header)" \ + --fail \ + --silent \ + --location \ + -d @- \ + "https://api.github.com/repos/digital-asset/daml/pulls/$pr_number/requested_reviewers" } user_slack_handle() { local email sha diff --git a/ci/cron/wednesday.yml b/ci/cron/wednesday.yml index 0159f11301..b6f30d0b09 100644 --- a/ci/cron/wednesday.yml +++ b/ci/cron/wednesday.yml @@ -29,51 +29,8 @@ jobs: eval "$(./dev-env/bin/dade-assist)" source "$(bash_lib)" - AUTH="$(get_gh_auth_header)" - BASE_SHA=$(git rev-parse HEAD) - az extension add --name azure-devops - echo "$(System.AccessToken)" | az devops login --org "https://dev.azure.com/digitalasset" - reset() { - git checkout -f $BASE_SHA - git reset --hard - } - open_pr() { - local branch title body out pr_number - branch=$1 - title="$2" - body="$3" - out="${4:-}" - git branch -D $branch || true - git checkout -b $branch - git add . - git -c user.name="Azure Pipelines Daml Build" \ - -c user.email="support@digitalasset.com" \ - commit \ - -m "$(printf "$title\n\n$body\n\nCHANGELOG_BEGIN\nCHANGELOG_END\n")" - git push origin $branch:$branch - pr_number=$(jq -n \ - --arg branch "$branch" \ - --arg title "$title" \ - --arg body "$(printf "$body")" \ - '{"title": $title, "head": $branch, "base": "main", "body": $body}' \ - | curl -H "Content-Type: application/json" \ - -H "$AUTH" \ - --silent \ - --location \ - -d @- \ - https://api.github.com/repos/digital-asset/daml/pulls \ - | jq '.number') - az pipelines build queue \ - --branch $branch \ - --definition-name "PRs" \ - --org "https://dev.azure.com/digitalasset" \ - --project daml - if [ -n "$out" ]; then - echo $pr_number > $out - fi - } rotate() { local tmp next tmp=$(mktemp) @@ -84,8 +41,13 @@ jobs: } NEXT_GH=$(next_in_rotation_github) + BRANCH="rotate-after-release-$(date -I)" + TITLE="rotate release duty after $(date -I)" + BODY="@$NEXT_GH is taking care of [testing](https://github.com/digital-asset/daml/blob/main/release/RELEASE.md) today's release, so they get pushed back to the end of the line.\n\nPlease do not merge this before the release is fully tested." + PR_NUMBER=$(mktemp) rotate - open_pr "rotate-after-release-$(date -I)" \ - "rotate release duty after $(date -I)" \ - "@$NEXT_GH is taking care of [testing](https://github.com/digital-asset/daml/blob/main/release/RELEASE.md) today's release, so they get pushed back to the end of the line.\n\nPlease do not merge this before the release is fully tested." + git add . + open_pr "$BRANCH" "$TITLE" "$BODY" "/dev/null" "$PR_NUMBER" + trigger_azure $(System.AccessToken) "PRs" --branch $BRANCH + request_pr_review $(cat "$PR_NUMBER") "$NEXT_GH"