Skip to content

Add a build workflow and Renovate support - #26

Merged
solcott merged 3 commits into
mainfrom
ci-and-renovate
Sep 11, 2026
Merged

Add a build workflow and Renovate support#26
solcott merged 3 commits into
mainfrom
ci-and-renovate

Conversation

@solcott

@solcott solcott commented Sep 11, 2026

Copy link
Copy Markdown
Owner

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 main and on PRs:

  • JDK 25 (Corretto) to match gradle/gradle-daemon-jvm.properties.
  • FormattingktfmtCheck at the root.
  • build-logicktfmt, checkSortDependencies, and detekt run via -p build-logic, since
    those plugins are wired up only on that included build, not the root modules.
  • 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. A follow-up could move to macos-latest for full Apple coverage,
    as kmp-dataresult does.
  • packages: read + the GITHUB_TOKEN fallback so the io.github.solcott dataresult/uistate
    artifacts 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-logic step since they don't exist on the root modules
here.

Renovate (.github/renovate.json5)

config:recommended, with the io.github.solcott:dataresult* / uistate* artifacts disabled —
they're -SNAPSHOTs on GitHub Packages that Renovate can't read without a token, so they're bumped
by 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

solcott and others added 3 commits September 11, 2026 14:28
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>
@solcott
solcott merged commit 5e9770a into main Sep 11, 2026
1 check passed
@solcott
solcott deleted the ci-and-renovate branch September 11, 2026 21:44
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.

1 participant