23 Commits

Author SHA1 Message Date
Alexis Bruneteau
cb7b80ca6a Fix MLflow model logging warnings
Added input_example parameter to auto-infer model signature and
explicitly set artifact_path parameter to remove deprecation warnings.

This improves MLflow tracking by:
- Auto-generating model signature from training data
- Using correct parameter names for MLflow 3.x
- Enabling better model serving and inference validation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 20:01:05 +02:00
Alexis Bruneteau
22db96b3eb Simplify MLflow auth to use native env var support
Reverted to simpler approach - MLflow natively supports
MLFLOW_TRACKING_USERNAME and MLFLOW_TRACKING_PASSWORD environment
variables for HTTP Basic Auth.

Removed the manual URI construction since it's not needed.
The workflow already sets these env vars correctly.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 19:57:15 +02:00
Alexis Bruneteau
a4ddfb57be Use HTTP Basic Auth for MLflow authentication
Changed MLflow authentication to use HTTP Basic Auth by embedding
credentials in the tracking URI (https://user:pass@host).

This is the standard authentication method for MLflow when using
basic auth, rather than relying on environment variables alone.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 19:53:02 +02:00
Alexis Bruneteau
bc5d96981a Fix MLflow authentication in training script
Added explicit environment variable configuration for MLflow credentials.
The credentials are now properly passed through from CI/CD environment
to the MLflow client.

Changes:
- Check for MLFLOW_TRACKING_USERNAME and MLFLOW_TRACKING_PASSWORD env vars
- Explicitly set them in os.environ for MLflow to use
- Added connection success message for debugging

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 19:47:22 +02:00
Alexis Bruneteau
8dc524af22 Fix Poetry cache path for proper dependency caching
Changed cache configuration:
- Moved Install Poetry step before cache setup
- Updated cache path to ~/.cache/pypoetry/virtualenvs (actual venv location)
- Removed **/poetry.lock wildcard in favor of direct poetry.lock reference
- This ensures the virtualenv itself is cached, not just metadata

This should significantly speed up CI/CD runs by reusing installed packages.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 18:53:40 +02:00
Alexis Bruneteau
c9dbe70bdb Fix DVC pull to only fetch raw data
Changed dvc pull to specifically pull data/raw.dvc instead of all
outputs. The processed data and model files are generated by the
DVC pipeline (dvc repro), not pulled from remote storage.

This prevents errors about missing processed files that haven't
been generated yet.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 18:52:16 +02:00
Alexis Bruneteau
662d1a3b8f Configure DVC credentials explicitly in CI/CD pipeline
DVC needs credentials to be configured via 'dvc remote modify' command
rather than just environment variables. This fixes 403 Forbidden errors
when accessing MinIO/S3 storage.

Changes:
- Added dvc remote modify commands to set access_key_id and secret_access_key
- Applied to both pull and push operations in test and train jobs
- Added .dvc/config.local to .gitignore to prevent credential leaks

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 18:45:29 +02:00
Alexis Bruneteau
3cb1b23669 Add DVC S3 credentials to CI/CD pipeline
Configure DVC to use AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
from Gitea secrets (DVC_ID and DVC_PASSWORD) for MinIO/S3 access.

Changes:
- Added DVC credentials to all DVC operations (pull/push)
- Changed poetry install to use --no-root flag for faster installs
- Credentials applied to both test and train jobs

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 17:52:21 +02:00
Alexis Bruneteau
d61fad678c Add dependency caching to CI/CD pipeline
Added actions/cache@v3 to cache Poetry and pip dependencies across
workflow runs. This significantly speeds up CI/CD by avoiding
full reinstallation when poetry.lock hasn't changed.

Cache strategy:
- Cache key based on OS and poetry.lock hash
- Caches ~/.cache/pypoetry and ~/.cache/pip
- Falls back to OS-specific cache if exact match not found

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 17:45:18 +02:00
Alexis Bruneteau
bb8b08500b Add dvc-s3 dependency for S3/MinIO storage support
Added dvc-s3>=3.2.0 to dependencies to enable DVC to work with
S3-compatible storage backends like MinIO.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 17:44:24 +02:00
Alexis Bruneteau
e7883b8dab Update poetry.lock with PyYAML dependency
Regenerate lock file to include pyyaml>=6.0.0 added to dependencies.
This resolves the poetry.lock sync issue with pyproject.toml.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 17:39:14 +02:00
Alexis Bruneteau
af9b700a5b secrets and mlflow should now work 2025-10-01 17:35:13 +02:00
Alexis Bruneteau
f107164b51 maybe maybe not 2025-10-01 15:04:13 +02:00
paul.roost
cce9eb29a0 Refactor CI/CD pipeline to install dependencies before setting up DVC 2025-09-30 17:12:21 +02:00
paul.roost
4df499be5c train fix 2025-09-30 17:04:43 +02:00
Alexis Bruneteau
abad691246 setup dvc 2025-09-30 17:03:15 +02:00
paul.roost
65b5b6c151 test 2025-09-30 16:38:14 +02:00
paul.roost
652f58cdb1 Add Prometheus client dependency and update README with project details 2025-09-30 16:23:29 +02:00
paul.roost
ca9c3bfce3 Add CI/CD pipeline, monitoring, and model training components for CS:GO MLOps platform 2025-09-30 16:14:56 +02:00
paul.roost
4cc5705b97 Initialize DVC 2025-09-30 15:48:38 +02:00
paul.roost
a7c884462e Initial project structure 2025-09-30 15:44:35 +02:00
Alexis Bruneteau
92032f67a4 tag 2025-09-30 15:25:32 +02:00
Alexis Bruneteau
ee9fe1bca2 init 2025-09-23 18:29:32 +02:00