Skip to content

Commit

Permalink
chore: release and pre-commit
Browse files Browse the repository at this point in the history
Signed-off-by: msclock <[email protected]>
  • Loading branch information
msclock committed Oct 11, 2023
1 parent 2f7131b commit 463500d
Show file tree
Hide file tree
Showing 4 changed files with 222 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.{yml,json}]
[*.{yml,json,js}]
indent_size = 2

[CMakeLists.txt]
Expand Down
80 changes: 80 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: CI

on:
workflow_dispatch:

push:
pull_request:

jobs:

pre-commit:
runs-on: ubuntu-latest
permissions:
contents: write

steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
ref: ${{ github.head_ref }}

- name: Set up python
uses: actions/setup-python@v3

- name: Run pre-commit on codebase
uses: pre-commit/[email protected]

- name: Auto commit action
uses: stefanzweifel/git-auto-commit-action@v4
if: failure()
with:
commit_message: 'ci: auto fixes from pre-commit'

release:
name: release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- uses: actions/setup-node@v3
with:
node-version: 20

- name: Semantic Release
uses: cycjimmy/semantic-release-action@v4
id: semantic
with:
semantic_version: 22.0.5
branches: |
[
'+([0-9])?(.{+([0-9]),x}).x',
'master',
'main',
'next',
'next-major',
{
name: 'beta',
prerelease: true
},
{
name: 'alpha',
prerelease: true
}
]
extra_plugins: |
@semantic-release/changelog
@semantic-release/git
@semantic-release/exec
@semantic-release/github
conventional-changelog-conventionalcommits
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

# - name: Push updates to branch for major version
# if: steps.semantic.outputs.new_release_published == 'true'
# run: git push https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git HEAD:refs/heads/v${{steps.semantic.outputs.new_release_major_version}}
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
70 changes: 70 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# To use:
#
# pre-commit run -a
#
# Or:
#
# pre-commit install # (runs every time you commit in git)
#
# To update this file:
#
# pre-commit autoupdate
#
# See https://github.com/pre-commit/pre-commit

fail_fast: false
exclude: |
(?x)(
^(.vscode/.*)
)
files: '' # set '' as default

repos:
# Standard hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-added-large-files
args: [--maxkb=4096]
- id: check-case-conflict
- id: check-merge-conflict
- id: end-of-file-fixer
- id: mixed-line-ending
- id: trailing-whitespace

# Check yaml
- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
rev: v2.10.0
hooks:
- id: pretty-format-yaml
args:
- --autofix
- --offset=2
exclude: |
(?x)(
.copier-answers.yml
)
# Changes tabs to spaces
- repo: https://github.com/Lucas-C/pre-commit-hooks
rev: v1.5.4
hooks:
- id: remove-tabs

# CMake formatting
- repo: https://github.com/cheshirekow/cmake-format-precommit
rev: v0.6.13
hooks:
- id: cmake-format
additional_dependencies: [pyyaml]
types: [file]
files: (\.cmake|CMakeLists.txt)(.in)?$

# Check for spelling
- repo: https://github.com/codespell-project/codespell
rev: v2.2.5
hooks:
- id: codespell
args:
- -L=lang
- --check-filenames
71 changes: 71 additions & 0 deletions release.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
module.exports = {
"dryRun": false,
"plugins": [
[
"@semantic-release/commit-analyzer",
{
"preset": "angular",
"releaseRules": [
{ "breaking": true, "release": "major" },
{ "type": "feat", "release": "minor" },
{ "type": "fix", "release": "patch" },
{ "type": "style", "release": "patch" },
{ "type": "refactor", "release": "patch" },
{ "type": "perf", "release": "patch" },
{ "type": "revert", "release": "patch" },
{ "type": "chore", "scope": "deps", "release": "patch" },
{ "type": "build", "release": false },
{ "type": "ci", "release": false },
{ "type": "docs", "release": false },
{ "type": "test", "release": false },
],
"parserOpts": {
"noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]
},
},
],
[
"@semantic-release/release-notes-generator",
{
"preset": "conventionalcommits",
"presetConfig": {
"types": [
{ "type": "feat", "section": "Features" },
{ "type": "fix", "section": "Bug Fixes" },
{ "type": "style", "section": "Style" },
{ "type": "refactor", "section": "Refactor" },
{ "type": "perf", "section": "Performance" },
{ "type": "revert", "section": "Reverts" },
{ "type": "chore", "scope": "deps", "section": "Dependencies" },
{ "type": "chore", "section": "Chores" },
{ "type": "build", "section": "Build" },
{ "type": "ci", "section": "CI" },
{ "type": "docs", "section": "Docs" },
{ "type": "test", "section": "Tests" },
],
},
"parserOpts": {
"noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]
},
},
]
["@semantic-release/changelog", { "changelogFile": "CHANGELOG.md", }],
[
"@semantic-release/exec",
{
"publishCmd": [
"git tag -a -f v${nextRelease.version} --cleanup=whitespace -m '${nextRelease.notes}'",
"git push --force origin v${nextRelease.version}"
].join(" && "),
}
],
"@semantic-release/github",
[
"@semantic-release/git",
{
"assets": ["CHANGELOG.md"],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}",
},
],
]
};

0 comments on commit 463500d

Please sign in to comment.