Add compile + test CI workflow (TD-6314)#48
Open
tkusumo wants to merge 2 commits into
Open
Conversation
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>
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
Adds
.github/workflows/test.yml(per epic TD-6309): a "full variant" CI job that compiles and runs the test suite.erlef/setup-beamreading.tool-versions(version-type: strict) so CI matches local exactly.deps+_buildkeyed onmix.lock.mix deps.get→mix compile→mix test.permissions: contents: readonly.DynamoTest exclusion
KinesisClient.Stream.AppState.DynamoTesthits a real DynamoDB (localstack:4566) insetup_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 :integrationand setExUnit.configure(exclude: [:integration])intest_helper.exsso the defaultmix testruns the DB-free suite green (49 tests). The Dynamo tests still run locally withmix test --include integration.Blocker status
The TD-6294 blocker (
ssl_verify_fun 1.1.6not compiling on OTP 26) is already resolved on master —mix.lockis atssl_verify_fun 1.1.7. This workflow goes green.Test plan
mix testlocally: 49 tests, 0 failures, 13 excluded, exit 0mix format --check-formatted: clean🤖 Generated with Claude Code