diff --git a/.github/workflows/update_tag.yml b/.github/workflows/update_last_successful_branch.yml similarity index 84% rename from .github/workflows/update_tag.yml rename to .github/workflows/update_last_successful_branch.yml index 6348b9e3cd05d..e7c85bc4632a4 100644 --- a/.github/workflows/update_tag.yml +++ b/.github/workflows/update_last_successful_branch.yml @@ -19,7 +19,7 @@ # We use it to cover windows and mac builds # Jenkins is still the primary CI -name: Update last-successful tag +name: Update last-successful branch on: workflow_dispatch: @@ -27,19 +27,19 @@ on: cron: 15/* * * * * concurrency: - group: update-last-successful-tag + group: update-last-successful-branch cancel-in-progress: true jobs: - update-last-successful-tag: + update-last-successful-branch: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 with: submodules: "recursive" - - name: Update last-successful tag + - name: Update last-successful branch env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | set -eux - python tests/scripts/update_tag.py || echo step failed + python tests/scripts/update_branch.py || echo step failed diff --git a/tests/scripts/update_tag.py b/tests/scripts/update_branch similarity index 89% rename from tests/scripts/update_tag.py rename to tests/scripts/update_branch index 2ce0469da7985..ef2acae6a5fba 100755 --- a/tests/scripts/update_tag.py +++ b/tests/scripts/update_branch @@ -117,29 +117,26 @@ def commit_passed_ci(commit: Dict[str, Any]) -> bool: return passed_ci -def update_tag(user: str, repo: str, sha: str, tag_name: str, message: str) -> None: +def update_branch(user: str, repo: str, sha: str, branch_name: str, message: str) -> None: with tempfile.TemporaryDirectory() as f: # Clone only a specific commit: https://stackoverflow.com/a/3489576 git(["init"], cwd=f) git(["remote", "add", "origin", f"git@github.com:{user}/{repo}.git"], cwd=f) git(["fetch", "origin", sha], cwd=f) git(["reset", "--hard", "FETCH_HEAD"], cwd=f) - - # Create a push the tag - git(["tag", "--annotate", tag_name, f"--message={message}"], cwd=f) - git(["push", "origin", "--force", tag_name], cwd=f) - print(f"Pushed tag {tag_name} with commit {sha}") + git(["checkout", "-b", branch_name], cwd=f) + + # Create and push the branch + git(["push", "origin", "--force", branch_name], cwd=f) + print(f"Pushed branch {branch_name} with commit {sha}") if __name__ == "__main__": - help = "Push the a tag to the last commit that passed all CI runs" + help = "Push the a branch to the last commit that passed all CI runs" parser = argparse.ArgumentParser(description=help) parser.add_argument("--remote", default="origin", help="ssh remote to parse") parser.add_argument("--dry-run", action="store_true", help="don't submit to GitHub") - parser.add_argument("--tag", default="last-successful", help="tag name") - parser.add_argument( - "--message", default="last 'main' commit that passed CI", help="label to add" - ) + parser.add_argument("--branch", default="last-successful", help="branch name") parser.add_argument( "--testonly-json", help="(testing) data to use instead of fetching from GitHub" ) @@ -167,14 +164,14 @@ def update_tag(user: str, repo: str, sha: str, tag_name: str, message: str) -> N if commit_passed_ci(commit): print(f"Found last good commit: {commit['oid']}: {commit['messageHeadline']}") if not args.dry_run: - update_tag( + update_branch( user=user, repo=repo, sha=commit["oid"], - tag_name=args.tag, + branch_name=args.branch, message=args.message, ) - # Nothing to do after updating the tag, exit early + # Nothing to do after updating the branch, exit early exit(0) # No good commit found, proceed to next page of results