bifurqué depuis LengKundee/MQL5-Google-Onedrive
- Created .gitlab-ci.yml with multi-stage pipeline (validate, build, test, package, deploy) - Added comprehensive GitLab CI/CD setup guide with GET integration - Created API environment secrets documentation for all credentials - Added GitLab secrets management script (set_gitlab_secrets.sh) - Created GitLab Environment Toolkit configuration (.get-config.yml) - Added GitLab vault configuration template - Created GitLab quick reference guide - Updated documentation index with CI/CD section - Updated README with GitLab CI/CD information - Enhanced .gitignore to prevent vault files from being committed Co-authored-by: Mouy-leng <199350297+Mouy-leng@users.noreply.github.com>
235 lignes
4,4 Kio
YAML
235 lignes
4,4 Kio
YAML
# GitLab Environment Toolkit Configuration
|
|
# This file configures GET for deploying GitLab runners and infrastructure
|
|
|
|
version: "1.0"
|
|
|
|
# Project configuration
|
|
project:
|
|
name: "MQL5 Trading System"
|
|
description: "Smart Money Concepts + Trend Breakout Multi-Timeframe Trading System"
|
|
gitlab_url: "https://gitlab.com"
|
|
|
|
# GitLab Runner configuration
|
|
runners:
|
|
# Number of runners to deploy
|
|
count: 2
|
|
|
|
# Runner type
|
|
executor: docker
|
|
|
|
# Runner tags
|
|
tags:
|
|
- mql5
|
|
- python
|
|
- docker
|
|
- trading
|
|
|
|
# Docker configuration for runner
|
|
docker:
|
|
image: "python:3.12-slim"
|
|
privileged: false
|
|
volumes:
|
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
|
- "/cache"
|
|
|
|
# Resource limits
|
|
resources:
|
|
cpus: 2
|
|
memory: "4GB"
|
|
disk: "50GB"
|
|
|
|
# Concurrent jobs per runner
|
|
concurrent: 2
|
|
|
|
# Idle timeout (seconds)
|
|
idle_timeout: 300
|
|
|
|
# Environment configuration
|
|
environments:
|
|
# Development environment
|
|
development:
|
|
enabled: true
|
|
url: "http://localhost:8000"
|
|
auto_deploy: true
|
|
|
|
# Staging environment
|
|
staging:
|
|
enabled: true
|
|
url: "https://staging.example.com"
|
|
auto_deploy: false
|
|
protected: false
|
|
|
|
# Production environment
|
|
production:
|
|
enabled: true
|
|
url: "https://production.example.com"
|
|
auto_deploy: false
|
|
protected: true
|
|
|
|
# Deployment targets
|
|
deployment:
|
|
# Docker Registry
|
|
registry:
|
|
enabled: true
|
|
url: "registry.gitlab.com"
|
|
|
|
# Cloud platforms
|
|
cloud:
|
|
# Render.com
|
|
render:
|
|
enabled: true
|
|
app_name: "mql5-trading-system"
|
|
region: "oregon"
|
|
plan: "free"
|
|
|
|
# Railway.app
|
|
railway:
|
|
enabled: true
|
|
project_name: "mql5-trading"
|
|
environment: "production"
|
|
|
|
# Fly.io
|
|
flyio:
|
|
enabled: true
|
|
app_name: "mql5-trading"
|
|
region: "iad"
|
|
|
|
# VPS/Dedicated servers
|
|
vps:
|
|
enabled: false
|
|
hosts: []
|
|
|
|
# CI/CD Pipeline configuration
|
|
pipeline:
|
|
# Auto-cancel redundant pipelines
|
|
auto_cancel_redundant: true
|
|
|
|
# Retry failed jobs
|
|
retry:
|
|
max: 2
|
|
when:
|
|
- runner_system_failure
|
|
- stuck_or_timeout_failure
|
|
|
|
# Timeout for jobs (minutes)
|
|
timeout: 60
|
|
|
|
# Cache configuration
|
|
cache:
|
|
key: "${CI_COMMIT_REF_SLUG}"
|
|
paths:
|
|
- ".cache/pip"
|
|
- "node_modules/"
|
|
- "dist/"
|
|
|
|
# Artifacts configuration
|
|
artifacts:
|
|
expire_in: "30 days"
|
|
paths:
|
|
- "dist/"
|
|
- "logs/"
|
|
|
|
# Monitoring and notifications
|
|
monitoring:
|
|
# Enable monitoring
|
|
enabled: true
|
|
|
|
# Prometheus metrics
|
|
prometheus:
|
|
enabled: false
|
|
|
|
# Notifications
|
|
notifications:
|
|
# Slack
|
|
slack:
|
|
enabled: false
|
|
webhook_url: "${SLACK_WEBHOOK}"
|
|
channel: "#ci-cd"
|
|
|
|
# Email
|
|
email:
|
|
enabled: false
|
|
recipients:
|
|
- "team@example.com"
|
|
|
|
# Telegram
|
|
telegram:
|
|
enabled: true
|
|
bot_token: "${TELEGRAM_BOT_TOKEN}"
|
|
chat_id: "${TELEGRAM_CHAT_ID}"
|
|
|
|
# Security settings
|
|
security:
|
|
# Secret scanning
|
|
secret_detection:
|
|
enabled: true
|
|
|
|
# Dependency scanning
|
|
dependency_scanning:
|
|
enabled: true
|
|
|
|
# Container scanning
|
|
container_scanning:
|
|
enabled: true
|
|
|
|
# SAST (Static Application Security Testing)
|
|
sast:
|
|
enabled: false
|
|
|
|
# Branch protection
|
|
branch_protection:
|
|
main:
|
|
required_approvals: 1
|
|
dismiss_stale_reviews: true
|
|
require_code_owner_reviews: false
|
|
|
|
# Advanced settings
|
|
advanced:
|
|
# Enable debug mode
|
|
debug: false
|
|
|
|
# Custom scripts
|
|
before_script:
|
|
- echo "Starting CI/CD pipeline"
|
|
|
|
after_script:
|
|
- echo "Pipeline completed"
|
|
|
|
# Environment variables
|
|
variables:
|
|
PIP_CACHE_DIR: ".cache/pip"
|
|
PYTHONUNBUFFERED: "1"
|
|
DOCKER_DRIVER: "overlay2"
|
|
|
|
# Terraform configuration (if using GET with Terraform)
|
|
terraform:
|
|
enabled: false
|
|
backend: "local"
|
|
|
|
# AWS configuration
|
|
aws:
|
|
region: "us-east-1"
|
|
|
|
# GCP configuration
|
|
gcp:
|
|
project: ""
|
|
region: "us-central1"
|
|
|
|
# Azure configuration
|
|
azure:
|
|
location: "eastus"
|
|
|
|
# Ansible configuration (if using GET with Ansible)
|
|
ansible:
|
|
enabled: false
|
|
inventory: "inventory/hosts.yml"
|
|
playbooks:
|
|
- "playbooks/setup-runner.yml"
|
|
- "playbooks/deploy.yml"
|
|
|
|
---
|
|
# Notes:
|
|
# 1. Copy this file to .get-config.yml in your repository root
|
|
# 2. Customize values for your environment
|
|
# 3. Use environment variables for sensitive values (${VAR_NAME})
|
|
# 4. See GET documentation: https://gitlab.com/gitlab-org/gitlab-environment-toolkit
|