Skip to content

Commit

Permalink
Merge pull request #1639 from oasisprotocol/mz/release/gitlint
Browse files Browse the repository at this point in the history
Setup gitlint
  • Loading branch information
buberdds authored Sep 7, 2023
2 parents 633fbc9 + 06f496c commit a051d40
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 0 deletions.
23 changes: 23 additions & 0 deletions .github/workflows/ci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,42 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
# Checkout pull request HEAD commit instead of merge commit.
ref: ${{ github.event.pull_request.head.sha }}
# Fetch all history so gitlint can check the relevant commits.
fetch-depth: '0'
- name: Set up Python 3
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Set up Node.js 18
uses: actions/setup-node@v3
with:
node-version: '18.x'
cache: yarn
- name: Install gitlint
run: |
python -m pip install gitlint
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Lint git commits
run: |
yarn lint-git
# Always run this step so that all linting errors can be seen at once.
if: always()
- name: ESLint
# Disallow warnings and always throw errors.
run: yarn lint --max-warnings 0
# Always run this step so that all linting errors can be seen at once.
if: always()
- name: Validate Grommet icons types
run: |
yarn fix-grommet-icons-types
git diff --exit-code
# Always run this step so that all linting errors can be seen at once.
if: always()
- name: Validate TypeScript
run: yarn checkTs
# Always run this step so that all linting errors can be seen at once.
if: always()
24 changes: 24 additions & 0 deletions .gitlint
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# gitlint configuration.

# For more information, see:
# https://jorisroovers.com/gitlint/configuration/.

[general]
verbosity = 2
ignore-merge-commits=true
ignore-fixup-commits=false
ignore-squash-commits=false
ignore=body-is-missing
contrib=contrib-disallow-cleanup-commits

[title-max-length]
line-length=72

[body-max-line-length]
line-length=80

[body-min-length]
min-length=20

[title-must-not-contain-word]
words=wip
16 changes: 16 additions & 0 deletions internals/scripts/gitlint.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// @ts-check
// https://github.com/oasisprotocol/oasis-core/blob/50d972df71fed2bcaa88e6ce5430d919ec08087d/common.mk#L171-L180
const execSync = require('child_process').execSync

const GIT_ORIGIN_REMOTE = 'origin'
const RELEASE_BRANCH = 'master'
const BRANCH = `${GIT_ORIGIN_REMOTE}/${RELEASE_BRANCH}`
const COMMIT_SHA = require('child_process').execSync(`git rev-parse ${BRANCH}`).toString().trim()

console.log(`*** Running gitlint for commits from ${BRANCH} (${COMMIT_SHA})`)

try {
execSync(`gitlint --commits ${BRANCH}..HEAD`, { stdio: 'inherit' })
} catch (error) {
process.exit(1)
}
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
"lint": "eslint --ext js,ts,tsx ./",
"lint:fix": "yarn run lint --fix",
"lint:css": "stylelint src/**/*.css",
"lint-git": "node ./internals/scripts/gitlint.js",
"extract-messages": "rm src/locales/en/translation.json && i18next-scanner --config=internals/extractMessages/i18next-scanner.config.js",
"fix-grommet-icons-types": "node ./internals/scripts/fix-grommet-icons-types.js",
"print-extension-dev-csp": "node ./internals/scripts/print-extension-dev-csp.js"
Expand Down

0 comments on commit a051d40

Please sign in to comment.