fix(ci): add optional: true to all needs references

When a commit doesn't touch source code (e.g. infra-only changes), the
changes: filters exclude build jobs from the pipeline. Without
optional: true, downstream jobs (train, deploy) fail with "needs X job
but X does not exist in the pipeline".

Now all needs entries use optional: true so pipelines succeed even when
upstream jobs are filtered out by changes: rules.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-02-27 11:41:09 +01:00
parent 89a6f0d587
commit e51ec73201

View File

@@ -302,7 +302,9 @@ compile-services:
# --------------------------------------------------------------------------
.kaniko-base:
stage: build
needs: [compile-services]
needs:
- job: compile-services
optional: true
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
@@ -462,7 +464,9 @@ build-training:
train-validate-rl:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
script:
- |
/usr/local/bin/train_baseline_rl \
@@ -492,7 +496,9 @@ train-validate-rl:
train-validate-tft:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
script:
- /usr/local/bin/train_baseline_supervised
--model tft
@@ -517,7 +523,9 @@ train-validate-tft:
hyperopt-ppo:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
timeout: 4h
script:
- /usr/local/bin/hyperopt_baseline_rl
@@ -557,7 +565,9 @@ hyperopt-ppo:
train-validate-mamba2:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
script:
- /usr/local/bin/train_baseline_supervised
--model mamba2
@@ -582,7 +592,9 @@ train-validate-mamba2:
train-validate-liquid:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
script:
- /usr/local/bin/train_baseline_supervised
--model liquid
@@ -607,7 +619,9 @@ train-validate-liquid:
train-validate-tggn:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
script:
- /usr/local/bin/train_baseline_supervised
--model tggn
@@ -632,7 +646,9 @@ train-validate-tggn:
train-validate-tlob:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
script:
- /usr/local/bin/train_baseline_supervised
--model tlob
@@ -657,7 +673,9 @@ train-validate-tlob:
train-validate-kan:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
script:
- /usr/local/bin/train_baseline_supervised
--model kan
@@ -682,7 +700,9 @@ train-validate-kan:
train-validate-xlstm:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
script:
- /usr/local/bin/train_baseline_supervised
--model xlstm
@@ -707,7 +727,9 @@ train-validate-xlstm:
train-validate-diffusion:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
script:
- /usr/local/bin/train_baseline_supervised
--model diffusion
@@ -734,7 +756,9 @@ train-validate-diffusion:
hyperopt-dqn:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
timeout: 4h
script:
- |
@@ -779,7 +803,9 @@ hyperopt-dqn:
hyperopt-tft:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
timeout: 4h
script:
- /usr/local/bin/hyperopt_baseline_supervised
@@ -816,7 +842,9 @@ hyperopt-tft:
hyperopt-mamba2:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
timeout: 4h
script:
- /usr/local/bin/hyperopt_baseline_supervised
@@ -853,7 +881,9 @@ hyperopt-mamba2:
hyperopt-liquid:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
timeout: 4h
script:
- /usr/local/bin/hyperopt_baseline_supervised
@@ -890,7 +920,9 @@ hyperopt-liquid:
hyperopt-tggn:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
timeout: 4h
script:
- /usr/local/bin/hyperopt_baseline_supervised
@@ -927,7 +959,9 @@ hyperopt-tggn:
hyperopt-tlob:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
timeout: 4h
script:
- /usr/local/bin/hyperopt_baseline_supervised
@@ -964,7 +998,9 @@ hyperopt-tlob:
hyperopt-kan:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
timeout: 4h
script:
- /usr/local/bin/hyperopt_baseline_supervised
@@ -1001,7 +1037,9 @@ hyperopt-kan:
hyperopt-xlstm:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
timeout: 4h
script:
- /usr/local/bin/hyperopt_baseline_supervised
@@ -1038,7 +1076,9 @@ hyperopt-xlstm:
hyperopt-diffusion:
extends: .train-validate-base
needs: [build-training]
needs:
- job: build-training
optional: true
timeout: 4h
script:
- /usr/local/bin/hyperopt_baseline_supervised
@@ -1113,7 +1153,9 @@ infra-apply:
image: ${INFRA_RUNNER_IMAGE}
tags:
- kapsule
needs: [infra-plan]
needs:
- job: infra-plan
optional: true
rules:
- if: $CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "push"
changes:
@@ -1179,15 +1221,24 @@ deploy:
tags:
- kapsule
needs:
- build-trading-service
- build-api-gateway
- build-broker-gateway
- build-ml-training
- build-backtesting
- build-trading-agent
- build-data-acquisition
- build-web-gateway
- build-training
- job: build-trading-service
optional: true
- job: build-api-gateway
optional: true
- job: build-broker-gateway
optional: true
- job: build-ml-training
optional: true
- job: build-backtesting
optional: true
- job: build-trading-agent
optional: true
- job: build-data-acquisition
optional: true
- job: build-web-gateway
optional: true
- job: build-training
optional: true
rules:
- if: $CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "push"
- if: $CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "api"