diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index e3a5fb86b8c5..1f6136e04495 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -317,9 +317,13 @@ jobs: - name: Update Release Notes shell: bash if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} - run: | - tools changelog update-release-notes --draft - tools changelog update-release-notes + run: |if [ "${{ contains(fromJSON('["master"]'), github.ref_name) }}" == "true" ]; then + tools changelog update-release-notes --draft --next-release + tools changelog update-release-notes --next-release + else + tools changelog update-release-notes --draft + tools changelog update-release-notes + fi - name: Generate MAN Pages shell: bash diff --git a/.github/workflows/templates/ci.yml.jinja b/.github/workflows/templates/ci.yml.jinja index ef410c20c282..1c8d80bb92ce 100644 --- a/.github/workflows/templates/ci.yml.jinja +++ b/.github/workflows/templates/ci.yml.jinja @@ -116,8 +116,18 @@ on: shell: bash if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} run: | + <%- if gh_environment == 'nightly' -%> + if [ "${{ contains(fromJSON('["master"]'), github.ref_name) }}" == "true" ]; then + tools changelog update-release-notes --draft <%- if prepare_actual_release %> --release <%- endif %> --next-release + tools changelog update-release-notes <%- if prepare_actual_release %> --release <%- endif %> --next-release + else + tools changelog update-release-notes --draft <%- if prepare_actual_release %> --release <%- endif %> + tools changelog update-release-notes <%- if prepare_actual_release %> --release <%- endif %> + fi + <%- else %> tools changelog update-release-notes --draft <%- if prepare_actual_release %> --release <%- endif %> tools changelog update-release-notes <%- if prepare_actual_release %> --release <%- endif %> + <%- endif %> - name: Generate MAN Pages shell: bash diff --git a/tools/changelog.py b/tools/changelog.py index 1255d638a94d..8cb9dd3e7a5b 100644 --- a/tools/changelog.py +++ b/tools/changelog.py @@ -15,6 +15,7 @@ from jinja2 import Environment, FileSystemLoader from ptscripts import Context, command_group +import salt.version from tools.utils import REPO_ROOT, Version CHANGELOG_LIKE_RE = re.compile(r"([\d]+)\.([a-z]+)$") @@ -299,6 +300,9 @@ def update_deb(ctx: Context, salt_version: Version, draft: bool = False): "template_only": { "help": "Only generate a template file.", }, + "next_release": { + "help": "Generate release notes for the next upcoming release.", + }, }, ) def update_release_notes( @@ -307,6 +311,7 @@ def update_release_notes( draft: bool = False, release: bool = False, template_only: bool = False, + next_release: bool = False, ): if salt_version is None: salt_version = _get_salt_version(ctx) @@ -325,6 +330,15 @@ def update_release_notes( release_notes_path = pathlib.Path("doc/topics/releases") / "{}.md".format( version ) + if next_release and not release: + version = ".".join( + str(part) + for part in salt.version.SaltStackVersion(*version).next_release().info + ) + release_notes_path = pathlib.Path("doc/topics/releases") / "{}.md".format( + version + ) + template_release_path = ( release_notes_path.parent / "templates" / f"{version}.md.template" ) @@ -337,12 +351,12 @@ def update_release_notes( {{{{ warning }}}} ## Changelog {{{{ changelog }}}}