• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

safe-global / safe-client-gateway / 36530955628
89%

Build:
DEFAULT BRANCH: main
Ran 29 Sep 2026 06:28AM UTC
Jobs 2
Files 1037
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Sep 2026 06:25AM UTC coverage: 89.335% (+24.8%) from 64.521%
36530955628

push

github

web-flow
feat(ci): move production onto the event-driven pipeline and delete ci.yml (#3493)

* feat(ci): move production onto the event-driven pipeline and delete ci.yml

Last of the four PRs splitting ci.yml into reusables plus callers. `production.yml` takes over the release event and `ci.yml` goes, leaving no trace of the monolith.

**Do not merge this before the production ArgoCD cutover.** The build half is safe — it publishes exactly the four tags ci.yml published, verified by simulating the tag composition: vX.Y.Z and latest on both GHCR and Docker Hub. The deploy half is not: it bumps values-production.yaml in the infra repo and then polls production until it reports the new tag, and production still renders from legacy-safe-argocd-mgmt. Until that changes, every release would build correctly and then sit in a ten-minute timeout before failing loudly. Land this with the cutover window, not ahead of it.

Two corrections to what this file inherited from safe-config-service.

**`released` instead of `published`.** `ci.yml` and `linear-release.yml` both use `released`, and the difference is not only that `published` also covers pre-releases. `published` does not fire again when a pre-release is promoted to a full release, so the soak-then-promote flow would tag a release and silently never deploy it — the `!prerelease` guard skips the build on the first event and nothing fires on the second. `released` covers the promotion and matches the rest of the repo. One line to flip if the team decides otherwise; the decision is recorded in WA-3421.

**`/about`, not `/v1/about`.** AboutController declares no version and app.provider.ts enables URI versioning with no defaultVersion, so the route is registered unversioned and /v1/about returns 404. With the inherited value the health gate would have timed out on every production deploy. Production also sits behind CloudFront, which rejects any User-Agent that does not look like a browser's — `_deploy.yml` already send... (continued)

4492 of 5283 branches covered (85.03%)

Branch coverage included in aggregate %.

11482 of 12598 relevant lines covered (91.14%)

546.17 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
83.96
-0.94% src/modules/relay/domain/relayers/no-fee-campaign.relayer.ts
Jobs
ID Job ID Ran Files Coverage
1 run-integration-tests - 36530955628.1 29 Sep 2026 06:30AM UTC 1037
64.55
GitHub Action Run
2 run-unit-tests - 36530955628.2 29 Sep 2026 06:28AM UTC 1037
67.05
GitHub Action Run
Source Files on build 36530955628
  • Tree
  • List 1037
  • Changed 566
  • Source Changed 0
  • Coverage Changed 566
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #36530955628
  • 2db5dd31 on github
  • Prev Build on main (#36448891492)
  • Next Build on main (#36544914617)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc