diff options
Diffstat (limited to '.github/workflows')
| -rw-r--r-- | .github/workflows/android.yml | 25 | ||||
| -rw-r--r-- | .github/workflows/cifuzz.yml | 2 | ||||
| -rw-r--r-- | .github/workflows/cmake-config.yml | 6 | ||||
| -rw-r--r-- | .github/workflows/coverity.yml | 7 | ||||
| -rw-r--r-- | .github/workflows/emscripten.yml | 34 | ||||
| -rw-r--r-- | .github/workflows/fedora-rawhide.yml | 11 | ||||
| -rw-r--r-- | .github/workflows/freebsd.yml | 20 | ||||
| -rw-r--r-- | .github/workflows/linux.yml | 47 | ||||
| -rw-r--r-- | .github/workflows/macos.yml | 11 | ||||
| -rw-r--r-- | .github/workflows/release.yml | 76 | ||||
| -rw-r--r-- | .github/workflows/rust-openssl.yml | 4 | ||||
| -rw-r--r-- | .github/workflows/solaris.yml | 8 | ||||
| -rw-r--r-- | .github/workflows/windows.yml | 56 |
13 files changed, 228 insertions, 79 deletions
diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 0f01e6b..bd02a3b 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml | |||
| @@ -17,19 +17,24 @@ jobs: | |||
| 17 | fail-fast: false | 17 | fail-fast: false |
| 18 | matrix: | 18 | matrix: |
| 19 | include: | 19 | include: |
| 20 | - name: "Android 8-9" | 20 | - name: "Minimum API 26" |
| 21 | min-nal: 26 | 21 | api-level: 26 |
| 22 | max-nal: 28 | 22 | - name: "Latest API" |
| 23 | - name: "Android 10-11" | 23 | api-level: latest |
| 24 | min-nal: 29 | ||
| 25 | max-nal: 30 | ||
| 26 | steps: | 24 | steps: |
| 27 | - name: "Checkout repository" | 25 | - name: "Checkout repository" |
| 28 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 26 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 27 | with: | ||
| 28 | persist-credentials: false | ||
| 29 | |||
| 30 | - name: "Install build dependencies" | ||
| 31 | run: | | ||
| 32 | sudo apt-get update | ||
| 33 | sudo apt-get install -y cmake ninja-build | ||
| 29 | 34 | ||
| 30 | - name: "Run CI script" | 35 | - name: "Run CI script" |
| 31 | run: ./scripts/test | 36 | run: | |
| 37 | ANDROID_NDK_HOME="$ANDROID_NDK_LATEST_HOME" ./scripts/test | ||
| 32 | env: | 38 | env: |
| 33 | ARCH: "android" | 39 | ARCH: "android" |
| 34 | MIN_NAL: "${{ matrix.min-nal }}" | 40 | ANDROID_API_LEVEL: "${{ matrix.api-level }}" |
| 35 | MAX_NAL: "${{ matrix.max-nal }}" | ||
diff --git a/.github/workflows/cifuzz.yml b/.github/workflows/cifuzz.yml index 51270ac..56da4ee 100644 --- a/.github/workflows/cifuzz.yml +++ b/.github/workflows/cifuzz.yml | |||
| @@ -39,7 +39,7 @@ jobs: | |||
| 39 | path: "./out/artifacts" | 39 | path: "./out/artifacts" |
| 40 | 40 | ||
| 41 | - name: "Upload SARIF" | 41 | - name: "Upload SARIF" |
| 42 | uses: github/codeql-action/upload-sarif@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2 | 42 | uses: github/codeql-action/upload-sarif@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4.37.9 |
| 43 | if: always() && steps.build.outcome == 'success' | 43 | if: always() && steps.build.outcome == 'success' |
| 44 | with: | 44 | with: |
| 45 | sarif_file: "cifuzz-sarif/results.sarif" | 45 | sarif_file: "cifuzz-sarif/results.sarif" |
diff --git a/.github/workflows/cmake-config.yml b/.github/workflows/cmake-config.yml index 3f11cb4..493242d 100644 --- a/.github/workflows/cmake-config.yml +++ b/.github/workflows/cmake-config.yml | |||
| @@ -24,11 +24,13 @@ jobs: | |||
| 24 | contents: read | 24 | contents: read |
| 25 | steps: | 25 | steps: |
| 26 | - name: "Checkout repository" | 26 | - name: "Checkout repository" |
| 27 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 27 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 28 | with: | ||
| 29 | persist-credentials: false | ||
| 28 | 30 | ||
| 29 | - name: "Setup Windows dependencies" | 31 | - name: "Setup Windows dependencies" |
| 30 | if: runner.os == 'Windows' | 32 | if: runner.os == 'Windows' |
| 31 | uses: msys2/setup-msys2@cafece8e6baf9247cf9b1bf95097b0b983cc558d # v2.31.0 | 33 | uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2.32.0 |
| 32 | with: | 34 | with: |
| 33 | update: true | 35 | update: true |
| 34 | install: >- | 36 | install: >- |
diff --git a/.github/workflows/coverity.yml b/.github/workflows/coverity.yml index 09ab124..33aba2e 100644 --- a/.github/workflows/coverity.yml +++ b/.github/workflows/coverity.yml | |||
| @@ -13,13 +13,18 @@ concurrency: | |||
| 13 | jobs: | 13 | jobs: |
| 14 | scan: | 14 | scan: |
| 15 | name: "Scan" | 15 | name: "Scan" |
| 16 | environment: | ||
| 17 | name: "coverity" | ||
| 18 | deployment: false | ||
| 16 | runs-on: "ubuntu-24.04" | 19 | runs-on: "ubuntu-24.04" |
| 17 | if: github.repository_owner == 'libressl' # Prevent running on forks | 20 | if: github.repository_owner == 'libressl' # Prevent running on forks |
| 18 | permissions: | 21 | permissions: |
| 19 | contents: read | 22 | contents: read |
| 20 | steps: | 23 | steps: |
| 21 | - name: "Checkout repository" | 24 | - name: "Checkout repository" |
| 22 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 25 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 26 | with: | ||
| 27 | persist-credentials: false | ||
| 23 | 28 | ||
| 24 | - name: "Install dependencies" | 29 | - name: "Install dependencies" |
| 25 | run: | | 30 | run: | |
diff --git a/.github/workflows/emscripten.yml b/.github/workflows/emscripten.yml index 0b46ef2..4e22d3a 100644 --- a/.github/workflows/emscripten.yml +++ b/.github/workflows/emscripten.yml | |||
| @@ -20,12 +20,20 @@ jobs: | |||
| 20 | contents: read | 20 | contents: read |
| 21 | steps: | 21 | steps: |
| 22 | - name: "Checkout repository" | 22 | - name: "Checkout repository" |
| 23 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 23 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 24 | with: | ||
| 25 | persist-credentials: false | ||
| 26 | |||
| 27 | - name: "Install test dependencies" | ||
| 28 | run: | | ||
| 29 | sudo apt-get update | ||
| 30 | sudo apt-get install -y libio-socket-ssl-perl | ||
| 31 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 24 | 32 | ||
| 25 | - name: "Setup emsdk" | 33 | - name: "Setup emsdk" |
| 26 | uses: mymindstorm/setup-emsdk@4528d102f7230f0e7b276855c01ea1159be0e984 # v16 | 34 | uses: mymindstorm/setup-emsdk@4528d102f7230f0e7b276855c01ea1159be0e984 # v16 |
| 27 | with: | 35 | with: |
| 28 | version: "3.1.60" | 36 | version: "latest" |
| 29 | 37 | ||
| 30 | - name: "Prepare repository" | 38 | - name: "Prepare repository" |
| 31 | run: ./autogen.sh | 39 | run: ./autogen.sh |
| @@ -34,10 +42,10 @@ jobs: | |||
| 34 | run: emcmake cmake -Bbuild | 42 | run: emcmake cmake -Bbuild |
| 35 | 43 | ||
| 36 | - name: "Build" | 44 | - name: "Build" |
| 37 | run: cmake --build build --config Release | 45 | run: cmake --build build --config Release --parallel 4 |
| 38 | 46 | ||
| 39 | - name: "Test" | 47 | - name: "Test" |
| 40 | run: ctest --test-dir build -C Release --output-on-failure | 48 | run: ctest --test-dir build -C Release --parallel --output-on-failure |
| 41 | 49 | ||
| 42 | # Test ASAN with and without ASM enabled. | 50 | # Test ASAN with and without ASM enabled. |
| 43 | test-asan: | 51 | test-asan: |
| @@ -48,12 +56,20 @@ jobs: | |||
| 48 | contents: read | 56 | contents: read |
| 49 | steps: | 57 | steps: |
| 50 | - name: "Checkout repository" | 58 | - name: "Checkout repository" |
| 51 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 59 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 60 | with: | ||
| 61 | persist-credentials: false | ||
| 62 | |||
| 63 | - name: "Install test dependencies" | ||
| 64 | run: | | ||
| 65 | sudo apt-get update | ||
| 66 | sudo apt-get install -y libio-socket-ssl-perl | ||
| 67 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 52 | 68 | ||
| 53 | - name: "Setup emsdk" | 69 | - name: "Setup emsdk" |
| 54 | uses: mymindstorm/setup-emsdk@4528d102f7230f0e7b276855c01ea1159be0e984 # v16 | 70 | uses: mymindstorm/setup-emsdk@4528d102f7230f0e7b276855c01ea1159be0e984 # v16 |
| 55 | with: | 71 | with: |
| 56 | version: "3.1.60" | 72 | version: "latest" |
| 57 | 73 | ||
| 58 | - name: "Prepare repository" | 74 | - name: "Prepare repository" |
| 59 | run: ./autogen.sh | 75 | run: ./autogen.sh |
| @@ -62,10 +78,10 @@ jobs: | |||
| 62 | run: emcmake cmake -Bbuild | 78 | run: emcmake cmake -Bbuild |
| 63 | env: | 79 | env: |
| 64 | CFLAGS: "-gsource-map -fsanitize=address" | 80 | CFLAGS: "-gsource-map -fsanitize=address" |
| 65 | LDFLAGS: "-fsanitize=address" | 81 | LDFLAGS: "-fsanitize=address -sALLOW_MEMORY_GROWTH" |
| 66 | 82 | ||
| 67 | - name: "Build" | 83 | - name: "Build" |
| 68 | run: cmake --build build --config Release | 84 | run: cmake --build build --config Release --parallel 4 |
| 69 | 85 | ||
| 70 | - name: "Test" | 86 | - name: "Test" |
| 71 | run: ctest --test-dir build -C Release --output-on-failure | 87 | run: ctest --test-dir build -C Release --parallel --output-on-failure |
diff --git a/.github/workflows/fedora-rawhide.yml b/.github/workflows/fedora-rawhide.yml index 0268853..4ae9158 100644 --- a/.github/workflows/fedora-rawhide.yml +++ b/.github/workflows/fedora-rawhide.yml | |||
| @@ -21,12 +21,15 @@ jobs: | |||
| 21 | runs-on: ubuntu-24.04 | 21 | runs-on: ubuntu-24.04 |
| 22 | if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }} | 22 | if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }} |
| 23 | container: | 23 | container: |
| 24 | image: fedora:rawhide | 24 | image: fedora:rawhide@sha256:0c1f63ed8fb818fad16cf6ae091598c410a21d2e1a9adf183beb93189299bfba |
| 25 | steps: | 25 | steps: |
| 26 | - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 26 | - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 27 | with: | ||
| 28 | persist-credentials: false | ||
| 27 | - name: Install dependencies | 29 | - name: Install dependencies |
| 28 | run: | | 30 | run: | |
| 29 | dnf -y install git make clang cmake ninja-build autoconf automake libtool diffutils patch gawk | 31 | dnf -y install git make clang cmake ninja-build autoconf automake libtool diffutils patch gawk perl-IO-Socket-SSL |
| 32 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 30 | - name: Pull upstream source | 33 | - name: Pull upstream source |
| 31 | run: | | 34 | run: | |
| 32 | ./update.sh | 35 | ./update.sh |
| @@ -36,4 +39,4 @@ jobs: | |||
| 36 | ninja | 39 | ninja |
| 37 | - name: Test | 40 | - name: Test |
| 38 | run: | | 41 | run: | |
| 39 | ninja test | 42 | CTEST_PARALLEL_LEVEL="" ninja test |
diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml index cce0f33..3b25a24 100644 --- a/.github/workflows/freebsd.yml +++ b/.github/workflows/freebsd.yml | |||
| @@ -11,7 +11,7 @@ concurrency: | |||
| 11 | cancel-in-progress: true | 11 | cancel-in-progress: true |
| 12 | 12 | ||
| 13 | env: | 13 | env: |
| 14 | FREEBSD_VERSION: "14.1" | 14 | FREEBSD_VERSION: "15" |
| 15 | 15 | ||
| 16 | jobs: | 16 | jobs: |
| 17 | autoconf: | 17 | autoconf: |
| @@ -22,7 +22,9 @@ jobs: | |||
| 22 | contents: read | 22 | contents: read |
| 23 | steps: | 23 | steps: |
| 24 | - name: "Checkout repository" | 24 | - name: "Checkout repository" |
| 25 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 25 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 26 | with: | ||
| 27 | persist-credentials: false | ||
| 26 | 28 | ||
| 27 | - name: "Setup" | 29 | - name: "Setup" |
| 28 | run: | | 30 | run: | |
| @@ -31,13 +33,14 @@ jobs: | |||
| 31 | ./autogen.sh | 33 | ./autogen.sh |
| 32 | 34 | ||
| 33 | - name: "Build on VM" | 35 | - name: "Build on VM" |
| 34 | uses: vmactions/freebsd-vm@d1e65811565151536c0c894fff74f06351ed26e6 # v1.4.5 | 36 | uses: vmactions/freebsd-vm@f0552d3b69211736abd97f02ff3d4674c56b73b1 # v1.5.5 |
| 35 | with: | 37 | with: |
| 36 | release: "${{ env.FREEBSD_VERSION }}" | 38 | release: "${{ env.FREEBSD_VERSION }}" |
| 37 | copyback: false | 39 | copyback: false |
| 38 | prepare: | | 40 | prepare: | |
| 39 | pkg install -y autoconf automake libtool | 41 | pkg install -y autoconf automake libtool p5-IO-Socket-SSL |
| 40 | run: | | 42 | run: | |
| 43 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 41 | ./configure | 44 | ./configure |
| 42 | make -j2 check || (cat tests/test-suite.log && exit 1) | 45 | make -j2 check || (cat tests/test-suite.log && exit 1) |
| 43 | 46 | ||
| @@ -49,7 +52,9 @@ jobs: | |||
| 49 | contents: read | 52 | contents: read |
| 50 | steps: | 53 | steps: |
| 51 | - name: "Checkout repository" | 54 | - name: "Checkout repository" |
| 52 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 55 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 56 | with: | ||
| 57 | persist-credentials: false | ||
| 53 | 58 | ||
| 54 | - name: "Setup" | 59 | - name: "Setup" |
| 55 | run: | | 60 | run: | |
| @@ -58,13 +63,14 @@ jobs: | |||
| 58 | ./autogen.sh | 63 | ./autogen.sh |
| 59 | 64 | ||
| 60 | - name: "Build on VM" | 65 | - name: "Build on VM" |
| 61 | uses: vmactions/freebsd-vm@d1e65811565151536c0c894fff74f06351ed26e6 # v1.4.5 | 66 | uses: vmactions/freebsd-vm@f0552d3b69211736abd97f02ff3d4674c56b73b1 # v1.5.5 |
| 62 | with: | 67 | with: |
| 63 | release: "${{ env.FREEBSD_VERSION }}" | 68 | release: "${{ env.FREEBSD_VERSION }}" |
| 64 | copyback: false | 69 | copyback: false |
| 65 | prepare: | | 70 | prepare: | |
| 66 | pkg install -y cmake ninja | 71 | pkg install -y cmake ninja p5-IO-Socket-SSL |
| 67 | run: | | 72 | run: | |
| 73 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 68 | export CTEST_OUTPUT_ON_FAILURE=1 | 74 | export CTEST_OUTPUT_ON_FAILURE=1 |
| 69 | cmake -G Ninja -B build | 75 | cmake -G Ninja -B build |
| 70 | ninja -C build | 76 | ninja -C build |
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index fa512f8..06dda17 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml | |||
| @@ -35,6 +35,9 @@ jobs: | |||
| 35 | - os: "ubuntu-24.04" # loong64 | 35 | - os: "ubuntu-24.04" # loong64 |
| 36 | arch: "loong64" | 36 | arch: "loong64" |
| 37 | compiler: "gcc" | 37 | compiler: "gcc" |
| 38 | - os: "ubuntu-24.04" | ||
| 39 | arch: "riscv64" | ||
| 40 | compiler: "gcc" | ||
| 38 | - os: "ubuntu-24.04-arm" | 41 | - os: "ubuntu-24.04-arm" |
| 39 | arch: "native" | 42 | arch: "native" |
| 40 | compiler: "gcc" | 43 | compiler: "gcc" |
| @@ -44,7 +47,39 @@ jobs: | |||
| 44 | 47 | ||
| 45 | steps: | 48 | steps: |
| 46 | - name: "Checkout repository" | 49 | - name: "Checkout repository" |
| 47 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 50 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 51 | with: | ||
| 52 | persist-credentials: false | ||
| 53 | |||
| 54 | - name: "Install test dependencies" | ||
| 55 | run: | | ||
| 56 | packages=(cmake ninja-build libio-socket-ssl-perl) | ||
| 57 | case "${{ matrix.arch }}" in | ||
| 58 | mingw32|mingw64) | ||
| 59 | packages+=(mingw-w64) | ||
| 60 | ;; | ||
| 61 | arm32) | ||
| 62 | packages+=(qemu-user-static binfmt-support g++-arm-linux-gnueabihf) | ||
| 63 | ;; | ||
| 64 | arm64) | ||
| 65 | packages+=(qemu-user-static binfmt-support g++-aarch64-linux-gnu) | ||
| 66 | ;; | ||
| 67 | loong64) | ||
| 68 | packages+=(qemu-user-static binfmt-support g++-14-loongarch64-linux-gnu) | ||
| 69 | ;; | ||
| 70 | mips32) | ||
| 71 | packages+=(qemu-user-static binfmt-support g++-mipsel-linux-gnu) | ||
| 72 | ;; | ||
| 73 | mips64) | ||
| 74 | packages+=(qemu-user-static binfmt-support g++-mips64el-linux-gnuabi64) | ||
| 75 | ;; | ||
| 76 | riscv64) | ||
| 77 | packages+=(qemu-user-static binfmt-support g++-riscv64-linux-gnu) | ||
| 78 | ;; | ||
| 79 | esac | ||
| 80 | sudo apt-get update | ||
| 81 | sudo apt-get install -y "${packages[@]}" | ||
| 82 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 48 | 83 | ||
| 49 | - name: "Run tests" | 84 | - name: "Run tests" |
| 50 | run: ./scripts/test || (status=$?; cat tests/test-suite.log; exit $status) | 85 | run: ./scripts/test || (status=$?; cat tests/test-suite.log; exit $status) |
| @@ -66,7 +101,15 @@ jobs: | |||
| 66 | os: ["ubuntu-24.04", "ubuntu-24.04-arm"] | 101 | os: ["ubuntu-24.04", "ubuntu-24.04-arm"] |
| 67 | steps: | 102 | steps: |
| 68 | - name: "Checkout repository" | 103 | - name: "Checkout repository" |
| 69 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 104 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 105 | with: | ||
| 106 | persist-credentials: false | ||
| 107 | |||
| 108 | - name: "Install test dependencies" | ||
| 109 | run: | | ||
| 110 | sudo apt-get update | ||
| 111 | sudo apt-get install -y cmake ninja-build libio-socket-ssl-perl | ||
| 112 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 70 | 113 | ||
| 71 | - name: "Run tests" | 114 | - name: "Run tests" |
| 72 | run: ./scripts/test | 115 | run: ./scripts/test |
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 5958092..1aabcd8 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml | |||
| @@ -25,10 +25,17 @@ jobs: | |||
| 25 | arch: ["arm64", "x86_64"] | 25 | arch: ["arm64", "x86_64"] |
| 26 | steps: | 26 | steps: |
| 27 | - name: "Install required packages" | 27 | - name: "Install required packages" |
| 28 | run: brew install automake libtool | 28 | run: | |
| 29 | brew install automake libtool perl cpanminus | ||
| 30 | PERL="$(brew --prefix perl)/bin/perl" | ||
| 31 | "$PERL" "$(command -v cpanm)" --notest IO::Socket::SSL | ||
| 32 | echo "$(brew --prefix perl)/bin" >> "$GITHUB_PATH" | ||
| 33 | "$PERL" -MIO::Socket::SSL::Utils -e 1 | ||
| 29 | 34 | ||
| 30 | - name: "Checkout repository" | 35 | - name: "Checkout repository" |
| 31 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 36 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 37 | with: | ||
| 38 | persist-credentials: false | ||
| 32 | 39 | ||
| 33 | - name: "Run tests" | 40 | - name: "Run tests" |
| 34 | run: ./scripts/test | 41 | run: ./scripts/test |
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3dd39e0..86023cf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml | |||
| @@ -4,49 +4,60 @@ name: "Release" | |||
| 4 | on: | 4 | on: |
| 5 | push: | 5 | push: |
| 6 | tags: [ "v*" ] | 6 | tags: [ "v*" ] |
| 7 | workflow_dispatch: | ||
| 7 | 8 | ||
| 8 | concurrency: | 9 | concurrency: |
| 9 | group: "${{ github.workflow }}-${{ github.event.number || github.ref }}" | 10 | group: "${{ github.workflow }}-${{ github.ref }}" |
| 10 | cancel-in-progress: true | 11 | cancel-in-progress: false |
| 11 | 12 | ||
| 12 | permissions: | 13 | permissions: {} |
| 13 | contents: write | ||
| 14 | 14 | ||
| 15 | jobs: | 15 | jobs: |
| 16 | release: | 16 | release: |
| 17 | name: "Release" | 17 | name: "Release" |
| 18 | runs-on: "ubuntu-24.04" | 18 | runs-on: "ubuntu-24.04" |
| 19 | outputs: | 19 | permissions: |
| 20 | upload_url: "${{ steps.create_release.outputs.upload_url }}" | 20 | contents: write # Required to create release. |
| 21 | steps: | 21 | steps: |
| 22 | - name: "Checkout repository" | 22 | - name: "Checkout repository" |
| 23 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 23 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 24 | with: | ||
| 25 | persist-credentials: false | ||
| 24 | 26 | ||
| 25 | - name: "Generate version changelog" | 27 | - name: "Generate version changelog" |
| 26 | run: .github/scripts/changelog.sh "$VERSION" > release-changelog.txt | 28 | run: .github/scripts/changelog.sh "$VERSION" > release-changelog.txt |
| 27 | env: | 29 | env: |
| 28 | VERSION: "${{ github.ref_name }}" | 30 | VERSION: "${{ github.ref_name }}" |
| 29 | 31 | ||
| 30 | - name: "Create GitHub release" | 32 | - name: "Create draft GitHub release" |
| 31 | id: create_release | 33 | env: |
| 32 | uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0 | 34 | GH_TOKEN: "${{ github.token }}" |
| 33 | with: | 35 | VERSION: "${{ github.ref_name }}" |
| 34 | body_path: "${{ github.workspace }}/release-changelog.txt" | 36 | run: | |
| 37 | gh release create "$VERSION" \ | ||
| 38 | --repo "$GITHUB_REPOSITORY" \ | ||
| 39 | --title "$VERSION" \ | ||
| 40 | --notes-file release-changelog.txt \ | ||
| 41 | --draft | ||
| 35 | 42 | ||
| 36 | build-windows: | 43 | build-windows: |
| 37 | name: "${{ matrix.os }}/${{ matrix.arch }}" | 44 | name: "${{ matrix.os }}/${{ matrix.arch }}" |
| 38 | runs-on: "${{ matrix.os }}" | 45 | runs-on: "${{ matrix.os }}" |
| 39 | needs: ["release"] | 46 | needs: ["release"] |
| 47 | permissions: | ||
| 48 | contents: write # Required to upload release assets. | ||
| 40 | strategy: | 49 | strategy: |
| 41 | matrix: | 50 | matrix: |
| 42 | os: [ "windows-2022" ] | 51 | os: [ "windows-2022" ] |
| 43 | arch: [ "Win32", "x64", "ARM64" ] | 52 | arch: [ "Win32", "x64", "ARM64" ] |
| 44 | steps: | 53 | steps: |
| 45 | - name: "Checkout repository" | 54 | - name: "Checkout repository" |
| 46 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 55 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 56 | with: | ||
| 57 | persist-credentials: false | ||
| 47 | 58 | ||
| 48 | - name: "Setup MSYS2" | 59 | - name: "Setup MSYS2" |
| 49 | uses: msys2/setup-msys2@cafece8e6baf9247cf9b1bf95097b0b983cc558d # v2.31.0 | 60 | uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2.32.0 |
| 50 | with: | 61 | with: |
| 51 | update: true | 62 | update: true |
| 52 | install: >- | 63 | install: >- |
| @@ -59,23 +70,38 @@ jobs: | |||
| 59 | patch | 70 | patch |
| 60 | perl | 71 | perl |
| 61 | 72 | ||
| 62 | - shell: msys2 {0} | 73 | - name: "Run autogen" |
| 74 | shell: msys2 {0} | ||
| 63 | run: ./autogen.sh | 75 | run: ./autogen.sh |
| 64 | 76 | ||
| 65 | - shell: cmd | 77 | - name: "Configure" |
| 66 | run: cmake -Bbuild -G "Visual Studio 17 2022" -A ${{ matrix.arch }} -DCMAKE_INSTALL_PREFIX=local | 78 | shell: pwsh |
| 79 | env: | ||
| 80 | ARCH: "${{ matrix.arch }}" | ||
| 81 | run: cmake -Bbuild -G "Visual Studio 17 2022" -A "${env:ARCH}" -DCMAKE_INSTALL_PREFIX=local | ||
| 67 | 82 | ||
| 68 | - shell: cmd | 83 | - name: "Build" |
| 84 | shell: pwsh | ||
| 69 | run: cmake --build build --config Release | 85 | run: cmake --build build --config Release |
| 70 | 86 | ||
| 71 | - shell: cmd | 87 | - name: "Install" |
| 88 | shell: pwsh | ||
| 72 | run: cmake --install build --config Release | 89 | run: cmake --install build --config Release |
| 73 | 90 | ||
| 74 | - shell: pwsh | 91 | - name: "Package release artifact" |
| 75 | run: Compress-Archive -Path local\* "libressl_${{ github.ref_name }}_windows_${{ matrix.arch }}.zip" | 92 | shell: pwsh |
| 93 | env: | ||
| 94 | VERSION: "${{ github.ref_name }}" | ||
| 95 | ARCH: "${{ matrix.arch }}" | ||
| 96 | run: Compress-Archive -Path local\* "libressl_${env:VERSION}_windows_${env:ARCH}.zip" | ||
| 76 | 97 | ||
| 77 | - name: "Upload release artifact" | 98 | - name: "Upload release artifact" |
| 78 | uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0 | 99 | shell: bash |
| 79 | with: | 100 | env: |
| 80 | files: | | 101 | GH_TOKEN: "${{ github.token }}" |
| 81 | libressl_${{ github.ref_name }}_windows_${{ matrix.arch }}.zip | 102 | VERSION: "${{ github.ref_name }}" |
| 103 | ARCH: "${{ matrix.arch }}" | ||
| 104 | run: | | ||
| 105 | gh release upload "$VERSION" \ | ||
| 106 | --repo "$GITHUB_REPOSITORY" \ | ||
| 107 | "libressl_${VERSION}_windows_${ARCH}.zip" | ||
diff --git a/.github/workflows/rust-openssl.yml b/.github/workflows/rust-openssl.yml index 68fbb33..600d15a 100644 --- a/.github/workflows/rust-openssl.yml +++ b/.github/workflows/rust-openssl.yml | |||
| @@ -19,7 +19,9 @@ jobs: | |||
| 19 | contents: read | 19 | contents: read |
| 20 | steps: | 20 | steps: |
| 21 | - name: "Checkout repository" | 21 | - name: "Checkout repository" |
| 22 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 22 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 23 | with: | ||
| 24 | persist-credentials: false | ||
| 23 | 25 | ||
| 24 | - name: "Build LibreSSL" | 26 | - name: "Build LibreSSL" |
| 25 | run: | | 27 | run: | |
diff --git a/.github/workflows/solaris.yml b/.github/workflows/solaris.yml index 78c5901..0241051 100644 --- a/.github/workflows/solaris.yml +++ b/.github/workflows/solaris.yml | |||
| @@ -19,7 +19,9 @@ jobs: | |||
| 19 | contents: read | 19 | contents: read |
| 20 | steps: | 20 | steps: |
| 21 | - name: "Checkout repository" | 21 | - name: "Checkout repository" |
| 22 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 22 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 23 | with: | ||
| 24 | persist-credentials: false | ||
| 23 | 25 | ||
| 24 | - name: "Setup" | 26 | - name: "Setup" |
| 25 | run: | | 27 | run: | |
| @@ -28,10 +30,12 @@ jobs: | |||
| 28 | ./autogen.sh | 30 | ./autogen.sh |
| 29 | 31 | ||
| 30 | - name: "Build on VM" | 32 | - name: "Build on VM" |
| 31 | uses: vmactions/solaris-vm@c20562b2c69737b06be9e828915761703e487373 # v1.3.3 | 33 | uses: vmactions/solaris-vm@96d8d976f9e67d82ec6c7e8ce9c1060731f9e21c # v1.3.9 |
| 32 | with: | 34 | with: |
| 33 | prepare: | | 35 | prepare: | |
| 34 | pkg install gcc make | 36 | pkg install gcc make |
| 37 | PERL_MM_USE_DEFAULT=1 cpan -T IO::Socket::SSL | ||
| 35 | run: | | 38 | run: | |
| 39 | perl -MIO::Socket::SSL::Utils -e 1 | ||
| 36 | MAKE=gmake ./configure | 40 | MAKE=gmake ./configure |
| 37 | gmake -j2 check || (cat tests/test-suite.log && exit 1) | 41 | gmake -j2 check || (cat tests/test-suite.log && exit 1) |
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 4a2cead..7199214 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml | |||
| @@ -13,7 +13,7 @@ concurrency: | |||
| 13 | 13 | ||
| 14 | jobs: | 14 | jobs: |
| 15 | test: | 15 | test: |
| 16 | name: "${{ matrix.os }}/${{ matrix.arch }} (${{ matrix.generator }}${{ matrix.shared == 'ON' && ', shared' || '' }})" | 16 | name: "${{ matrix.os }}/${{ matrix.arch }} (${{ matrix.shared == 'ON' && 'shared' || 'static' }})" |
| 17 | runs-on: "${{ matrix.os }}" | 17 | runs-on: "${{ matrix.os }}" |
| 18 | if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }} | 18 | if: ${{ github.repository_owner == 'libressl' || github.event_name != 'schedule' }} |
| 19 | permissions: | 19 | permissions: |
| @@ -22,20 +22,24 @@ jobs: | |||
| 22 | fail-fast: false | 22 | fail-fast: false |
| 23 | matrix: | 23 | matrix: |
| 24 | os: ["windows-2022", "windows-2025"] | 24 | os: ["windows-2022", "windows-2025"] |
| 25 | arch: ["ARM64", "x64", "Win32"] | 25 | arch: ["x64", "Win32"] |
| 26 | shared: ["ON", "OFF"] | 26 | shared: ["ON", "OFF"] |
| 27 | include: | 27 | include: |
| 28 | - os: "windows-2022" | 28 | - os: "windows-11-vs2026-arm" |
| 29 | generator: "Visual Studio 17 2022" | 29 | arch: "ARM64" |
| 30 | - os: "windows-2025" | 30 | shared: "ON" |
| 31 | # XXX - use appropriate value | 31 | - os: "windows-11-vs2026-arm" |
| 32 | generator: "Visual Studio 17 2022" | 32 | arch: "ARM64" |
| 33 | shared: "OFF" | ||
| 33 | steps: | 34 | steps: |
| 34 | - name: "Checkout repository" | 35 | - name: "Checkout repository" |
| 35 | uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | 36 | uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 |
| 37 | with: | ||
| 38 | persist-credentials: false | ||
| 36 | 39 | ||
| 37 | - name: "Setup MSYS2" | 40 | - name: "Setup MSYS2" |
| 38 | uses: msys2/setup-msys2@cafece8e6baf9247cf9b1bf95097b0b983cc558d # v2.31.0 | 41 | id: msys2 |
| 42 | uses: msys2/setup-msys2@66cd2cce69caa17b53920067426061ca1de3a884 # v2.32.0 | ||
| 39 | with: | 43 | with: |
| 40 | update: true | 44 | update: true |
| 41 | install: >- | 45 | install: >- |
| @@ -44,23 +48,49 @@ jobs: | |||
| 44 | git | 48 | git |
| 45 | patch | 49 | patch |
| 46 | perl | 50 | perl |
| 51 | perl-IO-Socket-SSL | ||
| 47 | 52 | ||
| 48 | - name: "Update" | 53 | - name: "Update" |
| 49 | shell: msys2 {0} | 54 | shell: msys2 {0} |
| 50 | run: ./update.sh | 55 | run: ./update.sh |
| 51 | 56 | ||
| 52 | - name: "Configure CMake" | 57 | - name: "Configure CMake" |
| 53 | shell: cmd | 58 | shell: pwsh |
| 54 | run: cmake -Bbuild -G "${{ matrix.generator }}" -A ${{ matrix.arch }} -D BUILD_SHARED_LIBS=${{ matrix.shared }} -D CMAKE_INSTALL_PREFIX=../local | 59 | run: | |
| 60 | $perl = Join-Path '${{ steps.msys2.outputs.msys2-location }}' 'usr\bin\perl.exe' | ||
| 61 | & $perl -MIO::Socket::SSL::Utils -e 1 | ||
| 62 | if ($LASTEXITCODE -ne 0) { | ||
| 63 | throw "IO::Socket::SSL::Utils is unavailable" | ||
| 64 | } | ||
| 65 | |||
| 66 | $vswhere = Join-Path ${env:ProgramFiles(x86)} 'Microsoft Visual Studio\Installer\vswhere.exe' | ||
| 67 | $component = if ('${{ matrix.arch }}' -eq 'ARM64') { | ||
| 68 | 'Microsoft.VisualStudio.Component.VC.Tools.ARM64' | ||
| 69 | } else { | ||
| 70 | 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64' | ||
| 71 | } | ||
| 72 | $version = & $vswhere -latest -products * -requires $component -property installationVersion | ||
| 73 | if (-not $version) { | ||
| 74 | throw "No Visual Studio installation with $component found" | ||
| 75 | } | ||
| 76 | $major = $version.Split('.')[0] | ||
| 77 | $generator = cmake --help | | ||
| 78 | Select-String "^\s*\*?\s*(Visual Studio $major \d+)" | | ||
| 79 | Select-Object -First 1 | | ||
| 80 | ForEach-Object { $_.Matches[0].Groups[1].Value } | ||
| 81 | if (-not $generator) { | ||
| 82 | throw "No CMake generator found for Visual Studio $major" | ||
| 83 | } | ||
| 84 | Write-Host "Using generator: $generator" | ||
| 85 | cmake -Bbuild -G "$generator" -A ${{ matrix.arch }} -D BUILD_SHARED_LIBS=${{ matrix.shared }} -D CMAKE_INSTALL_PREFIX=../local "-DPERL_EXECUTABLE=$perl" | ||
| 55 | 86 | ||
| 56 | - name: "Build" | 87 | - name: "Build" |
| 57 | shell: cmd | 88 | shell: cmd |
| 58 | run: cmake --build build --config Release | 89 | run: cmake --build build --config Release |
| 59 | 90 | ||
| 60 | - name: "Test" | 91 | - name: "Test" |
| 61 | if: matrix.arch != 'ARM64' | ||
| 62 | shell: cmd | 92 | shell: cmd |
| 63 | run: ctest --test-dir build -C Release --output-on-failure | 93 | run: ctest --test-dir build -C Release --parallel --output-on-failure |
| 64 | 94 | ||
| 65 | - name: "Upload build artifacts" | 95 | - name: "Upload build artifacts" |
| 66 | if: always() | 96 | if: always() |
