name: Code Review - TypeScript on: pull_request: branches: ['main', 'dev'] paths: ['ts/**'] push: paths: ['ts/**'] jobs: format: name: Format runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Node uses: actions/setup-node@v3 with: node-version: '16' cache: 'yarn' - name: Install dependencies run: yarn install --frozen-lockfile - name: Format run: yarn format lint: name: Lint runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Node uses: actions/setup-node@v3 with: node-version: '16' cache: 'yarn' - name: Install dependencies run: yarn install --frozen-lockfile - name: Lint run: yarn lint unit-test: name: Unit Test runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Node uses: actions/setup-node@v3 with: node-version: '16' cache: 'yarn' - name: Install dependencies run: yarn install --frozen-lockfile - name: Run Test run: yarn test semgrep: name: Security Scan runs-on: ubuntu-latest container: image: returntocorp/semgrep steps: - name: Checkout code uses: actions/checkout@v3 - name: Run semgrep run: semgrep ci --sarif --output=semgrep-results.sarif env: SEMGREP_RULES: p/typescript - name: Upload output uses: github/codeql-action/upload-sarif@v2 if: always() with: sarif_file: semgrep-results.sarif