Skip to content

[Feature] Harden non-blocking e2e-artifacts workflow #24

@Astro-Han

Description

@Astro-Han

What task are you trying to do?

Harden the e2e-artifacts GitHub Actions workflow that ships in PR #20. The workflow is intentionally non-blocking (continue-on-error: true) and only runs on Linux, fork-safe, with artifact retention as the primary signal.

It works. The follow-up is to make failures more visible without turning the gate strict, and to make the contract test less brittle.

What do you do today?

Today the workflow runs but has four small rough edges that PR #20 intentionally left out of scope:

  1. Failure visibility — A failed E2E run is silent in the PR summary because continue-on-error: true swallows the red signal. You need to dig into the workflow run page to notice it failed.
  2. Workflow contract test brittlenesspackages/opencode/test/config/e2e-artifacts-workflow.test.ts matches the run: block with a text regex. Any harmless YAML reformat breaks the test.
  3. Path leak assertion is too narrow — The contract test only guards against the literal string /Users/yuhan/ appearing in workflow text. Any other contributor's home path would slip through.
  4. Smoke script indirection — The workflow runs bun --cwd packages/app test:e2e:local -- --grep @smoke instead of using the dedicated test:e2e:local:smoke script that already exists.

What would a good result look like?

  • A clear warning annotation (or equivalent lightweight signal) shows up in the PR summary when non-blocking E2E fails, without changing gate strength.
  • The workflow contract test asserts on parsed YAML structure rather than raw block text, so harmless reformatting doesn't break it.
  • The path leak assertion catches any local user path, not just one hardcoded one.
  • Decide whether to switch the smoke path to test:e2e:local:smoke, and if yes, update the workflow and contract test together.

None of these are blockers for the merged workflow. They are scoped hardening / cleanup.

Which audience does this matter to most?

Both — better failure visibility benefits anyone (contributor or maintainer) reviewing PRs; the contract test and path leak guards benefit the project regardless of who runs the workflow.

Extra context

  • Origin PR: #20
  • Files touched if implemented:
    • .github/workflows/e2e-artifacts.yml
    • packages/opencode/test/config/e2e-artifacts-workflow.test.ts
    • packages/app/package.json

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low priorityciContinuous integration / GitHub ActionsenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions