# ML Training Pipeline — manually triggered # # Trigger via GitLab UI: CI/CD → Pipelines → Run pipeline # Set CI configuration file to: .gitlab-ci-training.yml # Set variables as needed (MODELS, SYMBOLS, PHASE, etc.) # # Or via API: # curl -X POST --fail \ # -F "token=$TRIGGER_TOKEN" \ # -F "ref=main" \ # -F "variables[MODELS]=all" \ # -F "variables[SYMBOLS]=ES.FUT" \ # -F "variables[PHASE]=full" \ # "$CI_API_V4_URL/projects/$CI_PROJECT_ID/trigger/pipeline" stages: - prepare - trigger variables: SYMBOLS: "ES.FUT" MODELS: "all" PHASE: "full" MAX_PARALLEL: "10" EPOCHS: "50" HYPEROPT_TRIALS: "20" RUN_ID: "" REGISTRY: rg.fr-par.scw.cloud/foxhunt-ci workflow: rules: - if: $CI_PIPELINE_SOURCE == "web" - if: $CI_PIPELINE_SOURCE == "trigger" - if: $CI_PIPELINE_SOURCE == "api" generate-jobs: stage: prepare image: alpine:3.19 tags: - kapsule script: - apk add --no-cache bash coreutils - | if [ -z "$RUN_ID" ]; then export RUN_ID=$(date +%Y%m%d-%H%M%S) fi - bash scripts/generate-training-pipeline.sh - echo "--- Generated pipeline ---" - cat .training-generated.yml artifacts: paths: - .training-generated.yml expire_in: 1 day run-training: stage: trigger trigger: include: - artifact: .training-generated.yml job: generate-jobs strategy: depend