From f21b58625e6e030c619fac6ff4a871e3576a557a Mon Sep 17 00:00:00 2001 From: jgrusewski Date: Thu, 26 Feb 2026 20:42:56 +0100 Subject: [PATCH] ci: add DQN evaluation step and skip builds on CI-only changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add evaluate_baseline after DQN training smoke test so we get Sharpe, MaxDD, WinRate, and ProfitFactor in the pipeline artifacts. Remove .gitlab-ci.yml from changes: filters so CI-config-only pushes no longer trigger the full check→test→compile→build pipeline (~20 min saved). Co-Authored-By: Claude Opus 4.6 --- .gitlab-ci.yml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index daa3e4ac6..1dfc131b7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,6 +2,7 @@ # Runs on ci-build pool (L4, CUDA 8.9, scale-to-zero), linker: clang+lld # CI builder image: CUDA 12.4 + Rust 1.89 + protoc + sccache (hosted on Scaleway CR) # Service images: pushed to Scaleway Container Registry (Kaniko) +# Note: .gitlab-ci.yml itself is NOT in changes: filters — CI-only edits skip build # Ensure pipeline is always created — individual job rules handle filtering. # Without this, GitLab CE may silently drop push pipelines when changes: @@ -171,7 +172,6 @@ check: - infra/docker/Dockerfile.web-gateway - infra/docker/Dockerfile.training - infra/docker/Dockerfile.training-runtime - - .gitlab-ci.yml - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: - Cargo.toml @@ -207,7 +207,6 @@ test: - infra/docker/Dockerfile.web-gateway - infra/docker/Dockerfile.training - infra/docker/Dockerfile.training-runtime - - .gitlab-ci.yml - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: - Cargo.toml @@ -260,7 +259,6 @@ compile-services: - infra/docker/Dockerfile.web-gateway - infra/docker/Dockerfile.training - infra/docker/Dockerfile.training-runtime - - .gitlab-ci.yml script: # Detect GPU compute capability and partition sccache per architecture - export CUDA_COMPUTE_CAP=$(nvidia-smi --query-gpu=compute_cap --format=csv,noheader | head -1 | tr -d '.') @@ -333,7 +331,6 @@ compile-services: - infra/docker/Dockerfile.web-gateway-runtime - infra/docker/Dockerfile.training - infra/docker/Dockerfile.training-runtime - - .gitlab-ci.yml before_script: - mkdir -p /kaniko/.docker - >- @@ -465,7 +462,20 @@ train-validate-dqn: --data-dir /mnt/training-data/futures-baseline --output-dir ${CI_PROJECT_DIR}/output --max-steps-per-epoch 50 - - echo "DQN validation passed" + - echo "=== DQN training complete, running evaluation ===" + - /usr/local/bin/evaluate_baseline + --model dqn + --models-dir ${CI_PROJECT_DIR}/output + --data-dir /mnt/training-data/futures-baseline + --output ${CI_PROJECT_DIR}/output/dqn_eval_report.json + --symbol ES.FUT + - echo "DQN validation + evaluation passed" + - cat ${CI_PROJECT_DIR}/output/dqn_eval_report.json + artifacts: + paths: + - output/dqn_eval_report.json + when: always + expire_in: 30 days train-validate-tft: extends: .train-validate-base