ci: add DQN evaluation step and skip builds on CI-only changes

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 <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-02-26 20:42:56 +01:00
parent acff64b678
commit f21b58625e

View File

@@ -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