Pipeline Automation for Branch-Based Environment Management
Einführung In unserem vorherigen Artikel haben wir drei Modelle zur Verwaltung von Deployment-Umgebungen in der Versionskontrolle untersucht: Branches, Forked
In unserem vorherigen Artikel haben wir drei Modelle zur Verwaltung von Deployment-Umgebungen in der Versionskontrolle untersucht: Branches, Forked Repositories und Trunk-Based Development (TBD). In diesem Beitrag tauchen wir tief in die Pipeline-Automatisierung für das Branching-Modell ein – den traditionellsten Ansatz – unter Verwendung von Tools wie GitHub Actions und GitLab CI/CD.
Modell: Alle Umgebungen (develop
, staging
, main
) sind Branches in einem einzigen Repository.
Deployment-Ablauf:
develop
.develop
in staging
gemergt.staging
in main
für die Produktion gemergt.Promotionen sind Merges, die leicht an einem Ort nachverfolgt werden können.
Deployments basierend auf Branch auslösen:
develop
→ Entwicklungs-/Testumgebungstaging
→ Stagingmain
→ ProduktionKonfiguration und Zugangsdaten isolieren mittels Umgebungsvariablen oder Secrets.
Benachrichtigungen automatisieren bei PR-Erstellung/Merge, sowie bei Erfolg/Fehlschlag eines Deployments.
1# .github/workflows/deploy.yml
2name: Deploy on Branch
3
4on:
5 push:
6 branches:
7 - develop
8 - staging
9 - main
10
11jobs:
12 deploy:
13 runs-on: ubuntu-latest
14 steps:
15 - uses: actions/checkout@v3
16 - name: Deploy
17 env:
18 ENV_NAME: ${{ github.ref_name }}
19 run: ./deploy.sh $ENV_NAME
1stages:
2 - deploy
3
4deploy:
5 stage: deploy
6 variables:
7 ENV_NAME: "${CI_COMMIT_REF_NAME}"
8 script:
9 - ./deploy.sh $ENV_NAME
10 only:
11 - develop
12 - staging
13 - main
Branch-basiertes CI/CD ist für die meisten Teams weiterhin leicht zu visualisieren, zu automatisieren und zu skalieren – insbesondere für jene, die noch nicht bereit für TBD sind. Allerdings können Merge-Overhead und Konfigurationsabweichungen echte Herausforderungen darstellen. In einem kommenden Beitrag zeigen wir, wie Trunk-Based Development Deployments mit noch weniger Reibung automatisieren kann.
Sie interessieren sich für unsere Trainings oder haben einfach eine Frage, die beantwortet werden muss? Sie können uns jederzeit kontaktieren! Wir werden unser Bestes tun, um alle Ihre Fragen zu beantworten.
Hier kontaktieren