====== 7. CI/CD ======
U ovom poglavlju naučit ćete kako automatizirati OpenSSL kompilaciju.
----
===== Što je CI/CD? =====
**CI** = Continuous Integration (Kontinuirana integracija)
**CD** = Continuous Delivery/Deployment
Razvojni programer → Git Push → Kompilacija → Test → Artefakt → Deployment
└─────── automatski ──────────────────────┘
==== Zašto Automatizirati? ====
| Ručno | Automatski |
|-------|------------|
| Ljudi čine greške | Uvijek isti proces |
| "Radi na mom računalu" | Ponovljive kompilacije |
| Čekanje na osobu za kompilaciju | Odmah dostupno |
| Nema dokumentacije | Git povijest kao dokaz |
----
===== Pregled =====
| Platforma | Opis | Stranica |
|-----------|------|----------|
| GitHub Actions | Besplatno za javne repozitorije | [[.:github-actions]] |
| Azure DevOps | Enterprise, self-hosted moguć | [[.:azure-devops]] |
| GitLab CI | Self-hosted popularan | - |
| Jenkins | Self-hosted, vrlo fleksibilan | - |
----
===== Jednostavan Koncept =====
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ OKIDAČ │────▶│ KOMPILACIJA │────▶│ ARTEFAKT │
│ │ │ │ │ │
│ - Git Push │ │ - Checkout │ │ - DLL-ovi │
│ - Raspored │ │ - Configure │ │ - NuGet │
│ - Ručno │ │ - nmake │ │ - File Share │
└──────────────┘ └──────────────┘ └──────────────┘
----
===== Brzi Početak: GitHub Actions =====
# .github/workflows/build-openssl.yml
name: Build OpenSSL
on:
push:
branches: [ main ]
workflow_dispatch: # Ručno pokretanje
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|Kompletan vodič]]
----
===== Nastavite na =====
* [[.:github-actions|GitHub Actions - Korak po korak]]
* [[.:.:start|Povratak na pregled]]
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//