Repository navigation
chore(release): version packages - #1
Merged
Merged
Conversation
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.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and publish to npm yourself or setup this action to publish automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@bedrock-core/bds-runner@0.1.0
Minor Changes
b93b2deThanks @drav0011! - GameTests run headlessly on a real Bedrock Dedicated Server, and CI gets an exit code.A GameTest is only meaningful on the engine that will run it, and the only engine there is runs as
a server.
bc-bds runfetches the pinned build, lays the project's packs into a world, enables thebeta APIs the suites need, starts the server, runs a tagged set, reads the verdicts back off the
console and exits with a code CI can branch on.
--expect-registeredis the guard that makes a green run mean something: a suite that neverregistered cannot fail, so the run is only a pass when the count the project expects actually
registered. Failure kinds are distinguished on the way out — a failing test, a suite that never
appeared, and the server never coming up are different exit codes, because only one of them is the
code's fault.
The server is managed rather than scripted at:
BdsServerowns the process and its console,discoverPacksreads what a build produced,renderServerPropertieswrites the properties the runneeds while leaving the rest alone, and
parseReport/summarise/formatSummaryturn consolelines into a verdict per test. Each is exported, so a project that wants a different harness can
build one from the same parts.
bc-bds fetchandbc-bds whereare the cache: a build is downloaded once per version, keyed byplatform, and reused by every later run.
b93b2deThanks @drav0011! - Packs are optimized by the server's own converter, on the build the packs ask for.bc-bds optimizedrivesbedrock_server PackOptimizerConfigPath=<config>, which reads a directorywhose subdirectories are each one pack — Regolith's
build/is already that shape — minifies theirJSON, packs each folder into a
.brarchiveunder__brarchive/, and stampspack_optimization_versioninto the manifest.--unpackruns it backwards, expanding the archivesinto loose files again.
optimizePacksis the same thing as a function, returning what each packweighed before and after.
A
.brarchiveis a load-time format, not a compression one: it is an uncompressed per-directorycontainer costing about 256 bytes an entry, and what it buys is the client opening one file instead
of thousands.
A converted pack needs a 1.26.40 or newer client, and the converter does not raise
min_engine_versionto say so — which is why the build is chosen from the packs rather than from adefault. With no
bds-runner.json,detectPinwalks the project's manifests, takes the highestmin_engine_versionthey agree on, and picks the newest build published in that line:1.26.40resolves to the newest
1.26.40.x. Running the tests on exactly that build tests the promise thepacks make to players, and converting on it cannot emit an archive format the promise does not
allow.
The choice is written out as
bds-runner.jsonthe moment it is made, so it stops being implicitand every later run is reproducible. A project that already has the config file is never detected
for.
51acb30Thanks @drav0011! - First public release of the BDS GameTest runner. It downloads and provisions BDS, optimizes packs, runs tagged GameTests, and reports CI-ready results. It also rejects optimizer output paths that overlap source packs and cleans up only an incomplete generated world after a failed first boot.