ci: run test:unit on merge gate, drop live-Testnet integration tests#40
Merged
Conversation
The Test workflow ran 'deno task test' on push/PR, executing the live public Stellar Testnet '*.integration.test.ts' suite. Those tests depend on real network ops (contract WASM upload) that transiently fail, validating the network rather than the code. Point the gate at 'deno task test:unit' (deterministic, no integration). The 'test:integration' task is retained for on-demand runs.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
AquiGorka
added a commit
that referenced
this pull request
Jul 8, 2026
…(main) (#43) ## What Change the Test workflow's test step from `deno task test` to `deno task test:unit`, so the merge gate runs only the deterministic unit suite and no longer executes the live-Testnet `*.integration.test.ts` tests on push/PR. This ports the effect of #40 (merged to `dev`) to `main`. `main` and `dev` share the same relevant structure here: the gate runs `deno task test` (everything, including integration), and `main`'s `deno.json` already defines a `test:unit` task that ignores `**/*.integration.test.ts`. ## Why `deno task test` runs everything, including `*.integration.test.ts` against the live public Stellar Testnet. Those tests depend on real network ops (e.g. uploading contract WASM) that transiently fail — a flaky merge gate that validates the network, not the code. ## Scope - `.github/workflows/test.yml`: `deno task test` -> `deno task test:unit`. Lint and coverage steps unchanged; `test:unit` produces the same `coverage` dir the coverage step consumes. - `test:integration` task **retained** in `deno.json` for on-demand/manual runs — not deleted or modified. - `deno.json` patch bump 0.11.1 -> 0.11.2. ## Verification (local, deno 2.9.0) - `deno fmt --check` — clean (105 files). - `deno lint` — clean (96 files). - `deno task test:unit` — `17 passed (199 steps) | 0 failed`; zero integration tests executed. - Coverage step generates `coverage.lcov` from the `test:unit` coverage dir.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Change the Test workflow's test step from
deno task testtodeno task test:unit, so the merge gate runs only the deterministic unit suite and no longer executes the live-Testnet*.integration.test.tstests on push/PR.Why
deno task testruns everything, including*.integration.test.tsagainst the live public Stellar Testnet. Those tests depend on real network ops (e.g. uploading contract WASM) that transiently fail — a flaky merge gate that validates the network, not the code. This produced redTest (push)runs onmain(2026-06-17, 2026-06-23:CONTR_004: Failed to upload WASM to the network) while the same code passed on retried PR runs.Scope
.github/workflows/test.yml:deno task test→deno task test:unit. Lint and coverage steps unchanged;test:unitproduces the samecoveragedir the coverage step consumes.test:integrationtask retained indeno.jsonfor on-demand/manual runs — not deleted or modified.deno.jsonpatch bump 0.6.1 → 0.6.2.Verification (local, deno 2.9.0)
deno lint— clean (89 files).deno task test:unit—13 passed (151 steps) | 0 failed (1s); zero integration tests executed.coverage.lcovfrom thetest:unitcoverage dir.