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