123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- name: "Lint and Analyze Code"
- on:
- push:
- branches: [main, develop]
- pull_request:
- branches: [main]
- jobs:
- lint:
- name: Lint Code
- runs-on: ubuntu-latest
- strategy:
- matrix:
- node-version: [22.x]
- env:
- CI: "true"
- STORE_PATH: ""
- PNPM_VERSION: 9
- RETENTION_DAYS: 2
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- - name: Setup Node.js v${{ matrix.node-version }}
- uses: actions/setup-node@v4
- with:
- node-version: ${{ matrix.node-version }}
- - name: Setup pnpm
- uses: pnpm/action-setup@v4
- with:
- version: ${{ env.PNPM_VERSION }}
- run_install: false
- - name: Get pnpm store directory
- shell: bash
- run: |
- echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- - name: Setup pnpm cache
- uses: actions/cache@v4
- with:
- path: ${{ env.STORE_PATH }}
- key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
- restore-keys: |
- ${{ runner.os }}-pnpm-store-
- - name: Install dependencies
- run: pnpm i
- - name: Lint
- run: npm run lint
- analyze:
- name: Analyze Code
- runs-on: ubuntu-latest
- permissions:
- actions: read
- contents: read
- security-events: write
- strategy:
- matrix:
- language: ["javascript-typescript"]
- # CodeQL supports "c-cpp", "csharp", "go", "java-kotlin", "javascript-typescript", "python", "ruby", "swift"
- # Learn more:
- # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
- steps:
- - uses: actions/checkout@v4
- with:
- submodules: recursive
- - name: Initialize CodeQL
- uses: github/codeql-action/init@v3
- with:
- languages: ${{ matrix.language }}
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v3
|