diff --git a/.github/workflows/add_milestone.yml b/.github/workflows/add_milestone.yml index 6bcd28e967c2e..f6551f1a52f92 100644 --- a/.github/workflows/add_milestone.yml +++ b/.github/workflows/add_milestone.yml @@ -29,20 +29,11 @@ jobs: - name: Get repo current milestone id: current-milestone run: | - if [[ ${GITHUB_REF##*/} =~ ^7\.[0-9]+\.[0-9]+$ ]]; then - # If we're on a release branch, set the milestone to the latest release milestone found. - MILESTONE=$(gh release list | grep -o $(echo ${GITHUB_REF##*/} | sed 's/x/[0-9]*/g') | sort -uV | tail -1) - if [ -z "$MILESTONE" ]; then - echo "Error: Couldn't get the latest release milestone from Github." - exit 1 - fi - else - # Else use the current_milestone field in the release.json file. - MILESTONE=$(cat release.json | jq -r .current_milestone) - if [ -z "$MILESTONE" ]; then - echo "Error: Couldn't find the current_milestone field in the release.json file." - exit 1 - fi + # Use the current_milestone field in the release.json file. + MILESTONE=$(cat release.json | jq -r .current_milestone) + if [ -z "$MILESTONE" ]; then + echo "Error: Couldn't find the current_milestone field in the release.json file." + exit 1 fi if [[ ! $MILESTONE =~ ^7\.[0-9]+\.[0-9]+$ ]]; then echo "Error: Malformed milestone $MILESTONE. It should be of the form '7.x.y'." diff --git a/tasks/libs/releasing/json.py b/tasks/libs/releasing/json.py index 6438195a42f07..2f702a6c7caf9 100644 --- a/tasks/libs/releasing/json.py +++ b/tasks/libs/releasing/json.py @@ -337,6 +337,12 @@ def set_new_release_branch(branch): _save_release_json(rj) +def set_current_milestone(milestone): + rj = load_release_json() + rj["current_milestone"] = milestone + _save_release_json(rj) + + def generate_repo_data(ctx, warning_mode, next_version, release_branch): if warning_mode: # Warning mode is used to warn integrations so that they prepare their release version in advance. diff --git a/tasks/release.py b/tasks/release.py index 56df2c1aec64d..07deec8e778ec 100644 --- a/tasks/release.py +++ b/tasks/release.py @@ -63,6 +63,7 @@ _save_release_json, generate_repo_data, load_release_json, + set_current_milestone, set_new_release_branch, update_release_json, ) @@ -304,6 +305,14 @@ def finish(ctx, release_branch, upstream="origin"): raise Exit(color_message("Aborting.", "red"), code=1) update_release_json(new_version, new_version) + next_milestone = next_final_version(ctx, release_branch, True) + next_milestone = next_milestone.next_version(bump_patch=True) + print(f"Creating the {next_milestone} milestone...") + + gh = GithubAPI() + gh.create_milestone(str(next_milestone), exist_ok=True) + set_current_milestone(str(next_milestone)) + # Step 2: Update internal module dependencies update_modules(ctx, version=str(new_version)) @@ -1305,9 +1314,7 @@ def update_current_milestone(ctx, major_version: int = 7, upstream="origin"): with agent_context(ctx, get_default_branch(major=major_version)): milestone_branch = f"release_milestone-{int(time.time())}" ctx.run(f"git switch -c {milestone_branch}") - rj = load_release_json() - rj["current_milestone"] = f"{next}" - _save_release_json(rj) + set_current_milestone(next) # Commit release.json ctx.run("git add release.json") ok = try_git_command(ctx, f"git commit -m 'Update release.json with current milestone to {next}'")