Skip to content

Commit 101f227

Browse files
committed
ci: restore CI - use large runners, disable non-allowlisted actions
CI on this repo has been dead since 2025-12-19. Every run on every branch failed with `startup_failure` at 0s. Two independent causes, both verified: 1. `runs-on: ubuntu-latest` no longer gets a runner allocated. The last green run (2025-12-19) was served by runner group "GitHub Actions"; today an identical job sits queued indefinitely with an empty runner group. This repo is public, so it uses the GitHub-hosted larger-runner labels. Verified: `ubuntu-latest` queued >6min; `ubuntu-latest-large` picked up a runner in seconds and went green in 34s. 2. This repo's Actions policy permits only GitHub-owned `actions/*` (`allowed_actions: selected`, `patterns_allowed: []`, `verified_allowed: false`) and enforces `sha_pinning_required: true`. Referencing `snyk/actions/node` or `codecov/codecov-action` fails the whole run at startup, regardless of pinning. So: switch to `ubuntu-latest-large`, and comment out the two third-party action steps with TODOs explaining how to restore them. Both are commented, not deleted, and keep their SHA-pinned refs so re-enabling is a one-line change once the actions are allowlisted via the SSC Help portal. Snyk is a security step and Codecov backs non-informational coverage gates in codecov.yml — neither should stay disabled untracked. This follows the same disable-with-TODO pattern used in segmentio/fql's locked-down pipeline.
1 parent 3235e4f commit 101f227

1 file changed

Lines changed: 43 additions & 17 deletions

File tree

.github/workflows/ci.yml

Lines changed: 43 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ on: [push]
44

55
jobs:
66
test-and-build:
7-
runs-on: ubuntu-latest
7+
# fql-ts is a public repo, so it runs on GitHub-hosted runners. Plain
8+
# `ubuntu-latest` no longer gets allocated one — jobs sit queued forever.
9+
# Public repos use the larger-runner labels. Verified: `ubuntu-latest`
10+
# queued >6min with an empty runner group; `ubuntu-latest-large` picked up
11+
# a runner in seconds.
12+
runs-on: ubuntu-latest-large
813

914
strategy:
1015
matrix:
@@ -21,26 +26,47 @@ jobs:
2126
- name: Install Dependencies
2227
run: yarn install --frozen-lockfile
2328

24-
- name: Run Snyk to check for vulnerabilities
25-
# Was `@master` — a mutable branch ref on a third-party action running
26-
# with SNYK_TOKEN in scope. Pinned to the v1.0.0 release commit.
27-
# NOTE: this action is Docker-based and still pulls the mutable
28-
# `docker://snyk/snyk:node` image at runtime, so the SHA pin bounds the
29-
# action code but not the scanner image.
30-
uses: snyk/actions/node@9adf32b1121593767fc3c057af55b55db032dc04 # v1.0.0
31-
env:
32-
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
33-
with:
34-
args: --severity-threshold=high --fail-on=upgradable
29+
# TODO: re-enable Snyk scanning. This repo's Actions policy allows only
30+
# GitHub-owned `actions/*` (`patterns_allowed: []`,
31+
# `verified_allowed: false`), so referencing `snyk/actions/node` at all
32+
# fails the whole run with `startup_failure` before any step executes.
33+
# This is a SECURITY step — it must not stay disabled untracked.
34+
#
35+
# To restore: get `snyk/actions/*` added to the repo/org allowlist via the
36+
# SSC Help portal, then uncomment. The ref below is already SHA-pinned to
37+
# satisfy `sha_pinning_required: true` (it was previously `@master` — a
38+
# mutable branch ref on a third-party action running with SNYK_TOKEN in
39+
# scope, which is why it should not be restored as `@master`).
40+
#
41+
# Caveat for whoever re-enables it: this action is Docker-based and pulls
42+
# the mutable `docker://snyk/snyk:node` image at runtime, so the SHA pin
43+
# bounds the action code but not the scanner image.
44+
#
45+
# - name: Run Snyk to check for vulnerabilities
46+
# uses: snyk/actions/node@9adf32b1121593767fc3c057af55b55db032dc04 # v1.0.0
47+
# env:
48+
# SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
49+
# with:
50+
# args: --severity-threshold=high --fail-on=upgradable
3551

3652
- name: Lint
3753
run: yarn lint
3854

3955
- name: Test
4056
run: yarn test --coverage
4157

42-
- name: Upload coverage reports to Codecov
43-
uses: codecov/codecov-action@0fb7174895f61a3b6b78fc075e0cd60383518dac # v5.5.5
44-
with:
45-
token: ${{ secrets.CODECOV_TOKEN }}
46-
slug: segmentio/fql-ts
58+
# TODO: re-enable the Codecov upload. Blocked by the same Actions policy as
59+
# the Snyk step above — `codecov/codecov-action` is not GitHub-owned, so
60+
# referencing it fails the run at startup.
61+
#
62+
# Note `codecov.yml` sets non-informational gates (93.14% project / 80%
63+
# patch). With no upload, those checks have no data to report against, so
64+
# this must be restored before relying on coverage as a merge gate.
65+
#
66+
# To restore: get `codecov/codecov-action@*` allowlisted, then uncomment.
67+
#
68+
# - name: Upload coverage reports to Codecov
69+
# uses: codecov/codecov-action@0fb7174895f61a3b6b78fc075e0cd60383518dac # v5.5.5
70+
# with:
71+
# token: ${{ secrets.CODECOV_TOKEN }}
72+
# slug: segmentio/fql-ts

0 commit comments

Comments
 (0)