chore: added ci lints and script to update dependencies and format code #73
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
# docs at: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions | |
name: CI | |
on: [push, pull_request] | |
jobs: | |
# TODO: check project builds/compiles correctly, maybe with tsc TypeScript compiler? | |
# TODO: add tests including coverage | |
lint_src_files: | |
name: Lint source files | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- run: npm ci | |
- name: Lint source files with Prettier | |
run: > | |
npx prettier --check | |
. | |
--config | |
.prettierrc.yaml | |
--ignore-path | |
.prettierignore | |
- name: Lint source files with ESLint | |
run: > | |
npx eslint | |
. | |
--config | |
.eslintrc.yaml | |
--ignore-path | |
.eslintignore | |
check-npm-dependencies: | |
name: Check npm dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- run: npm ci | |
- name: Scan for known vulnerabilities in dependencies with npm audit | |
run: > | |
npm audit | |
--audit-level | |
critical | |
- name: Check for unused and missing dependencies with depcheck | |
run: > | |
npx depcheck | |
--ignores | |
typescript,prettier | |
- name: Check for outdated packages with npm outdated | |
run: npm outdated | |
- name: Check for outdated packages with npm-check-updates | |
run: npx npm-check-updates | |
find_todos: | |
name: Search for TODOs etc | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Search for TODO, FIXME, and BUG statements in source files | |
run: > | |
if grep | |
--recursive | |
--extended-regexp | |
--with-filename | |
--line-number | |
--color=always | |
"TODO|FIXME|BUG" | |
./src; | |
then exit 1; | |
else | |
echo "No TODO, FIXME, or BUG statements found in source files."; | |
fi | |
typos_spell_check: | |
name: Check spelling with typos | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check spelling with typos | |
uses: crate-ci/typos@master | |
with: | |
config: .typos.toml | |
lint_markdown_files: | |
name: Lint Markdown files | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: articulate/actions-markdownlint@v1 | |
with: | |
files: '*.md' | |
ignore: '**/node_modules' | |
lint_yaml_files: | |
name: Lint YAML files | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ibiqlik/action-yamllint@v3 | |
lint_shell_script_files: | |
name: Lint shell scripts | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: azohra/shell-linter@latest | |
commitlint: | |
name: Enforce Conventional Commits | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check the commits conform to the Conventional Commits specification with commitlint | |
uses: wagoid/commitlint-github-action@v5 | |
# TODO: check commits squashed into one (i.e. all changes in a PR are in one commit after last one in primary branch) | |
# TODO: use semver to increase version numbers and update changelog automatically | |
# TODO: publish new release automatically if version increased and CI passes (use release-please?) |