Add a build workflow and Renovate support - #26
Merged
Merged
Conversation
Run formatting, lint, and the full Gradle build on pushes to main and on PRs, mirroring the Recipes setup: - JDK 25 (Corretto) to match the pinned daemon JVM. - ktfmtCheck at the root, plus a build-logic pass for ktfmt, checkSortDependencies, and detekt, which are wired up only on the build-logic included build. - ./gradlew build. On ubuntu-latest this compiles the Apple klibs and runs the js/wasmJs browser tests (Chrome ships on the runner) but skips linking the Apple frameworks and running the Apple test binaries. - packages: read plus the GITHUB_TOKEN fallback so the io.github.solcott dataresult/uistate artifacts resolve from GitHub Packages. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Enable Renovate with config:recommended (dependency dashboard, grouped updates, changelog links). Disable the io.github.solcott dataresult and uistate artifacts: they are -SNAPSHOTs on GitHub Packages that Renovate can't read without a token, so they are bumped by hand. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The first CI run surfaced a pre-existing fragility: :shared-compose's jsBrowserTest disconnects with "no message in 30000 ms" and then fails claiming it discovered no tests. ComposeGraphSaverTest builds the real graph, which reaches :ui and drags skiko into the bundle (~15 MB), and headless Chrome on the runner spends the whole 30s default just loading it before any test reports. It passes locally, where Chrome is fast. Raise browserNoActivityTimeout (and the disconnect/ping timeouts) via a karma.config.d snippet, and document the trap alongside the related "did not discover any tests" note in AGENTS.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Adds basic CI and Renovate support, modeled on the setup just added to the Recipes project.
Build workflow (
.github/workflows/build.yml)Runs on pushes to
mainand on PRs:gradle/gradle-daemon-jvm.properties.ktfmtCheckat the root.ktfmt,checkSortDependencies, anddetektrun via-p build-logic, sincethose plugins are wired up only on that included build, not the root modules.
./gradlew build. Onubuntu-latestthis compiles the Apple klibs and runs thejs/wasmJs browser tests (Chrome ships on the runner), but skips linking the Apple frameworks and
running the Apple test binaries. A follow-up could move to
macos-latestfor full Apple coverage,as kmp-dataresult does.
packages: read+ theGITHUB_TOKENfallback so theio.github.solcottdataresult/uistateartifacts resolve from GitHub Packages.
Adapted from Recipes: dropped its
MEALDB_API_KEY(Countries uses the public Countries GraphQL API,no key), and split detekt/sort into a
build-logicstep since they don't exist on the root moduleshere.
Renovate (
.github/renovate.json5)config:recommended, with theio.github.solcott:dataresult*/uistate*artifacts disabled —they're
-SNAPSHOTs on GitHub Packages that Renovate can't read without a token, so they're bumpedby hand.
Follow-up (not code)
Renovate needs the Renovate GitHub App enabled on the repo to do anything; the config file alone
is inert until then.
Not verified locally
I did not run the workflow or the full build locally — it spans six KMP targets and needs the
GitHub Packages token. The YAML parses; the real check is the first CI run on this PR.
🤖 Generated with Claude Code