Skip to content

CI: lightweight checks on PRs (follow-up to #62) #87

Open

Description

@tarwin

#62 proposed push/PR checks (bootstrap, version/new/build, GUI smoke) on macOS, Windows and Ubuntu 22.04. The goal is right: today build breaks surface at tag time, or only if a release-test/** branch is pushed by hand. It was closed because of how it was shaped, not because of the idea. Notes for a future version:

Keep from #62

  • A separate workflow with contents: read, no caches, persist-credentials: false, so fork PRs can't touch release builds or the tjs cache. Don't just add a PR trigger to release.yml.
  • Stricter smoke validation than release.yml's || true + grep: check the exit code and timeouts, and reject a crash that happens after SMOKE RESULTS.

Do differently

  • Triggers: pull_request + push to main only, with paths-ignore for docs/** and *.md. ci: check builds and GUI smoke tests on pull requests #62 ran every push on every branch, so same-repo PR branches ran twice and docs commits paid a full uncached Linux tjs build (15–25 min).
  • Read TJS_VERSION from setup.sh instead of setting it a fourth time.
  • Share the GLIBC/GLIBCXX ceiling and macOS launcher checks with release.yml (one script both call), not a second copy that drifts.
  • Smoke validation: don't hard-code the result keys; adding a check to test/smoke.html shouldn't require a CI edit.
  • Keep the harness small and close to the repo's existing style (shell/JS). Avoid a large standalone Python harness.

Gaps worth deciding on

  • Packaging isn't covered. Recent release fixes (e.g. c2a3b5e, the Windows zip missing install.ps1) were packaging, not build.
  • No arm64 Linux/Windows legs.
  • The test/*/ checks (gates, wire-lines, update-*) don't run anywhere automatically. A headless subset may be worth more than another build.

Until then: push a release-test/<name> branch before tagging for a full dry run.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions