mirror of
https://github.com/McShelby/hugo-theme-relearn.git
synced 2024-11-27 09:43:06 +00:00
build: check for release notes before release #448
This commit is contained in:
parent
1ced7fb41e
commit
df66b6fade
8 changed files with 133 additions and 38 deletions
64
.github/actions/check_milestone/action.yaml
vendored
64
.github/actions/check_milestone/action.yaml
vendored
|
@ -17,14 +17,17 @@ runs:
|
||||||
- name: Get tag uniqueness
|
- name: Get tag uniqueness
|
||||||
id: unique_tag
|
id: unique_tag
|
||||||
uses: mukunku/tag-exists-action@v1.2.0 # wildcard version @v1 not possible
|
uses: mukunku/tag-exists-action@v1.2.0 # wildcard version @v1 not possible
|
||||||
with:
|
|
||||||
tag: ${{ env.MILESTONE }}
|
|
||||||
env:
|
env:
|
||||||
MILESTONE: ${{ inputs.milestone }}
|
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
|
||||||
|
env:
|
||||||
|
MILESTONE: ${{ inputs.milestone }}
|
||||||
|
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||||
with:
|
with:
|
||||||
query: |
|
query: |
|
||||||
query {
|
query {
|
||||||
|
@ -32,13 +35,13 @@ runs:
|
||||||
issueCount
|
issueCount
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
env:
|
|
||||||
MILESTONE: ${{ inputs.milestone }}
|
|
||||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
|
||||||
|
|
||||||
- name: Get open issues for milestone
|
- name: Get open issues for milestone
|
||||||
id: open_issues
|
id: open_issues
|
||||||
uses: octokit/graphql-action@v2.x
|
uses: octokit/graphql-action@v2.x
|
||||||
|
env:
|
||||||
|
MILESTONE: ${{ inputs.milestone }}
|
||||||
|
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||||
with:
|
with:
|
||||||
query: |
|
query: |
|
||||||
query {
|
query {
|
||||||
|
@ -46,15 +49,51 @@ runs:
|
||||||
issueCount
|
issueCount
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- name: Get old version number
|
||||||
|
id: oldvers
|
||||||
|
uses: andstor/file-reader-action@v1
|
||||||
|
with:
|
||||||
|
path: layouts/partials/version.txt
|
||||||
|
|
||||||
|
- name: Get old main version number
|
||||||
|
id: oldmainvers
|
||||||
|
uses: ashley-taylor/regex-property-action@v1
|
||||||
|
with:
|
||||||
|
value: ${{ steps.oldvers.outputs.contents }}
|
||||||
|
regex: (\d+)\.(\d+)\.\d+.*
|
||||||
|
replacement: '$1\.$2'
|
||||||
|
|
||||||
|
- name: Get current patch version number
|
||||||
|
id: patchvers
|
||||||
|
uses: ashley-taylor/regex-property-action@v1
|
||||||
env:
|
env:
|
||||||
MILESTONE: ${{ inputs.milestone }}
|
MILESTONE: ${{ inputs.milestone }}
|
||||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
with:
|
||||||
|
value: ${{ env.MILESTONE }}
|
||||||
|
regex: \d+\.\d+\.(\d+)
|
||||||
|
replacement: "$1"
|
||||||
|
|
||||||
|
- name: Get migration notes
|
||||||
|
id: migrationnotes
|
||||||
|
uses: andstor/file-reader-action@v1
|
||||||
|
with:
|
||||||
|
path: exampleSite/content/basics/migration/_index.en.md
|
||||||
|
|
||||||
|
- name: Check for old migration notes
|
||||||
|
id: hasoldnotes
|
||||||
|
uses: ashley-taylor/regex-property-action@v1
|
||||||
|
with:
|
||||||
|
value: ${{ steps.migrationnotes.outputs.contents }}
|
||||||
|
regex: '.*?[\n\r\s]*<!--GH-ACTION-RELEASE-MILESTONE-->[\n\r\s]*-*\s*[\n\r\s]*?[\n\r]+##\s+${{ steps.oldmainvers.outputs.value }}\.0\s+.*?[\n\r][\n\r\s]*.*'
|
||||||
|
flags: gs
|
||||||
|
replacement: '1'
|
||||||
|
|
||||||
- name: Set outcome
|
- name: Set outcome
|
||||||
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' }}" = "true" ]; then
|
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
|
||||||
echo "outcome=success" >> $GITHUB_OUTPUT
|
echo "outcome=success" >> $GITHUB_OUTPUT
|
||||||
else
|
else
|
||||||
echo "outcome=failure" >> $GITHUB_OUTPUT
|
echo "outcome=failure" >> $GITHUB_OUTPUT
|
||||||
|
@ -63,10 +102,13 @@ runs:
|
||||||
- name: Log results and exit
|
- name: Log results and exit
|
||||||
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 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 has old main notes : ${{ steps.hasoldnotes.outputs.value == '1' }}
|
||||||
|
echo are notes okay : ${{ (steps.patchvers.outputs.value!='0'&&steps.hasoldnotes.outputs.value=='1') || (steps.patchvers.outputs.value=='0'&&steps.hasoldnotes.outputs.value!='1') }}
|
||||||
if [ "${{ steps.outcome.outputs.outcome }}" = "failure" ]; then
|
if [ "${{ steps.outcome.outputs.outcome }}" = "failure" ]; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
6
.github/actions/deploy_site/action.yaml
vendored
6
.github/actions/deploy_site/action.yaml
vendored
|
@ -9,9 +9,9 @@ runs:
|
||||||
steps:
|
steps:
|
||||||
- name: Deploy site
|
- name: Deploy site
|
||||||
uses: peaceiris/actions-gh-pages@v3
|
uses: peaceiris/actions-gh-pages@v3
|
||||||
with:
|
|
||||||
github_token: ${{ env.GITHUB_TOKEN }}
|
|
||||||
publish_dir: ${{ env.GITHUB_WORKSPACE }}/../public
|
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||||
GITHUB_WORKSPACE: ${{ github.workspace }}
|
GITHUB_WORKSPACE: ${{ github.workspace }}
|
||||||
|
with:
|
||||||
|
github_token: ${{ env.GITHUB_TOKEN }}
|
||||||
|
publish_dir: ${{ env.GITHUB_WORKSPACE }}/../public
|
||||||
|
|
78
.github/actions/release_milestone/action.yaml
vendored
78
.github/actions/release_milestone/action.yaml
vendored
|
@ -15,34 +15,84 @@ runs:
|
||||||
with:
|
with:
|
||||||
node-version: '16'
|
node-version: '16'
|
||||||
|
|
||||||
|
- name: Setup git
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||||
|
run: |
|
||||||
|
git config user.name "GitHub Actions Bot"
|
||||||
|
git config user.email "<>"
|
||||||
|
|
||||||
|
- name: Get current date
|
||||||
|
id: date
|
||||||
|
uses: Kaven-Universe/github-action-current-date-time@v1
|
||||||
|
with:
|
||||||
|
format: 'YYYY-MM-DD'
|
||||||
|
|
||||||
|
- name: Get current main version number
|
||||||
|
id: mainvers
|
||||||
|
uses: ashley-taylor/regex-property-action@v1
|
||||||
|
env:
|
||||||
|
MILESTONE: ${{ inputs.milestone }}
|
||||||
|
with:
|
||||||
|
value: ${{ env.MILESTONE }}
|
||||||
|
regex: (\d+\.\d+)\.\d+
|
||||||
|
replacement: "$1.0"
|
||||||
|
|
||||||
|
- name: Get next version number
|
||||||
|
id: nextvers
|
||||||
|
uses: WyriHaximus/github-action-next-semvers@v1
|
||||||
|
env:
|
||||||
|
MILESTONE: ${{ inputs.milestone }}
|
||||||
|
with:
|
||||||
|
version: ${{ env.MILESTONE }}
|
||||||
|
|
||||||
- name: Close milestone
|
- name: Close milestone
|
||||||
uses: Akkjon/close-milestone@v2
|
uses: Akkjon/close-milestone@v2
|
||||||
with:
|
|
||||||
milestone_name: ${{ env.MILESTONE }}
|
|
||||||
env:
|
env:
|
||||||
MILESTONE: ${{ inputs.milestone }}
|
MILESTONE: ${{ inputs.milestone }}
|
||||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||||
|
with:
|
||||||
|
milestone_name: ${{ env.MILESTONE }}
|
||||||
|
|
||||||
- name: Create provisionary tag
|
- name: Create temporary tag
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
MILESTONE: ${{ inputs.milestone }}
|
MILESTONE: ${{ inputs.milestone }}
|
||||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||||
run: |
|
run: |
|
||||||
git config user.name "GitHub Actions Bot"
|
|
||||||
git config user.email "<>"
|
|
||||||
git tag --message "" "$MILESTONE"
|
git tag --message "" "$MILESTONE"
|
||||||
git push origin "$MILESTONE"
|
git push origin "$MILESTONE"
|
||||||
|
|
||||||
|
- name: Update migration docs
|
||||||
|
uses: mingjun97/file-regex-replace@v1
|
||||||
|
with:
|
||||||
|
regex: '(.)[\n\r\s]*<!--GH-ACTION-RELEASE-MILESTONE-->[\n\r\s]*-*\s*[\n\r\s]*?[\n\r]+##\s*.*?[\n\r][\n\r\s]*(.)'
|
||||||
|
replacement: "$1\n\n<!--GH-ACTION-RELEASE-MILESTONE-->\n\n---\n\n## ${{ steps.mainvers.outputs.value }} (${{ steps.date.outputs.time }})\n\n$2"
|
||||||
|
include: exampleSite/content/basics/migration/_index.en.md
|
||||||
|
|
||||||
|
- name: Update generator version
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
MILESTONE: ${{ inputs.milestone }}
|
||||||
|
run: |
|
||||||
|
echo -n "$MILESTONE" > layouts/partials/version.txt
|
||||||
|
|
||||||
- name: Update changelog
|
- name: Update changelog
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||||
|
GREN_GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||||
|
run: |
|
||||||
|
npx github-release-notes@0.17.1 changelog --generate --override --tags=all
|
||||||
|
|
||||||
|
- name: Commit updates
|
||||||
shell: bash
|
shell: bash
|
||||||
env:
|
env:
|
||||||
MILESTONE: ${{ inputs.milestone }}
|
MILESTONE: ${{ inputs.milestone }}
|
||||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||||
GREN_GITHUB_TOKEN: ${{ inputs.github_token }}
|
GREN_GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||||
run: |
|
run: |
|
||||||
echo -n "$MILESTONE" > layouts/partials/version.txt
|
|
||||||
npx github-release-notes@0.17.1 changelog --generate --override --tags=all
|
|
||||||
git add *
|
git add *
|
||||||
git commit --message "Ship tag $MILESTONE"
|
git commit --message "Ship tag $MILESTONE"
|
||||||
git push origin main
|
git push origin main
|
||||||
|
@ -69,26 +119,16 @@ runs:
|
||||||
env:
|
env:
|
||||||
MILESTONE: ${{ inputs.milestone }}
|
MILESTONE: ${{ inputs.milestone }}
|
||||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||||
GREN_GITHUB_TOKEN: ${{ inputs.github_token }}
|
|
||||||
run: |
|
run: |
|
||||||
echo -n "$MILESTONE+tip" > layouts/partials/version.txt
|
echo -n "$MILESTONE+tip" > layouts/partials/version.txt
|
||||||
git add *
|
git add *
|
||||||
git commit --message "Mark non-release version"
|
git commit --message "Mark non-release version"
|
||||||
git push origin main
|
git push origin main
|
||||||
|
|
||||||
- name: Generate next version number
|
|
||||||
id: semvers
|
|
||||||
uses: WyriHaximus/github-action-next-semvers@v1
|
|
||||||
with:
|
|
||||||
version: ${{ env.MILESTONE }}
|
|
||||||
env:
|
|
||||||
MILESTONE: ${{ inputs.milestone }}
|
|
||||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
|
||||||
|
|
||||||
- name: Create next patch milestone
|
- name: Create next patch milestone
|
||||||
uses: WyriHaximus/github-action-create-milestone@v1
|
uses: WyriHaximus/github-action-create-milestone@v1
|
||||||
with:
|
|
||||||
title: ${{ steps.semvers.outputs.patch }}
|
|
||||||
env:
|
env:
|
||||||
MILESTONE: ${{ inputs.milestone }}
|
MILESTONE: ${{ inputs.milestone }}
|
||||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||||
|
with:
|
||||||
|
title: ${{ steps.nextvers.outputs.patch }}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
name: Deploy
|
name: docs-build-deployment
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push: # Build on all pushes but only deploy for main branch
|
push: # Build on all pushes but only deploy for main branch
|
|
@ -1,4 +1,4 @@
|
||||||
name: Build
|
name: docs-build
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push: # Build on all pushes but only deploy for main branch
|
push: # Build on all pushes but only deploy for main branch
|
|
@ -1,4 +1,4 @@
|
||||||
name: Release
|
name: version-release
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
|
@ -14,6 +14,8 @@ This document shows you what's new in the latest release. For a detailed list of
|
||||||
|
|
||||||
{{% badge style="info" icon="plus-circle" title=" " %}}New{{% /badge %}} Marks new behavior you might find interesting or comes configurable.
|
{{% badge style="info" icon="plus-circle" title=" " %}}New{{% /badge %}} Marks new behavior you might find interesting or comes configurable.
|
||||||
|
|
||||||
|
<!--GH-ACTION-RELEASE-MILESTONE-->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 5.10.0 (2023-01-25)
|
## 5.10.0 (2023-01-25)
|
||||||
|
@ -245,8 +247,6 @@ This document shows you what's new in the latest release. For a detailed list of
|
||||||
|
|
||||||
The option is still useful in case you are using scripting to set up your graph. In this case no shortcode or codefence is involved and the library is not loaded by default. In this case you can set `disableMermaid=false` in your frontmatter to force the library to be loaded. See the [theme variant generator]({{%relref "basics/generator" %}}) of the exampleSite for an example.
|
The option is still useful in case you are using scripting to set up your graph. In this case no shortcode or codefence is involved and the library is not loaded by default. In this case you can set `disableMermaid=false` in your frontmatter to force the library to be loaded. See the [theme variant generator]({{%relref "basics/generator" %}}) of the exampleSite for an example.
|
||||||
|
|
||||||
**This change requires at least Hugo 0.93.0 to be used**. The minimum requirement will be reported during build on the console if not met.
|
|
||||||
|
|
||||||
- {{% badge style="info" icon="plus-circle" title=" " %}}New{{% /badge %}} Additional color variant variable `--MERMAID-theme` to set the variant's Mermaid theme. This causes the Mermaid theme to switch with the color variant if it defers from the setting of the formerly selected color variant.
|
- {{% badge style="info" icon="plus-circle" title=" " %}}New{{% /badge %}} Additional color variant variable `--MERMAID-theme` to set the variant's Mermaid theme. This causes the Mermaid theme to switch with the color variant if it defers from the setting of the formerly selected color variant.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
@ -30,5 +30,18 @@ Many thanks to [Andy Miller](https://github.com/rhukster) for initially creating
|
||||||
## Tooling
|
## Tooling
|
||||||
|
|
||||||
- [GitHub](https://github.com) - Continuous deployment, testing and hosting of this project's sources and its documentation
|
- [GitHub](https://github.com) - Continuous deployment, testing and hosting of this project's sources and its documentation
|
||||||
|
- Various GitHub Actions
|
||||||
|
- https://github.com/actions/setup-node
|
||||||
|
- https://github.com/Akkjon/close-milestone
|
||||||
|
- https://github.com/andstor/file-reader-action
|
||||||
|
- 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
|
||||||
|
- https://github.com/WyriHaximus/github-action-create-milestone
|
||||||
|
- https://github.com/WyriHaximus/github-action-next-semvers
|
||||||
- [gren](https://github.com/github-tools/github-release-notes) - A releasenotes generator for GitHub
|
- [gren](https://github.com/github-tools/github-release-notes) - A releasenotes generator for GitHub
|
||||||
- [Hugo](https://gohugo.io/) - The static site generator of your choice
|
- [Hugo](https://gohugo.io/) - The static site generator of your choice
|
||||||
|
|
Loading…
Reference in a new issue