name: Static Analysis on: pull_request: {} push: branches: [develop, master] permissions: {} # No permissions needed jobs: ts_lint: name: "Typescript Syntax Check" runs-on: ubuntu-24.04 steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 with: node-version-file: package.json cache: "pnpm" # Does not need branch matching as only analyses this layer - name: Install Deps run: "pnpm install --frozen-lockfile" - name: Typecheck run: "pnpm run lint:types" i18n_lint: name: "i18n Check" uses: matrix-org/matrix-web-i18n/.github/workflows/i18n_check.yml@3673fd3abbf8dfae1de849c6cd3e69e24ed7a766 permissions: pull-requests: read with: hardcoded-words: "Element" packageManager: pnpm js_lint: name: "ESLint" runs-on: ubuntu-24.04 steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 with: node-version-file: package.json cache: "pnpm" # Does not need branch matching as only analyses this layer - name: Install Deps run: "pnpm install --frozen-lockfile" - name: Run Linter run: "pnpm run lint:js" workflow_lint: name: "Workflow Lint" runs-on: ubuntu-24.04 steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 with: node-version-file: package.json cache: "pnpm" # Does not need branch matching as only analyses this layer - name: Install Deps run: "pnpm install --frozen-lockfile" - name: Run Linter run: "pnpm lint:workflows" analyse_dead_code: name: "Analyse Dead Code" runs-on: ubuntu-24.04 steps: - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4 - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 with: node-version-file: package.json cache: "pnpm" - name: Install Deps run: "pnpm install --frozen-lockfile" - name: Run linter run: "pnpm run lint:knip"