diff --git a/.github/semantic.yml b/.github/semantic.yml new file mode 100644 index 0000000..0724847 --- /dev/null +++ b/.github/semantic.yml @@ -0,0 +1,23 @@ +--- +commitsOnly: true +anyCommit: true +allowMergeCommits: true +allowRevertCommits: true + +types: + - feat + - fix + - docs + - style + - refactor + - perf + - test + - build + - ci + - chore + - revert + - major + - minor + - patch + +... diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..f3df74d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,40 @@ +--- +name: release + +"on": + schedule: + - cron: "0 8 * * 1" + workflow_dispatch: + +jobs: + release: + runs-on: ubuntu-latest + + steps: + - name: Checkout source + uses: actions/checkout@v3 + with: + token: ${{ secrets.BOT_ACCESS_TOKEN }} + + - name: Write buildtime + run: date >| .github/RELEASEDATE + + - name: Semantic release + uses: cycjimmy/semantic-release-action@v3 + env: + GITHUB_TOKEN: ${{ secrets.BOT_ACCESS_TOKEN }} + with: + extra_plugins: | + conventional-changelog-conventionalcommits + + - name: Commit changes + uses: EndBug/add-and-commit@v9 + with: + author_name: GitHub Actions + author_email: github@webhippie.de + add: .github/RELEASEDATE + message: "docs: automated release update [skip ci]" + push: true + commit: --signoff + +... diff --git a/.releaserc b/.releaserc new file mode 100644 index 0000000..7e69728 --- /dev/null +++ b/.releaserc @@ -0,0 +1,111 @@ +{ + "branches": [ + "master" + ], + "plugins": [ + [ + "@semantic-release/commit-analyzer", + { + "preset": "conventionalcommits", + "releaseRules": [ + { + "type": "major", + "release": "major" + }, + { + "type": "deps", + "scope": "major", + "release": "major" + }, + { + "type": "minor", + "release": "minor" + }, + { + "type": "deps", + "scope": "minor", + "release": "minor" + }, + { + "type": "patch", + "release": "patch" + }, + { + "type": "deps", + "scope": "patch", + "release": "patch" + }, + { + "type": "refactor", + "release": "minor" + }, + { + "scope": "docs", + "release": false + } + ] + } + ], + [ + "@semantic-release/release-notes-generator", + { + "preset": "conventionalcommits", + "presetConfig": { + "types": [ + { + "type": "feat", + "section": "Features" + }, + { + "type": "major", + "section": "Features" + }, + { + "type": "minor", + "section": "Features" + }, + { + "type": "fix", + "section": "Bugfixes" + }, + { + "type": "patch", + "section": "Bugfixes" + }, + { + "type": "chore", + "hidden": true + }, + { + "type": "docs", + "hidden": true + }, + { + "type": "refactor", + "hidden": true + } + ] + } + } + ], + [ + "@semantic-release/changelog", + { + "changelogTitle": "# Changelog" + } + ], + [ + "@semantic-release/git", + { + "message": "chore: release ${nextRelease.version} [skip ci]", + "assets": ["CHANGELOG.md"] + } + ], + [ + "@semantic-release/github", + { + "addReleases": true + } + ] + ] +}