Skip to content

ci: add scheduled public API e2e tests (CM-968)#4398

Draft
skwowet wants to merge 6 commits into
mainfrom
ci/CM-968-api-e2e-tests
Draft

ci: add scheduled public API e2e tests (CM-968)#4398
skwowet wants to merge 6 commits into
mainfrom
ci/CM-968-api-e2e-tests

Conversation

@skwowet

@skwowet skwowet commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds a scheduled Public API e2e suite against the dedicated api-e2e stack (crowd_api_e2e), so we can catch contract regressions on main without hand-running against shared staging.

Changes

  • Add .github/scripts/public-api-e2e-tests.sh (HTTP seed + resource suites)
  • Add .github/workflows/api-e2e-tests.yml (deploy api-e2e from main, then run the suite)
  • Register api-e2e in scripts/builders/backend.env
  • Document architecture and suite design in ADR-0011 / ADR-0012

@skwowet skwowet self-assigned this Jul 25, 2026
Copilot AI review requested due to automatic review settings July 25, 2026 18:06
Comment thread .github/workflows/api-e2e-tests.yml Fixed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds scheduled Public API end-to-end regression testing against the isolated api-e2e deployment.

Changes:

  • Adds the scheduled deployment and test workflow.
  • Adds HTTP-based fixture seeding and resource suites.
  • Registers and documents the new e2e architecture.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
.github/scripts/public-api-e2e-tests.sh Implements the Public API test suite.
.github/workflows/api-e2e-tests.yml Deploys and tests api-e2e nightly.
scripts/builders/backend.env Maps api-e2e to the backend image.
docs/adr/0011-api-e2e-test-architecture.md Documents runtime and isolation decisions.
docs/adr/0012-api-e2e-test-suite-design.md Documents suite organization.
docs/adr/README.md Indexes the new ADRs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/api-e2e-tests.yml Outdated
Comment thread .github/workflows/api-e2e-tests.yml Outdated
Comment thread .github/workflows/api-e2e-tests.yml
Comment thread docs/adr/0011-api-e2e-test-architecture.md Outdated
Comment thread docs/adr/0011-api-e2e-test-architecture.md Outdated
Copilot AI review requested due to automatic review settings July 25, 2026 18:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.

skwowet added 4 commits July 26, 2026 19:23
Signed-off-by: Yeganathan S <63534555+skwowet@users.noreply.github.com>
Signed-off-by: Yeganathan S <63534555+skwowet@users.noreply.github.com>
Signed-off-by: Yeganathan S <63534555+skwowet@users.noreply.github.com>
Signed-off-by: Yeganathan S <63534555+skwowet@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 26, 2026 13:54
@skwowet
skwowet force-pushed the ci/CM-968-api-e2e-tests branch from 94a8eb5 to 71617ab Compare July 26, 2026 13:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Comments suppressed due to low confidence (1)

.github/scripts/public-api-e2e-tests.sh:113

  • The Auth0 request is also unbounded, so a stalled token endpoint can consume the entire 90-minute job timeout before any test runs. Give this curl call a short connect and total timeout as well.
  response="$(curl -sS -X POST "${AUTH0_STAGING_ISSUER}/oauth/token" \

Comment thread .github/scripts/public-api-e2e-tests.sh Outdated
Comment thread .github/scripts/public-api-e2e-tests.sh
Comment thread .github/scripts/public-api-e2e-tests.sh
Comment thread docs/adr/0012-api-e2e-test-architecture.md Outdated
Signed-off-by: Yeganathan S <63534555+skwowet@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 26, 2026 17:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.

Comment thread .github/scripts/public-api-e2e-tests.sh
Signed-off-by: Yeganathan S <63534555+skwowet@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 26, 2026 18:06

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

.github/workflows/api-e2e-tests.yml:78

  • A job-level timeout cancels the whole e2e-tests job, so this later step is never reached when the 90-minute limit is hit. That leaves a hung build/deploy/test without the Slack alert promised by the ADR. Move notification into a separate job that needs: e2e-tests and runs when always() && needs.e2e-tests.result != 'success', so failures and timeouts are both reported.
        if: failure()

Comment on lines +17 to +19
Implement API e2e tests as HTTP bash script(s) with this structure. Current entrypoint: [`.github/scripts/public-api-e2e-tests.sh`](../../.github/scripts/public-api-e2e-tests.sh). New suites should reuse this pattern (same script or additional scripts), not invent a parallel style.

The suite is **thin**: assert the HTTP contract and critical flows so regressions show up early. Leave exhaustive edge-case matrices to unit or focused contract tests.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants