====== 7. CI/CD ======
In diesem Kapitel lernen Sie, wie Sie den OpenSSL-Build automatisieren.
----
===== Was ist CI/CD? =====
**CI** = Continuous Integration (Kontinuierliche Integration)
**CD** = Continuous Delivery/Deployment
Entwickler → Git Push → Build → Test → Artefakt → Deployment
└─────── automatisch ──────────────────┘
==== Warum automatisieren? ====
| Manuell | Automatisch |
|---------|-------------|
| Mensch macht Fehler | Immer gleicher Prozess |
| "Funktioniert bei mir" | Reproduzierbare Builds |
| Warten auf Build-Person | Sofort verfügbar |
| Keine Dokumentation | Git-History als Nachweis |
----
===== Übersicht =====
| Plattform | Beschreibung | Seite |
|-----------|--------------|-------|
| GitHub Actions | Kostenlos für Public Repos | [[.:github-actions]] |
| Azure DevOps | Enterprise, Self-Hosted möglich | [[.:azure-devops]] |
| GitLab CI | Self-Hosted beliebt | - |
| Jenkins | Self-Hosted, sehr flexibel | - |
----
===== Einfaches Konzept =====
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ TRIGGER │────▶│ BUILD │────▶│ ARTEFAKT │
│ │ │ │ │ │
│ - Git Push │ │ - Checkout │ │ - DLLs │
│ - Schedule │ │ - Configure │ │ - NuGet │
│ - Manual │ │ - nmake │ │ - File Share │
└──────────────┘ └──────────────┘ └──────────────┘
----
===== Schnellstart: GitHub Actions =====
# .github/workflows/build-openssl.yml
name: Build OpenSSL
on:
push:
branches: [ main ]
workflow_dispatch: # Manueller Start
jobs:
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Install Perl
run: choco install strawberryperl -y
- name: Install NASM
run: choco install nasm -y
- name: Build OpenSSL
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
cd src
perl Configure VC-WIN64A --prefix=%cd%\..\bin
nmake
nmake install_sw
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: openssl-win-x64
path: bin/
→ [[.:github-actions|Vollständige Anleitung]]
----
===== Voraussetzungen für CI/CD =====
| Anforderung | GitHub Actions | Azure DevOps |
|-------------|----------------|--------------|
| Konto | GitHub-Account | Azure-Account |
| Repository | Ja | Ja |
| Runner | Gehostet (kostenlos) | Gehostet oder Self-Hosted |
| Windows-Build | ✓ windows-latest | ✓ windows-latest |
| Linux-Build | ✓ ubuntu-latest | ✓ ubuntu-latest |
----
===== Weiter zu =====
* [[.:github-actions|GitHub Actions - Schritt für Schritt]]
* [[.:azure-devops|Azure DevOps Pipelines]]
* [[.:.:start|Zurück zur Übersicht]]
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//