Skip to content

feat: CI staging deploy trigger, config layout refactor, and v0.4.0 source improvements#8

Draft
gkostkowski wants to merge 32 commits intoOP-TED:developfrom
meaningfy-ws:develop
Draft

feat: CI staging deploy trigger, config layout refactor, and v0.4.0 source improvements#8
gkostkowski wants to merge 32 commits intoOP-TED:developfrom
meaningfy-ws:develop

Conversation

@gkostkowski
Copy link
Copy Markdown
Contributor

@gkostkowski gkostkowski commented Apr 15, 2026

Summary

  • CI pipeline (code-quality.yamlci.yaml): added a trigger-staging-deploy
    job that automatically triggers a staging deployment on push to develop. Also fixed
    SonarCloud token detection (step output instead of env var) and made Redis env vars
    explicit.
  • Config layout: moved infra/config/config/ at repo root; renamed
    docker-compose.ymlcompose.dev.yaml; added .dockerignore and .gitattributes.
  • AI agent setup: added CLAUDE.md / AGENTS.md with agent operating instructions
    and six GitNexus skill files under .claude/skills/gitnexus/.
  • Source fixes: queue_worker switches to blocking brpop; logging env var
    canonicalised to ERE_LOG_LEVEL; cluster repo save fixed in
    entity_resolution_service; adapter imports and factory patterns cleaned up.
  • Dependencies: pyproject.toml and poetry.lock updated.

Copilot AI and others added 30 commits February 26, 2026 08:07
…to avoid shadowing

Co-authored-by: gkostkowski <12532923+gkostkowski@users.noreply.github.com>
Fix variable shadowing in pytest_configure hook
ci(sonarcloud): make SonarCloud scan conditional on SONAR_TOKEN
…ation-hardening

ops: containerization hardening
…ytest config

Merge of PR#10 (feature/ERE1-123): fixes variable shadowing in pytest_configure.
Conflict resolved by preserving HEAD's TEST_RESOURCES_DIR path and encoding="utf-8".
Merge of PR#21 (feature/ERS1-124/code-formatting).
Conflicts resolved: kept HEAD config paths (config/ not infra/config/)
which were updated by the infra layout refactor after PR#21 branched.
Addresses the SonarQube quality gate failure from PR#21 (69% coverage on new code).

New test modules:
- test/unit/adapters/test_utils.py: message parsing (get_request/response_from_message)
- test/unit/adapters/test_adapter_factories.py: build_rdf_mapper factory
- test/unit/entrypoints/test_queue_worker.py: RedisQueueWorker with mocked Redis
- test/unit/utils/test_logging.py: configure_logging and TRACE level
- test/unit/services/test_services_factories.py: build_entity_resolver (in-memory + persistent DuckDB)
- test/unit/test_models.py: MentionLink/ResolutionResult edge cases + app.main() failure paths

Extended test files:
- stubs.py: add StubRDFMapper and find_by_id to InMemoryMentionRepository
- test_entity_resolution_service.py: EntityResolutionService process_request paths
- test_duckdb_adapters.py: load_all and save_all([]) coverage

Coverage: 61% → 85% (unit + BDD combined)
Renames LOG_LEVEL → ERE_LOG_LEVEL to match the ERSys unified .env.example,
allowing integration tests to run against the shared ERSys infrastructure
without any compose-level variable mapping.

Changes:
- src/ere/utils/logging.py: read ERE_LOG_LEVEL instead of LOG_LEVEL
- src/ere/entrypoints/app.py: update env var name in docstring
- demo/demo.py: read ERE_LOG_LEVEL instead of LOG_LEVEL
- test/unit/utils/test_logging.py: update env var references
- infra/.env.example: new file, ERE-relevant subset of ERSys .env.example
- infra/compose.dev.yaml: remove LOG_LEVEL mapping (no longer needed)
AGENTS.md (and its CLAUDE.md mirror) now contains ERE-specific guidance:
commits/PR rules, dev workflow, make targets reference, architecture
rules, memory conventions, and gotchas. Replaces GitNexus-only boilerplate.

Also aligns dev tooling:
- Makefile: test-integration depends on check-env; test target sources .env
- infra/.env.example: REDIS_HOST defaults to localhost for standalone dev
- test/e2e/test_app.py: replace walrus operator with explicit env default
…dling

- tox py312: add -m "not integration" so CI unit runs need no Redis
- workflow: copy .env.example to infra/.env instead of deleting it;
  set REDIS_HOST/PORT/PASSWORD explicitly on the tox step so passenv
  receives the correct values for the passwordless CI Redis
- test/e2e: restore walrus guard so REDIS_PASSWORD is only monkeypatched
  when present in the environment (avoids "changeme" default in CI)
- test_logging: remove unused `call` and `pytest` imports (pylint/ruff)
- infra/.env.example: fix stale comment referencing removed LOG_LEVEL mapping
…patch

ci: ERS1-164 — rename workflow to CI and add staging deploy dispatch
devops: optimize CI workflow and Docker build
@gkostkowski gkostkowski changed the title 0.4.0 feat: CI staging deploy trigger, config layout refactor, and v0.4.0 source improvements Apr 15, 2026
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.

5 participants