diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 632e97d..5a51a94 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -1,14 +1,3 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# name: "CodeQL" on: @@ -20,6 +9,14 @@ on: schedule: - cron: '24 7 * * 0' +# Without these, init fails with "Resource not accessible by integration": +# uploading results needs security-events: write, and the action reads workflow +# metadata to correlate runs. +permissions: + actions: read + contents: read + security-events: write + jobs: analyze: name: Analyze @@ -28,40 +25,20 @@ jobs: strategy: fail-fast: false matrix: - language: [ 'javascript' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] - # 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 + language: ['javascript-typescript'] steps: - - name: Checkout repository - uses: actions/checkout@v2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 - - # â„šī¸ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl + - name: Checkout repository + uses: actions/checkout@v4 - # âœī¸ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: ${{ matrix.language }} - #- run: | - # make bootstrap - # make release + # No Autobuild step: that exists for compiled languages (C/C++, C#, Java, + # Go). CodeQL extracts JS/TS straight from source, so building first buys + # nothing and adds a failure mode. - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c378adc..91bee81 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,8 +11,13 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 + # Pinned rather than `latest`: an unpinned toolchain means a bun release can + # break CI with no change of ours, which is how the decorator regression in + # 1.3.x first showed up here. Verified against 1.2.21 and 1.3.14. - uses: oven-sh/setup-bun@v1 + with: + bun-version: 1.3.14 - run: bun install - run: bun typecheck - run: bun test diff --git a/tsconfig.deno.json b/tsconfig.deno.json index ac70923..c01d772 100644 --- a/tsconfig.deno.json +++ b/tsconfig.deno.json @@ -1,6 +1,13 @@ { // === THIS IS THE DEFAULT DENO CONFIGURATION : https://deno.land/manual/getting_started/typescript "compilerOptions": { + // Also set in tsconfig.json, but it has to be here: bun (1.3.x) reads this + // option only from the base of an `extends` chain and ignores the child's + // value, so with it declared solely downstream, bun applied modern TC39 + // decorator semantics to legacy decorators. mikro-orm's @PrimaryKey then + // received `undefined` as its target and the samples blew up under CI's + // bun while passing on 1.2.x. Harmless duplication for tsc. + "experimentalDecorators": true, "allowJs": false, "allowUmdGlobalAccess": false, "allowUnreachableCode": false,