From 64c2f177f129ad3f63d4499e391f09247bf9c6d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Weber?= Date: Mon, 30 Jan 2023 16:54:17 +0100 Subject: [PATCH] build: allow milestones to be rereleased #453 --- .github/actions/check_milestone/action.yaml | 11 +---------- .github/actions/release_milestone/action.yaml | 2 ++ exampleSite/content/dev/maintaining/_index.en.md | 5 +++-- exampleSite/content/more/credits/_index.en.md | 1 - 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/.github/actions/check_milestone/action.yaml b/.github/actions/check_milestone/action.yaml index 0c7b69d3c9..cafaf06d6e 100644 --- a/.github/actions/check_milestone/action.yaml +++ b/.github/actions/check_milestone/action.yaml @@ -14,14 +14,6 @@ outputs: runs: using: composite steps: - - name: Get tag uniqueness - id: unique_tag - uses: mukunku/tag-exists-action@v1.2.0 # wildcard version @v1 not possible - env: - MILESTONE: ${{ inputs.milestone }} - with: - tag: ${{ env.MILESTONE }} - - name: Get closed issues for milestone id: closed_issues uses: octokit/graphql-action@v2.x @@ -93,7 +85,7 @@ runs: id: outcome shell: bash run: | - if [ "${{ fromJSON(steps.closed_issues.outputs.data).search.issueCount > 0 && fromJSON(steps.open_issues.outputs.data).search.issueCount == 0 && steps.unique_tag.outputs.exists == 'false' && ( (steps.patchvers.outputs.value!='0'&&steps.hasoldnotes.outputs.value=='1') || (steps.patchvers.outputs.value=='0'&&steps.hasoldnotes.outputs.value!='1') ) }}" = "true" ]; then + if [ "${{ fromJSON(steps.closed_issues.outputs.data).search.issueCount > 0 && fromJSON(steps.open_issues.outputs.data).search.issueCount == 0 && ( (steps.patchvers.outputs.value!='0'&&steps.hasoldnotes.outputs.value=='1') || (steps.patchvers.outputs.value=='0'&&steps.hasoldnotes.outputs.value!='1') ) }}" = "true" ]; then echo "outcome=success" >> $GITHUB_OUTPUT else echo "outcome=failure" >> $GITHUB_OUTPUT @@ -103,7 +95,6 @@ runs: shell: bash run: | echo outcome : ${{ steps.outcome.outputs.outcome }} - echo has unique tag : ${{ steps.unique_tag.outputs.exists == 'false' }} echo has closed issues : ${{ fromJSON(steps.closed_issues.outputs.data).search.issueCount > 0 }} echo has open issues : ${{ fromJSON(steps.open_issues.outputs.data).search.issueCount > 0 }} echo is patch version : ${{ steps.patchvers.outputs.value != '0' }} diff --git a/.github/actions/release_milestone/action.yaml b/.github/actions/release_milestone/action.yaml index b92f7650c7..8348ddc7f4 100644 --- a/.github/actions/release_milestone/action.yaml +++ b/.github/actions/release_milestone/action.yaml @@ -59,6 +59,7 @@ runs: - name: Close milestone uses: Akkjon/close-milestone@v2 + continue-on-error: true env: MILESTONE: ${{ inputs.milestone }} GITHUB_TOKEN: ${{ inputs.github_token }} @@ -149,6 +150,7 @@ runs: - name: Create next patch milestone uses: WyriHaximus/github-action-create-milestone@v1 + continue-on-error: true env: MILESTONE: ${{ inputs.milestone }} GITHUB_TOKEN: ${{ inputs.github_token }} diff --git a/exampleSite/content/dev/maintaining/_index.en.md b/exampleSite/content/dev/maintaining/_index.en.md index a4b8a7c6cb..cb2cca4920 100644 --- a/exampleSite/content/dev/maintaining/_index.en.md +++ b/exampleSite/content/dev/maintaining/_index.en.md @@ -25,7 +25,7 @@ Once working on an issue, assign it to a fitting maintainer. When done, close the ticket. Once an issue is closed, it needs to be assigned to next release milestone. -A once released ticket is not allowed to be reopened and rereleased in a different release. Write a new ticket in this case. +A once released ticket is not allowed to be reopened and rereleased in a different milestone. This would cause the changelog to be changed even for the milestone the issue was previously released in. Instead write a new ticket. ## Managing Pull Requests @@ -97,6 +97,8 @@ A release is based on a milestone named like the release itself - just the versi Making releases is automated by the `version-release` GitHub Action. It requires the version number of the milestone that should be released. The release will be created from the `main` branch of the repository. +Treat released milestones as immutable. Don't rerelease an already released milestone. An already released milestone may already been consumed by your users. + During execution of the action a few things are checked. If a check fails the action fails, resulting in no new release. You can correct the errors afterwards and rerun the action. The following checks will be enforced @@ -104,7 +106,6 @@ The following checks will be enforced - the milestone exists - there is at least one closed issue assigned to the milestone - all assigned issues for this milestone are closed -- the milestone is not previously released - if it's a main release, there must be a new `.` at the beginning of the [What's new]({{% relref "basics/migration" %}}) page - if it's a patch release, there must be the `.` from the previous release at the beginning of the [What's new]({{% relref "basics/migration" %}}) page diff --git a/exampleSite/content/more/credits/_index.en.md b/exampleSite/content/more/credits/_index.en.md index 6e10c462b9..e19bf96184 100644 --- a/exampleSite/content/more/credits/_index.en.md +++ b/exampleSite/content/more/credits/_index.en.md @@ -36,7 +36,6 @@ Many thanks to [Andy Miller](https://github.com/rhukster) for initially creating - https://github.com/ashley-taylor/regex-property-action - https://github.com/Kaven-Universe/github-action-current-date-time - https://github.com/mingjun97/file-regex-replace - - https://github.com/mukunku/tag-exists-action - https://github.com/octokit/graphql-action - https://github.com/peaceiris/actions-gh-pages - https://github.com/peaceiris/actions-hugo