====== 7.1 GitHub Actions ======
Ova stranica pokazuje kako automatski kompilirati OpenSSL s GitHub Actions.
----
===== Što je GitHub Actions? =====
**GitHub Actions** je GitHub-ova CI/CD platforma:
* Izravno integrirana u GitHub
* Besplatna za javne repozitorije
* YAML-bazirana konfiguracija
----
===== Osnovni Koncepti =====
| Pojam | Značenje |
|-------|----------|
| **Workflow** | Cijela automatizacija (.yml datoteka) |
| **Job** | Grupa koraka (npr. "build-windows") |
| **Step** | Jedna naredba ili akcija |
| **Runner** | Server koji izvršava posao |
| **Artifact** | Rezultat (npr. DLL-ovi) |
----
===== Stvaranje Workflow Datoteke =====
Stvorite datoteku ''.github/workflows/build-openssl.yml'':
# OpenSSL Build Workflow
name: Build OpenSSL 3.6
# Kada kompilirati?
on:
push:
branches: [ main ] # Na push na main
pull_request:
branches: [ main ] # Na pull requestove
workflow_dispatch: # Ručno pokretanje
schedule:
- cron: '0 2 * * 0' # Svake nedjelje u 2:00
jobs:
# ============================================
# Windows x64 Kompilacija
# ============================================
build-windows:
runs-on: windows-latest
steps:
# 1. Checkout repozitorija
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
# 2. Instalacija Perla
- name: Install Strawberry Perl
run: choco install strawberryperl -y
# 3. Instalacija NASM-a
- name: Install NASM
run: choco install nasm -y
# 4. Kompilacija
- name: Build OpenSSL
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
set PATH=C:\Strawberry\perl\bin;C:\Program Files\NASM;%PATH%
cd src
perl Configure VC-WIN64A --prefix=%GITHUB_WORKSPACE%\bin
nmake
nmake install_sw
# 5. Provjera verzije
- name: Verify Build
run: |
bin\bin\openssl.exe version -a
bin\bin\openssl.exe list -signature-algorithms | findstr mldsa
# 6. Upload artefakta
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: openssl-3.6.0-win-x64
path: bin/
retention-days: 30
# ============================================
# Linux x64 Kompilacija
# ============================================
build-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential perl nasm
- name: Build OpenSSL
run: |
cd src
./Configure linux-x86_64 --prefix=$GITHUB_WORKSPACE/linux-build
make -j$(nproc)
make install
- name: Verify Build
run: |
linux-build/bin/openssl version -a
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: openssl-3.6.0-linux-x64
path: linux-build/
retention-days: 30
----
===== Česti Problemi =====
==== "nmake: command not found" ====
Visual Studio okruženje nije učitano:
- name: Build
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
nmake
==== Kompilacija traje predugo ====
Koristite cache:
- name: Cache OpenSSL Build
uses: actions/cache@v4
with:
path: src/
key: openssl-${{ hashFiles('src/VERSION') }}
----
===== Nastavite na =====
* [[.:.:start|Povratak na pregled]]
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//