summaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yaml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yaml')
-rw-r--r--.github/workflows/ci.yaml99
1 files changed, 99 insertions, 0 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
new file mode 100644
index 0000000..1d57123
--- /dev/null
+++ b/.github/workflows/ci.yaml
@@ -0,0 +1,99 @@
+name: CI
+
+on:
+ pull_request:
+ workflow_dispatch:
+ workflow_call:
+
+jobs:
+ build:
+ needs: [lint, format]
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - name: setup pnpm
+ uses: pnpm/action-setup@v2
+
+ - name: setup node
+ uses: actions/setup-node@v4
+ with:
+ node-version: 20
+ cache: pnpm
+ cache-dependency-path: pnpm-lock.yaml
+
+ - name: install deps
+ run: pnpm install --frozen-lockfile
+
+ - name: run build
+ run: pnpm build
+
+ - name: upload ./dist
+ uses: actions/upload-artifact@v3
+ with:
+ name: dist
+ path: dist
+
+ lint:
+ runs-on: ubuntu-latest
+
+ permissions:
+ security-events: write
+
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - name: setup pnpm
+ uses: pnpm/action-setup@v2
+
+ - name: setup node
+ uses: actions/setup-node@v4
+ with:
+ node-version: 20
+ cache: pnpm
+ cache-dependency-path: pnpm-lock.yaml
+
+ - name: install deps
+ run: pnpm install --frozen-lockfile
+
+ - name: run lint
+ run: pnpm run lint -f @microsoft/eslint-formatter-sarif -o /tmp/lint.sarif
+ continue-on-error: true
+
+ - name: strip suppressed results
+ run: pnpm dlx @ryanccn/sarif-strip-suppressed /tmp/lint.sarif
+
+ - name: upload results
+ uses: github/codeql-action/upload-sarif@v2
+ with:
+ sarif_file: /tmp/lint.sarif
+ wait-for-processing: true
+
+ format:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - name: setup pnpm
+ uses: pnpm/action-setup@v2
+
+ - name: setup node
+ uses: actions/setup-node@v4
+ with:
+ node-version: 20
+ cache: pnpm
+ cache-dependency-path: pnpm-lock.yaml
+
+ - name: install deps
+ run: pnpm install --frozen-lockfile
+
+ - name: run prettier
+ run: pnpm exec prettier --check .