Skip to content

Commit

Permalink
Merge pull request #11 from oasisprotocol/mz/lint-action
Browse files Browse the repository at this point in the history
Setup lint workflow
  • Loading branch information
buberdds authored Nov 27, 2023
2 parents f68ccb8 + 25af093 commit 7d64018
Show file tree
Hide file tree
Showing 6 changed files with 392 additions and 9 deletions.
59 changes: 59 additions & 0 deletions .github/workflows/ci-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# NOTE: This name appears in GitHub's Checks API and in workflow's status badge.
name: ci-lint

# Trigger the workflow when:
on:
# A push occurs to one of the matched branches.
push:
branches: [master]
# Or when a pull request event occurs for a pull request against one of the
# matched branches.
pull_request:
branches: [master]

jobs:
lint:
# NOTE: This name appears in GitHub's Checks API.
name: lint
runs-on: ubuntu-latest
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 20
uses: actions/setup-node@v4
with:
node-version: '20.x'
cache: yarn
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Install gitlint
run: |
python -m pip install gitlint
- name: Lint documentation
run: |
yarn lint-docs
# Always run this step so that all linting errors can be seen at once.
if: always()
- 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
# 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
22 changes: 22 additions & 0 deletions .markdownlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# markdownlint configuration.

# For more information, see:
# https://github.com/DavidAnson/markdownlint#optionsconfig.

# Enable all rules.
default: true

line-length:
# Line length checking is not strict by default.
strict: true
line_length: 80
# Allow longer lines for code blocks.
code_block_line_length: 100

# Do not always require language specifiers with fenced code blocks since they
# are not part of the Markdown spec.
fenced-code-language: false

# Allow <details> and <section> HTML elements
no-inline-html:
allowed_elements: ['details', 'summary']
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)
}
14 changes: 10 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,18 @@
"name": "dapp-wrose",
"private": true,
"version": "0.0.0",
"type": "module",
"engines": {
"node": ">=20"
},
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"checkTs": "tsc --noEmit",
"dev": "vite",
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
"preview": "vite preview",
"prettify": "prettier src --write"
"lint-docs": "markdownlint --ignore '**/node_modules/**' '**/*.md'",
"lint-git": "node ./internals/scripts/gitlint.js",
"prettify": "prettier src --write",
"preview": "vite preview"
},
"dependencies": {
"@metamask/detect-provider": "^2.0.0",
Expand All @@ -29,6 +34,7 @@
"eslint-plugin-react-hooks": "^4.6.0",
"eslint-plugin-react-refresh": "^0.4.3",
"ethers": "5.7.2",
"markdownlint-cli": "^0.37.0",
"prettier": "3.1.0",
"typescript": "^5.0.2",
"vite": "^4.4.5"
Expand Down
Loading

0 comments on commit 7d64018

Please sign in to comment.