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