aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/android.yml25
-rw-r--r--.github/workflows/cifuzz.yml2
-rw-r--r--.github/workflows/cmake-config.yml6
-rw-r--r--.github/workflows/coverity.yml7
-rw-r--r--.github/workflows/emscripten.yml34
-rw-r--r--.github/workflows/fedora-rawhide.yml11
-rw-r--r--.github/workflows/freebsd.yml20
-rw-r--r--.github/workflows/linux.yml47
-rw-r--r--.github/workflows/macos.yml11
-rw-r--r--.github/workflows/release.yml76
-rw-r--r--.github/workflows/rust-openssl.yml4
-rw-r--r--.github/workflows/solaris.yml8
-rw-r--r--.github/workflows/windows.yml56
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:
13jobs: 13jobs:
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
13env: 13env:
14 FREEBSD_VERSION: "14.1" 14 FREEBSD_VERSION: "15"
15 15
16jobs: 16jobs:
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"
4on: 4on:
5 push: 5 push:
6 tags: [ "v*" ] 6 tags: [ "v*" ]
7 workflow_dispatch:
7 8
8concurrency: 9concurrency:
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
12permissions: 13permissions: {}
13 contents: write
14 14
15jobs: 15jobs:
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
14jobs: 14jobs:
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()