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


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: 29.01.2026. u 21:31