Skip to content

ci: add ci workflow

ci: add ci workflow #2

Workflow file for this run

name: CI
on: [push, pull_request]
env:
CI: true
permissions:
contents: read
jobs:
test:
name: Run tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- macos-latest
- ubuntu-latest
- windows-latest
steps:
- name: Install clang for Windows
if: runner.os == 'Windows'
run: |
iwr -useb get.scoop.sh -outfile 'install.ps1'
.\install.ps1 -RunAsAdmin
scoop install llvm --global
# Scoop modifies the PATH so we make the modified PATH global.
echo $env:PATH >> $env:GITHUB_PATH
- name: Fetch code
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
fetch-depth: 1
- name: Setup Node.js
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # 4.0.3
with:
node-version: 'lts/*'
cache: 'npm'
cache-dependency-path: package-lock.json
- name: Install dependencies
run: npm ci --ignore-scripts
- name: Run tests
run: npm run test
lint:
name: Run Lint
runs-on: ubuntu-latest
steps:
- name: Fetch code
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
fetch-depth: 1
- name: Restore node_modules cache
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install dependencies
run: npm ci --ignore-scripts
- name: Run lint command
run: npm run lint