MQL5-Google-Onedrive/.get-config.yml
copilot-swe-agent[bot] f33065b871 Add GitLab CI/CD support with Environment Toolkit and API secrets management
- 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>
2026-02-14 21:11:29 +00:00

235 lines
4.4 KiB
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