Skip to content

chore: consolidate eslint comments, add justification for disabling #3234

chore: consolidate eslint comments, add justification for disabling

chore: consolidate eslint comments, add justification for disabling #3234

Workflow file for this run

name: CI
# **What it does**: Runs our tests.
# **Why we have it**: We want our tests to pass before merging code.
on:
push:
branches:
- main
paths-ignore:
- "docs/**"
- "*.md"
pull_request:
branches:
- main
paths-ignore:
- "docs/**"
- "*.md"
types: [opened, ready_for_review, reopened, synchronize]
permissions:
contents: read
# This allows a subsequently queued workflow run to interrupt previous runs
concurrency:
group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}"
cancel-in-progress: true
jobs:
dependency-review:
name: Dependency Review
if: >
github.event.pull_request.draft == false &&
github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Dependency review
uses: actions/dependency-review-action@v3
lint:
name: Lint Code
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Node
uses: actions/setup-node@v3
with:
cache: npm
node-version: lts/*
- name: Install
run: npm ci --ignore-scripts
- name: Audit NPM package signatures
run: npm audit signatures
- name: Run ESLint
run: npm run lint
- name: Run Prettier
run: npm run lint:prettier
- name: Run License Checker
run: npm run lint:licenses
- name: Run Lockfile Linter
run: npm run lint:lockfile
commit-lint:
name: Lint Commit Messages
if: >
github.event.pull_request.draft == false &&
github.actor != 'dependabot[bot]'
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false
- name: Run Commitlint
uses: wagoid/commitlint-github-action@v5
with:
configFile: ./package.json
unit-tests:
name: Unit Tests
if: github.event.pull_request.draft == false
strategy:
matrix:
node-version: [18, 20]
os: [macos-latest, ubuntu-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Check out repo
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Node ${{ matrix.node-version }} on ${{ matrix.os }}
uses: actions/setup-node@v3
with:
cache: npm
node-version: ${{ matrix.node-version }}
- name: Install
run: npm ci --ignore-scripts
- name: Install Playwright
run: npx playwright install --with-deps firefox
- name: Run macOS tests
if: matrix.os == 'macos-latest'
env:
HOMEBREW_NO_ANALYTICS: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
POPPLER_BINARY_PATH: /usr/local/bin
UNRTF_BINARY_PATH: /usr/local/bin
run: |
brew install unrtf poppler
cp .env.template .env
chmod 100 ./node_modules/htmltidy2/bin/darwin/tidy
npm run jest:coverage -- --ci
- name: Run Ubuntu tests
if: matrix.os == 'ubuntu-latest'
env:
POPPLER_BINARY_PATH: /usr/bin
UNRTF_BINARY_PATH: /usr/bin
run: |
sudo apt-get -y install poppler-data poppler-utils unrtf
cp .env.template .env
chmod 100 ./node_modules/htmltidy2/bin/linux64/tidy
npm run jest:coverage -- --ci
- name: Run Windows tests
if: matrix.os == 'windows-latest'
run: |
cp .env.template .env
npm run jest:coverage -- --ci
- name: Coveralls parallel
if: github.repository == 'Fdawgs/docsmith'
uses: coverallsapp/[email protected]
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel: true
flag-name: run-${{ matrix.node-version }}-${{ matrix.os }}
build:
name: Build
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup Node
uses: actions/setup-node@v3
with:
cache: npm
node-version: lts/*
- name: Install
run: npm ci --ignore-scripts
- name: Run esbuild
run: npm run build
lint-docker-file:
name: Lint Dockerfile
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Run Hadolint
uses: hadolint/[email protected]
with:
dockerfile: Dockerfile
ignore: DL3008
docker-compose-tests:
name: Docker Compose Build Tests
needs: lint-docker-file
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Build and start app
run: |
cp .env.template .env
docker compose up -d
coverage:
name: Aggregate Coverage Calculations
needs: unit-tests
if: >
github.event.pull_request.draft == false &&
github.repository == 'Fdawgs/docsmith'
runs-on: ubuntu-latest
steps:
- name: Coveralls finished
uses: coverallsapp/[email protected]
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
parallel-finished: true
# This job is used to save the PR number in an artifact, for use in the automerge.yml workflow
save-pr-number:
name: Save Dependabot PR Number
needs: unit-tests
if: >
github.event.pull_request.draft == false &&
github.event_name == 'pull_request' &&
github.event.pull_request.user.login == 'dependabot[bot]'
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Save PR number
run: |
mkdir -p ./pr
echo ${{ github.event.number }} > ./pr/NR
- name: Upload PR number in artifact
uses: actions/upload-artifact@v3
with:
name: pr
path: pr/