diff --git a/.github/workflows/lint-pr-title.yml b/.github/workflows/lint-pr-title.yml new file mode 100644 index 0000000..45b45d3 --- /dev/null +++ b/.github/workflows/lint-pr-title.yml @@ -0,0 +1,20 @@ +name: "[lint] Commit is conventional" + +on: + pull_request_target: + types: + - edited + - opened + - ready_for_review + - reopened + - synchronize + +permissions: + contents: read + id-token: write + pull-requests: write + +jobs: + lint: + name: Lint + uses: kolonialno/actions/.github/workflows/pr-conventional-commit.yml@main diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 0000000..797fe8a --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,28 @@ +--- +name: "[release] Please" + +on: + workflow_dispatch: + push: + branches: + - main + - ci/test-release-please** + +permissions: + id-token: write + contents: write + pull-requests: write + +jobs: + release: + name: Release + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: google-github-actions/release-please-action@v4 + id: release + with: + token: ${{ secrets.GITHUB_TOKEN }} + config-file: release-please-config.json + manifest-file: .release-please-manifest.json diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..13ce2bf --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,11 @@ +--- +default_install_hook_types: [pre-commit, commit-msg] +repos: +- repo: https://github.com/alessandrojcm/commitlint-pre-commit-hook + rev: "v9.11.0" + hooks: + - id: commitlint + stages: [commit-msg] + additional_dependencies: ["@commitlint/config-conventional"] + args: + - "--config=commitlint.config.js" diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 0000000..f4b3cc5 --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "4.4.1" +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..688c611 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,22 @@ + +# CONTRIBUTING + +## Set-up + +```shell +pre-commit install +poetry install +``` + +## Release + +We use [release-please](https://github.com/googleapis/release-please) to automate release including semver version based on [conventional-commits](https://www.conventionalcommits.org/en/v1.0.0/). + +Manually create a release PR from main branch + +```bash +release-please release-pr \ +--token=$(gh auth token) \ +--repo-url=kolonialno/troncos +--dry-run +``` diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 0000000..362c11b --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,6 @@ +module.exports = { + extends: ["@commitlint/config-conventional"], + rules: { + "footer-max-line-length": [0, "always"], // ignore rule + }, +}; diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 0000000..f0bb91a --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "bootstrap-sha": "8ed4b839a6c7808f551baea9284eb7e36be7ef58", + "include-v-in-tag": false, + "separate-pull-requests": true, + "prerelease": true, + "packages": { + ".": { + "component": "troncos", + "bump-minor-pre-major": true, + "include-component-in-tag": false, + "release-type": "python" + } + } +}