5 commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
1af10420ce |
fix(db): convert ai_credits timestamp columns to TIMESTAMPTZ
Some checks failed
build-and-release / build (cron) (push) Successful in 57s
build-and-release / build (customers) (push) Successful in 1m54s
build-and-release / build (employees) (push) Successful in 2m11s
build-and-release / build (companies) (push) Successful in 2m27s
build-and-release / build (catering-services) (push) Successful in 2m28s
build-and-release / build (gateway) (push) Successful in 48s
build-and-release / build (developers) (push) Successful in 3m3s
build-and-release / build (jobs) (push) Successful in 43s
build-and-release / build (fitness-trainers) (push) Successful in 2m36s
build-and-release / build (makeup-artists) (push) Successful in 1m45s
build-and-release / build (graphic-designers) (push) Successful in 2m38s
build-and-release / build (job-seekers) (push) Successful in 2m28s
build-and-release / build (photographers) (push) Successful in 2m34s
build-and-release / build (social-media-managers) (push) Successful in 2m34s
build-and-release / build (payments) (push) Successful in 3m20s
backend-integration-tests / ai-credits (push) Failing after 44s
build-and-release / build (tutors) (push) Successful in 2m41s
build-and-release / build (video-editors) (push) Has been cancelled
build-and-release / build (users) (push) Has been cancelled
build-and-release / build (ugc-content-creators) (push) Successful in 2m41s
9 columns across ai_plans/user_ai_subscriptions/ai_feature_costs/ ai_usage_logs were TIMESTAMP (no timezone), left over from whatever pre-20260703210000 mechanism originally created these 4 tables, but crates/db/src/models/ai_credits.rs maps all of them to DateTime<Utc>, which sqlx requires TIMESTAMPTZ for. This is a live bug, not just a test-setup gap - discovered via crates/db/tests/ai_credits.rs failing with ColumnDecode errors, but any production code path selecting these columns (e.g. current_period_start/end on every wallet read) would hit the same failure. ALTER COLUMN ... USING col AT TIME ZONE 'UTC' is lossless here since every write path uses NOW()/DEFAULT NOW() with no other timezone handling anywhere in the codebase. Applied to both nxtgauge_test and the live nxtgauge database directly; verified all 9 columns converted and the 3 existing user_ai_subscriptions + 4 ai_plans rows' values are intact and correctly interpreted as UTC afterward. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|
|
675a5a12c5 |
chore: trigger ai-credits CI re-run with seeded test data
Some checks failed
build-and-release / build (catering-services) (push) Successful in 13s
build-and-release / build (cron) (push) Successful in 13s
build-and-release / build (companies) (push) Successful in 16s
build-and-release / build (customers) (push) Successful in 28s
build-and-release / build (fitness-trainers) (push) Successful in 19s
build-and-release / build (graphic-designers) (push) Successful in 18s
build-and-release / build (gateway) (push) Successful in 27s
build-and-release / build (jobs) (push) Successful in 15s
build-and-release / build (makeup-artists) (push) Successful in 13s
build-and-release / build (job-seekers) (push) Successful in 29s
build-and-release / build (payments) (push) Successful in 20s
build-and-release / build (social-media-managers) (push) Successful in 13s
build-and-release / build (photographers) (push) Successful in 26s
build-and-release / build (ugc-content-creators) (push) Successful in 14s
build-and-release / build (users) (push) Successful in 14s
build-and-release / build (video-editors) (push) Successful in 14s
build-and-release / build (tutors) (push) Successful in 36s
build-and-release / build (employees) (push) Failing after 1m34s
build-and-release / build (developers) (push) Failing after 1m45s
backend-integration-tests / ai-credits (push) Failing after 54s
|
||
|
|
1106b0cb8c |
fix: remove invalid trailing line from Dockerfile.test
Some checks failed
build-and-release / build (customers) (push) Successful in 23s
build-and-release / build (catering-services) (push) Successful in 29s
build-and-release / build (developers) (push) Successful in 34s
build-and-release / build (companies) (push) Successful in 41s
build-and-release / build (gateway) (push) Successful in 13s
build-and-release / build (fitness-trainers) (push) Successful in 28s
build-and-release / build (jobs) (push) Successful in 13s
build-and-release / build (job-seekers) (push) Successful in 23s
build-and-release / build (makeup-artists) (push) Successful in 15s
build-and-release / build (graphic-designers) (push) Successful in 40s
build-and-release / build (social-media-managers) (push) Successful in 12s
build-and-release / build (photographers) (push) Successful in 22s
build-and-release / build (tutors) (push) Successful in 21s
build-and-release / build (employees) (push) Failing after 1m40s
build-and-release / build (cron) (push) Failing after 1m42s
build-and-release / build (users) (push) Successful in 20s
build-and-release / build (payments) (push) Successful in 57s
build-and-release / build (video-editors) (push) Successful in 20s
backend-integration-tests / ai-credits (push) Failing after 41s
build-and-release / build (ugc-content-creators) (push) Successful in 1m10s
My own previous trivial-touch commit appended a bare '-- ...' line
without a # prefix, which isn't valid Dockerfile syntax and broke the
buildx parse ('unknown instruction: --') - explains why the last CI
run died immediately again despite the actual fix (corrected password)
being in place.
|
||
|
|
f2ee346a37 |
chore: trivial touch to Dockerfile.test to trigger a real ai-credits CI run
Some checks failed
build-and-release / build (cron) (push) Successful in 27s
build-and-release / build (employees) (push) Successful in 33s
build-and-release / build (companies) (push) Successful in 43s
build-and-release / build (developers) (push) Successful in 52s
build-and-release / build (fitness-trainers) (push) Successful in 29s
build-and-release / build (gateway) (push) Successful in 27s
build-and-release / build (graphic-designers) (push) Successful in 35s
build-and-release / build (jobs) (push) Successful in 28s
build-and-release / build (makeup-artists) (push) Successful in 28s
build-and-release / build (job-seekers) (push) Successful in 46s
build-and-release / build (photographers) (push) Successful in 24s
build-and-release / build (payments) (push) Successful in 37s
build-and-release / build (customers) (push) Failing after 2m0s
build-and-release / build (catering-services) (push) Failing after 2m3s
build-and-release / build (social-media-managers) (push) Successful in 33s
build-and-release / build (ugc-content-creators) (push) Successful in 23s
backend-integration-tests / ai-credits (push) Failing after 9s
build-and-release / build (tutors) (push) Successful in 44s
build-and-release / build (users) (push) Successful in 38s
build-and-release / build (video-editors) (push) Successful in 34s
|
||
|
|
c307ef1ba4 |
fix(ci): run ai_credits tests via buildx build, not runtime apt-get/docker run -v
Some checks failed
build-and-release / build (catering-services) (push) Successful in 17s
build-and-release / build (companies) (push) Successful in 30s
build-and-release / build (cron) (push) Successful in 37s
build-and-release / build (developers) (push) Successful in 27s
build-and-release / build (fitness-trainers) (push) Successful in 31s
build-and-release / build (graphic-designers) (push) Successful in 15s
build-and-release / build (job-seekers) (push) Successful in 11s
build-and-release / build (makeup-artists) (push) Successful in 9s
build-and-release / build (payments) (push) Successful in 10s
build-and-release / build (gateway) (push) Successful in 42s
build-and-release / build (photographers) (push) Successful in 14s
build-and-release / build (social-media-managers) (push) Successful in 13s
build-and-release / build (tutors) (push) Successful in 15s
build-and-release / build (ugc-content-creators) (push) Successful in 15s
build-and-release / build (customers) (push) Failing after 1m46s
build-and-release / build (employees) (push) Successful in 2m0s
backend-integration-tests / ai-credits (push) Failing after 58s
build-and-release / build (jobs) (push) Successful in 1m56s
build-and-release / build (video-editors) (push) Successful in 1m34s
build-and-release / build (users) (push) Successful in 2m53s
The bare bookworm runner image has no apt-get/package manager at all (the earlier build-essential install attempt failed with 'apt-get: command not found'), and a plain 'docker run -v $PWD:/workspace' wouldn't work either - DOCKER_HOST points at the sibling dind engine (same nested-container setup build.yaml's own comments describe), so a bind mount would look for the path on the wrong filesystem. Matches build.yaml's actual working pattern instead: docker buildx build with context transfer (not a volume mount), using a Dockerfile (Dockerfile.test) whose RUN step runs the test suite and fails the build on a non-zero exit. TEST_DATABASE_URL passed via buildx --secret (not --build-arg) so it never lands in image layer history. Isolated this by testing each piece of the original workflow independently (env/secrets, id+GITHUB_OUTPUT, if: conditionals all checked out fine one at a time) until apt-get was confirmed as the actual failure point. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |