====== 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//