v0.3.0
* Getting environment variables and passwords from Vault (not tested yet) * Vault configuration to config (not tested yet) * Ability to run scripts from file on local machine on the remote host * Ability to get ouput in the notification of a list for individual commands or all commands * Make SSH connections close after all commands have been run; reuse previous connections if needed
This commit is contained in:
14
docs/themes/hugo-theme-relearn/.github/actions/build_site/action.yaml
vendored
Normal file
14
docs/themes/hugo-theme-relearn/.github/actions/build_site/action.yaml
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
name: Build site
|
||||
description: Builds the Hugo exampleSite for later deploy on GitHub-Pages
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Setup Hugo
|
||||
uses: peaceiris/actions-hugo@v2
|
||||
with:
|
||||
hugo-version: 'latest'
|
||||
|
||||
- name: Build site
|
||||
shell: bash
|
||||
run: |
|
||||
hugo --source ${GITHUB_WORKSPACE}/exampleSite --destination ${GITHUB_WORKSPACE}/../public --cleanDestinationDir --gc --baseURL https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/ --theme ${GITHUB_WORKSPACE}
|
||||
105
docs/themes/hugo-theme-relearn/.github/actions/check_milestone/action.yaml
vendored
Normal file
105
docs/themes/hugo-theme-relearn/.github/actions/check_milestone/action.yaml
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
name: Check milestone
|
||||
description: Checks if the given milestone and its according tag are valid to be released
|
||||
inputs:
|
||||
milestone:
|
||||
description: Milestone for this release
|
||||
required: true
|
||||
github_token:
|
||||
description: Secret GitHub token
|
||||
required: true
|
||||
outputs:
|
||||
outcome:
|
||||
description: Result of the check, success or failure
|
||||
value: ${{ steps.outcome.outputs.outcome }}
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Get closed issues for milestone
|
||||
id: closed_issues
|
||||
uses: octokit/graphql-action@v2.x
|
||||
env:
|
||||
MILESTONE: ${{ inputs.milestone }}
|
||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||
with:
|
||||
query: |
|
||||
query {
|
||||
search(first: 1, type: ISSUE, query: "user:${{ github.repository_owner }} repo:${{ github.event.repository.name }} milestone:${{ env.MILESTONE }} state:closed") {
|
||||
issueCount
|
||||
}
|
||||
}
|
||||
|
||||
- name: Get open issues for milestone
|
||||
id: open_issues
|
||||
uses: octokit/graphql-action@v2.x
|
||||
env:
|
||||
MILESTONE: ${{ inputs.milestone }}
|
||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||
with:
|
||||
query: |
|
||||
query {
|
||||
search(first: 1, type: ISSUE, query: "user:${{ github.repository_owner }} repo:${{ github.event.repository.name }} milestone:${{ env.MILESTONE }} state:open") {
|
||||
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:
|
||||
MILESTONE: ${{ inputs.milestone }}
|
||||
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
|
||||
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.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
|
||||
fi
|
||||
|
||||
- name: Log results and exit
|
||||
shell: bash
|
||||
run: |
|
||||
echo outcome : ${{ steps.outcome.outputs.outcome }}
|
||||
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' }}
|
||||
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
|
||||
exit 1
|
||||
fi
|
||||
17
docs/themes/hugo-theme-relearn/.github/actions/deploy_site/action.yaml
vendored
Normal file
17
docs/themes/hugo-theme-relearn/.github/actions/deploy_site/action.yaml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
name: Deploy site
|
||||
description: Deploys a built site on GitHub-Pages
|
||||
inputs:
|
||||
github_token:
|
||||
description: Secret GitHub token
|
||||
required: true
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Deploy site
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||
GITHUB_WORKSPACE: ${{ github.workspace }}
|
||||
with:
|
||||
github_token: ${{ env.GITHUB_TOKEN }}
|
||||
publish_dir: ${{ env.GITHUB_WORKSPACE }}/../public
|
||||
162
docs/themes/hugo-theme-relearn/.github/actions/release_milestone/action.yaml
vendored
Normal file
162
docs/themes/hugo-theme-relearn/.github/actions/release_milestone/action.yaml
vendored
Normal file
@@ -0,0 +1,162 @@
|
||||
name: Release milestone
|
||||
description: Creates a release and tag out of a given milestone
|
||||
inputs:
|
||||
milestone:
|
||||
description: Milestone for this release
|
||||
required: true
|
||||
github_token:
|
||||
description: Secret GitHub token
|
||||
required: true
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Setup node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
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"
|
||||
|
||||
- name: Get current major version number
|
||||
id: majorvers
|
||||
uses: ashley-taylor/regex-property-action@v1
|
||||
env:
|
||||
MILESTONE: ${{ inputs.milestone }}
|
||||
with:
|
||||
value: ${{ env.MILESTONE }}
|
||||
regex: (\d+)\.\d+\.\d+
|
||||
replacement: "$1"
|
||||
|
||||
- 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
|
||||
uses: Akkjon/close-milestone@v2.1.0
|
||||
continue-on-error: true
|
||||
env:
|
||||
MILESTONE: ${{ inputs.milestone }}
|
||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||
with:
|
||||
milestone_name: ${{ env.MILESTONE }}
|
||||
|
||||
- name: Create temporary tag
|
||||
shell: bash
|
||||
env:
|
||||
MILESTONE: ${{ inputs.milestone }}
|
||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||
run: |
|
||||
git tag --message "" "$MILESTONE" || true
|
||||
git push origin "$MILESTONE" || true
|
||||
git tag --force --message "" "$MILESTONE"
|
||||
git push --force 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 }}.0 (${{ 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
|
||||
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
|
||||
env:
|
||||
MILESTONE: ${{ inputs.milestone }}
|
||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||
GREN_GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||
run: |
|
||||
git add *
|
||||
git commit --message "Ship tag $MILESTONE"
|
||||
git push origin main
|
||||
|
||||
- name: Create final tag
|
||||
shell: bash
|
||||
env:
|
||||
MILESTONE: ${{ inputs.milestone }}
|
||||
MILESTONE_MINOR: ${{ steps.mainvers.outputs.value }}
|
||||
MILESTONE_MAJOR: ${{ steps.majorvers.outputs.value }}
|
||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||
run: |
|
||||
git tag --force --message "" "$MILESTONE"
|
||||
git push --force origin "$MILESTONE"
|
||||
git tag --message "" "$MILESTONE_MINOR.x" || true
|
||||
git push origin "$MILESTONE_MINOR.x" || true
|
||||
git tag --force --message "" "$MILESTONE_MINOR.x"
|
||||
git push --force origin "$MILESTONE_MINOR.x"
|
||||
git tag --message "" "$MILESTONE_MAJOR.x" || true
|
||||
git push origin "$MILESTONE_MAJOR.x" || true
|
||||
git tag --force --message "" "$MILESTONE_MAJOR.x"
|
||||
git push --force origin "$MILESTONE_MAJOR.x"
|
||||
git tag --message "" "x" || true
|
||||
git push origin "x" || true
|
||||
git tag --force --message "" "x"
|
||||
git push --force origin "x"
|
||||
|
||||
- name: Publish release
|
||||
shell: bash
|
||||
env:
|
||||
MILESTONE: ${{ inputs.milestone }}
|
||||
GREN_GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||
run: |
|
||||
npx github-release-notes@0.17.1 release --tags "$MILESTONE"
|
||||
|
||||
- name: Update version number to mark non-release version
|
||||
shell: bash
|
||||
env:
|
||||
MILESTONE: ${{ inputs.milestone }}
|
||||
GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||
run: |
|
||||
echo -n "$MILESTONE+tip" > layouts/partials/version.txt
|
||||
git add *
|
||||
git commit --message "Mark non-release version"
|
||||
git push origin main
|
||||
|
||||
- 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 }}
|
||||
with:
|
||||
title: ${{ steps.nextvers.outputs.patch }}
|
||||
Reference in New Issue
Block a user