build: allow milestones to be rereleased #453

This commit is contained in:
Sören Weber 2023-01-30 16:54:17 +01:00
parent 30d6c83fa3
commit 64c2f177f1
No known key found for this signature in database
GPG key ID: BEC6D55545451B6D
4 changed files with 6 additions and 13 deletions

View file

@ -14,14 +14,6 @@ outputs:
runs: runs:
using: composite using: composite
steps: 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 - name: Get closed issues for milestone
id: closed_issues id: closed_issues
uses: octokit/graphql-action@v2.x uses: octokit/graphql-action@v2.x
@ -93,7 +85,7 @@ runs:
id: outcome id: outcome
shell: bash shell: bash
run: | 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 echo "outcome=success" >> $GITHUB_OUTPUT
else else
echo "outcome=failure" >> $GITHUB_OUTPUT echo "outcome=failure" >> $GITHUB_OUTPUT
@ -103,7 +95,6 @@ runs:
shell: bash shell: bash
run: | run: |
echo outcome : ${{ steps.outcome.outputs.outcome }} 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 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 has open issues : ${{ fromJSON(steps.open_issues.outputs.data).search.issueCount > 0 }}
echo is patch version : ${{ steps.patchvers.outputs.value != '0' }} echo is patch version : ${{ steps.patchvers.outputs.value != '0' }}

View file

@ -59,6 +59,7 @@ runs:
- name: Close milestone - name: Close milestone
uses: Akkjon/close-milestone@v2 uses: Akkjon/close-milestone@v2
continue-on-error: true
env: env:
MILESTONE: ${{ inputs.milestone }} MILESTONE: ${{ inputs.milestone }}
GITHUB_TOKEN: ${{ inputs.github_token }} GITHUB_TOKEN: ${{ inputs.github_token }}
@ -149,6 +150,7 @@ runs:
- name: Create next patch milestone - name: Create next patch milestone
uses: WyriHaximus/github-action-create-milestone@v1 uses: WyriHaximus/github-action-create-milestone@v1
continue-on-error: true
env: env:
MILESTONE: ${{ inputs.milestone }} MILESTONE: ${{ inputs.milestone }}
GITHUB_TOKEN: ${{ inputs.github_token }} GITHUB_TOKEN: ${{ inputs.github_token }}

View file

@ -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. 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 ## 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. 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. 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 The following checks will be enforced
@ -104,7 +106,6 @@ The following checks will be enforced
- the milestone exists - the milestone exists
- there is at least one closed issue assigned to the milestone - there is at least one closed issue assigned to the milestone
- all assigned issues for this milestone are closed - 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 `<major>.<minor>` at the beginning of the [What's new]({{% relref "basics/migration" %}}) page - if it's a main release, there must be a new `<major>.<minor>` at the beginning of the [What's new]({{% relref "basics/migration" %}}) page
- if it's a patch release, there must be the `<major>.<minor>` from the previous release at the beginning of the [What's new]({{% relref "basics/migration" %}}) page - if it's a patch release, there must be the `<major>.<minor>` from the previous release at the beginning of the [What's new]({{% relref "basics/migration" %}}) page

View file

@ -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/ashley-taylor/regex-property-action
- https://github.com/Kaven-Universe/github-action-current-date-time - https://github.com/Kaven-Universe/github-action-current-date-time
- https://github.com/mingjun97/file-regex-replace - https://github.com/mingjun97/file-regex-replace
- https://github.com/mukunku/tag-exists-action
- https://github.com/octokit/graphql-action - https://github.com/octokit/graphql-action
- https://github.com/peaceiris/actions-gh-pages - https://github.com/peaceiris/actions-gh-pages
- https://github.com/peaceiris/actions-hugo - https://github.com/peaceiris/actions-hugo