Skip to content

Add compile + test CI workflow (TD-6314)#48

Open
tkusumo wants to merge 2 commits into
masterfrom
TD-6314/add-compile-test-ci-to-kcl-ex
Open

Add compile + test CI workflow (TD-6314)#48
tkusumo wants to merge 2 commits into
masterfrom
TD-6314/add-compile-test-ci-to-kcl-ex

Conversation

@tkusumo

@tkusumo tkusumo commented Jul 1, 2026

Copy link
Copy Markdown

What

Adds .github/workflows/test.yml (per epic TD-6309): a "full variant" CI job that compiles and runs the test suite.

  • Sets up the OTP-26 toolchain via erlef/setup-beam reading .tool-versions (version-type: strict) so CI matches local exactly.
  • Caches deps + _build keyed on mix.lock.
  • Runs mix deps.getmix compilemix test.
  • All deps are Hex packages, so no ssh-agent / git-dep auth is needed. permissions: contents: read only.

DynamoTest exclusion

KinesisClient.Stream.AppState.DynamoTest hits a real DynamoDB (localstack :4566) in setup_all, contrary to the "no DB needed" note on the ticket — without a DB it invalidates all 13 of its tests and fails the run (exit 2). Tagged it @moduletag :integration and set ExUnit.configure(exclude: [:integration]) in test_helper.exs so the default mix test runs the DB-free suite green (49 tests). The Dynamo tests still run locally with mix test --include integration.

Blocker status

The TD-6294 blocker (ssl_verify_fun 1.1.6 not compiling on OTP 26) is already resolved on master — mix.lock is at ssl_verify_fun 1.1.7. This workflow goes green.

Test plan

  • mix test locally: 49 tests, 0 failures, 13 excluded, exit 0
  • mix format --check-formatted: clean

🤖 Generated with Claude Code

Jon Kusumo and others added 2 commits July 1, 2026 13:08
Add .github/workflows/test.yml (per epic TD-6309): sets up the OTP-26
toolchain from .tool-versions, caches deps/_build, then runs mix compile
and mix test. All deps are Hex, so no ssh-agent is needed.

The KinesisClient.Stream.AppState.DynamoTest suite hits a real DynamoDB
(localstack :4566) in setup_all, contrary to the "no DB needed" note on
the ticket. Tag it @moduletag :integration and exclude :integration by
default in test_helper.exs so CI runs the DB-free suite green; the Dynamo
tests can still be run locally with `mix test --include integration`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
CoordinatorTest.setup_all called TestStream.create_stream/2, which makes
a real ExAws Kinesis request. Every test in the module drives the
Coordinator through KinesisMock + adapter: :test, so the created stream
is never used — the call was dead weight left over from an integration
setup. It passed locally only because awscli creds let ExAws resolve
credentials; on CI (no creds) it raised during the instance_role
metadata lookup, invalidating all 6 tests.

Remove the setup_all (and the now-unused @shard_count) so these run as
the pure mock-based unit tests they already are — no AWS/DB needed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
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