====== 7. CI/CD ====== V tem poglavju se boste naučili, kako avtomatizirati gradnjo OpenSSL. ---- ===== Kaj je CI/CD? ===== **CI** = Continuous Integration (neprekinjeno povezovanje) **CD** = Continuous Delivery/Deployment Razvijalec → Git Push → Gradnja → Test → Artefakt → Namestitev └─────── samodejno ───────────────────┘ ==== Zakaj avtomatizirati? ==== | Ročno | Samodejno | |-------|-----------| | Človek dela napake | Vedno enak proces | | "Pri meni deluje" | Ponovljive gradnje | | Čakanje na osebo za gradnjo | Takoj na voljo | | Brez dokumentacije | Git zgodovina kot dokaz | ---- ===== Pregled ===== | Platforma | Opis | Stran | |-----------|------|-------| | GitHub Actions | Brezplačno za javne repozitorije | [[.:github-actions]] | | Azure DevOps | Enterprise, možen Self-Hosted | [[.:azure-devops]] | | GitLab CI | Self-Hosted priljubljen | - | | Jenkins | Self-Hosted, zelo prilagodljiv | - | ---- ===== Preprost koncept ===== ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ SPROŽILEC │────▶│ GRADNJA │────▶│ ARTEFAKT │ │ │ │ │ │ │ │ - Git Push │ │ - Checkout │ │ - DLL-ji │ │ - Urnik │ │ - Configure │ │ - NuGet │ │ - Ročno │ │ - nmake │ │ - File Share │ └──────────────┘ └──────────────┘ └──────────────┘ ---- ===== Hiter začetek: GitHub Actions ===== # .github/workflows/build-openssl.yml name: Build OpenSSL on: push: branches: [ main ] workflow_dispatch: # Ročni zagon 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|Popolna navodila]] ---- ===== Predpogoji za CI/CD ===== | Zahteva | GitHub Actions | Azure DevOps | |---------|----------------|--------------| | Račun | GitHub račun | Azure račun | | Repozitorij | Da | Da | | Runner | Gostovan (brezplačno) | Gostovan ali Self-Hosted | | Windows gradnja | ✓ windows-latest | ✓ windows-latest | | Linux gradnja | ✓ ubuntu-latest | ✓ ubuntu-latest | ---- ===== Naprej na ===== * [[.:github-actions|GitHub Actions - Korak za korakom]] * [[.:azure-devops|Azure DevOps Pipelines]] * [[wvds:sl:openssl:start|Nazaj na pregled]] ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//