Skip to main content

CI/CD

GitLab CI + Docker Compose + Traefik.


Medii

MediuURLDeclanșator
devhttps://dev-glamb.happydev.techPush pe ramura dev
productionhttps://glamb.happydev.techPush pe ramura main

Etapele pipeline-ului

test  →  dev/main  →  cleanup
JobDeclanșatorAcțiune
test-jobToate ramurilebundle exec rspec prin ci-cd/test/
lint-jobToate ramurilerubocop fără DB (paralel cu test-job)
lint-fixManualrubocop -A + commit înapoi în ramură
start-devRamura devdocker compose up -d ci-cd/dev/
start-mainRamura maindocker compose up -d ci-cd/prod/
cleanupÎntotdeaunadocker image prune -f

test-job și lint-job rulează în paralel. Ambele trebuie să treacă înainte de deployment.


Git Flow

feature/* sau fix/*
→ PR → dev (deploy automat în mediul dev)
→ PR → main (deploy automat în producție)

Secrete necesare (GitLab CI Variables)

RAILS_MASTER_KEY
SECRET_KEY_BASE
DBUSER · DBPASS · DBNAME · DBPORT
ACTIVE_RECORD_KEY_SALT
ACTIVE_RECORD_PRIMARY_KEY
ACTIVE_RECORD_DETERMINISTIC_KEY
SWAGGER_USER · SWAGGER_PASSWORD # doar dev
GIT_ACCESS_TOKEN # doar lint-fix

Fișiere Docker

FișierScop
docker-compose.ymlDezvoltare locală
ci-cd/test/RSpec în pipeline
ci-cd/dev/Deploy pe serverul dev
ci-cd/prod/Deploy în producție
ci-cd/lint/lint-fix cu volume mount

Compusele ci-cd/ nu se rulează niciodată local.