7. CI/CD

In this chapter you'll learn how to automate the OpenSSL build.


What is CI/CD?

CI = Continuous Integration CD = Continuous Delivery/Deployment

Developer → Git Push → Build → Test → Artifact → Deployment
             └─────── automatic ──────────────────┘

Why Automate?

Manual Automatic
——–———–
Humans make mistakes Always same process
„Works on my machine“ Reproducible builds
Waiting for build person Immediately available
No documentation Git history as proof

Overview

Platform Description Page
———-————-——
GitHub Actions Free for public repos 7.1 GitHub Actions
Azure DevOps Enterprise, self-hosted possible azure-devops
GitLab CI Self-hosted popular -
Jenkins Self-hosted, very flexible -

Simple Concept

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   TRIGGER    │────▶│    BUILD     │────▶│   ARTIFACT   │
│              │     │              │     │              │
│ - Git Push   │     │ - Checkout   │     │ - DLLs       │
│ - Schedule   │     │ - Configure  │     │ - NuGet      │
│ - Manual     │     │ - nmake      │     │ - File Share │
└──────────────┘     └──────────────┘     └──────────────┘

Quick Start: GitHub Actions

# .github/workflows/build-openssl.yml
name: Build OpenSSL

on:
  push:
    branches: [ main ]
  workflow_dispatch:  # Manual start

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/

Complete Guide


Prerequisites for CI/CD

Requirement GitHub Actions Azure DevOps
————-—————-————–
Account GitHub account Azure account
Repository Yes Yes
Runner Hosted (free) Hosted or self-hosted
Windows build ✓ windows-latest ✓ windows-latest
Linux build ✓ ubuntu-latest ✓ ubuntu-latest

Continue to


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

Zuletzt geändert: on 2026/01/29 at 09:23 PM