chore: added templates etc to enable contributions #70
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 | |
run-misc-lints: | |
name: Lint misc. filetypes | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Lint YAML files with yamllint | |
uses: ibiqlik/action-yamllint@v3 | |
- name: Lint Markdown files with MarkdownLint | |
uses: articulate/actions-markdownlint@v1 | |
with: | |
files: '*.md' | |
ignore: '**/node_modules' | |
- name: Lint shell script files with ShellCheck | |
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?) |