Commit f106d7632a for openssl.org
commit f106d7632add327316577def015a267b908bfa3c
Author: Frederik Wedel-Heinen <frederik.wedel-heinen@dencrypt.dk>
Date: Tue Apr 7 21:55:52 2026 +0200
Only verify software can build if it is not a documentation only PR.
Resolves: https://github.com/openssl/openssl/issues/29167
Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
MergeDate: Mon Jul 20 09:46:03 2026
(Merged from https://github.com/openssl/openssl/pull/30712)
diff --git a/.github/workflows/ci-doc-changes.yml b/.github/workflows/ci-doc-changes.yml
new file mode 100644
index 0000000000..08919fc323
--- /dev/null
+++ b/.github/workflows/ci-doc-changes.yml
@@ -0,0 +1,125 @@
+# Copyright 2021-2026 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+name: Documentation and Installability CI
+
+on: [pull_request, push]
+
+permissions:
+ contents: read
+
+env:
+ OSSL_RUN_CI_TESTS: 1
+
+jobs:
+ check_docs:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+ - name: config
+ run: ./config --strict-warnings --banner=Configured enable-fips && perl configdata.pm --dump
+ - name: make build_generated
+ run: make -s build_generated
+ - name: make doc-nits
+ run: make doc-nits
+ - name: make help
+ run: make help
+ - name: make md-nits
+ run: |
+ sudo gem install mdl
+ make md-nits
+
+ # out-of-source-and-install checks multiple things at the same time:
+ # - That building, testing and installing works from an out-of-source
+ # build tree
+ # - That building, testing and installing works with a read-only source
+ # tree
+ out-of-readonly-source-and-install-ubuntu:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ path: ./source
+ persist-credentials: false
+ - name: checkout fuzz/corpora submodule
+ run: git submodule update --init --depth 1 fuzz/corpora
+ working-directory: ./source
+ - name: make source read-only
+ run: chmod -R a-w ./source
+ - name: create build and install directories
+ run: |
+ mkdir ./build
+ mkdir ./install
+ - name: config
+ run: |
+ ../source/config --banner=Configured enable-demos enable-h3demo enable-fips enable-lms enable-quic enable-acvp-tests --strict-warnings --prefix=$(cd ../install; pwd)
+ perl configdata.pm --dump
+ working-directory: ./build
+ - name: make
+ run: make -s -j4
+ working-directory: ./build
+ - name: get cpu info
+ run: |
+ cat /proc/cpuinfo
+ ./util/opensslwrap.sh version -c
+ working-directory: ./build
+ - name: make test
+ run: ../source/.github/workflows/make-test
+ working-directory: ./build
+ - name: save artifacts
+ if: success() || failure()
+ uses: actions/upload-artifact@v5
+ with:
+ name: "ci@out-of-readonly-source-and-install-ubuntu"
+ path: build/artifacts.tar.gz
+ - name: make install
+ run: make install
+ working-directory: ./build
+
+ out-of-readonly-source-and-install-macos:
+ runs-on: macos-15
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ path: ./source
+ persist-credentials: false
+ - name: checkout fuzz/corpora submodule
+ run: git submodule update --init --depth 1 fuzz/corpora
+ working-directory: ./source
+ - name: make source read-only
+ run: chmod -R a-w ./source
+ - name: create build and install directories
+ run: |
+ mkdir ./build
+ mkdir ./install
+ - name: config
+ run: |
+ ../source/config --banner=Configured enable-fips enable-lms enable-demos enable-h3demo enable-quic enable-acvp-tests --strict-warnings --prefix=$(cd ../install; pwd)
+ perl configdata.pm --dump
+ working-directory: ./build
+ - name: make
+ run: make -s -j4
+ working-directory: ./build
+ - name: get cpu info
+ run: |
+ sysctl machdep.cpu
+ ./util/opensslwrap.sh version -c
+ working-directory: ./build
+ - name: make test
+ run: ../source/.github/workflows/make-test
+ working-directory: ./build
+ - name: save artifacts
+ if: success() || failure()
+ uses: actions/upload-artifact@v5
+ with:
+ name: "ci@out-of-readonly-source-and-install-macos-15"
+ path: build/artifacts.tar.gz
+ - name: make install
+ run: make install
+ working-directory: ./build
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 597501112f..a80ea66b29 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -7,7 +7,25 @@
name: GitHub CI
-on: [pull_request, push]
+on:
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '*.md'
+ - '*.pod'
+ - 'README*'
+ - 'funding.json'
+ - 'LICENSE.txt'
+ - 'VERSION.dat'
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '*.md'
+ - '*.pod'
+ - 'README*'
+ - 'funding.json'
+ - 'LICENSE.txt'
+ - 'VERSION.dat'
# for some reason, this does not work:
# variables:
@@ -45,25 +63,6 @@ jobs:
- name: git diff
run: git diff --exit-code
- check_docs:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v6
- with:
- persist-credentials: false
- - name: config
- run: ./config --strict-warnings --banner=Configured enable-fips && perl configdata.pm --dump
- - name: make build_generated
- run: make -s build_generated
- - name: make doc-nits
- run: make doc-nits
- - name: make help
- run: make help
- - name: make md-nits
- run: |
- sudo gem install mdl
- make md-nits
-
# This checks that we use ANSI C language syntax and semantics.
# We are not as strict with libraries, but rather adapt to what's
# expected to be available in a certain version of each platform.
@@ -665,95 +664,6 @@ jobs:
name: "ci@legacy"
path: artifacts.tar.gz
- # out-of-source-and-install checks multiple things at the same time:
- # - That building, testing and installing works from an out-of-source
- # build tree
- # - That building, testing and installing works with a read-only source
- # tree
- out-of-readonly-source-and-install-ubuntu:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v6
- with:
- path: ./source
- persist-credentials: false
- - name: checkout fuzz/corpora submodule
- run: git submodule update --init --depth 1 fuzz/corpora
- working-directory: ./source
- - name: make source read-only
- run: chmod -R a-w ./source
- - name: create build and install directories
- run: |
- mkdir ./build
- mkdir ./install
- - name: config
- run: |
- ../source/config --banner=Configured enable-demos enable-h3demo enable-fips enable-lms enable-quic enable-acvp-tests --strict-warnings --prefix=$(cd ../install; pwd)
- perl configdata.pm --dump
- working-directory: ./build
- - name: make
- run: make -s -j4
- working-directory: ./build
- - name: get cpu info
- run: |
- cat /proc/cpuinfo
- ./util/opensslwrap.sh version -c
- working-directory: ./build
- - name: make test
- run: ../source/.github/workflows/make-test
- working-directory: ./build
- - name: save artifacts
- if: success() || failure()
- uses: actions/upload-artifact@v5
- with:
- name: "ci@out-of-readonly-source-and-install-ubuntu"
- path: build/artifacts.tar.gz
- - name: make install
- run: make install
- working-directory: ./build
-
- out-of-readonly-source-and-install-macos:
- runs-on: macos-15
- steps:
- - uses: actions/checkout@v6
- with:
- path: ./source
- persist-credentials: false
- - name: checkout fuzz/corpora submodule
- run: git submodule update --init --depth 1 fuzz/corpora
- working-directory: ./source
- - name: make source read-only
- run: chmod -R a-w ./source
- - name: create build and install directories
- run: |
- mkdir ./build
- mkdir ./install
- - name: config
- run: |
- ../source/config --banner=Configured enable-fips enable-lms enable-demos enable-h3demo enable-quic enable-acvp-tests --strict-warnings --prefix=$(cd ../install; pwd)
- perl configdata.pm --dump
- working-directory: ./build
- - name: make
- run: make -s -j4
- working-directory: ./build
- - name: get cpu info
- run: |
- sysctl machdep.cpu
- ./util/opensslwrap.sh version -c
- working-directory: ./build
- - name: make test
- run: ../source/.github/workflows/make-test
- working-directory: ./build
- - name: save artifacts
- if: success() || failure()
- uses: actions/upload-artifact@v5
- with:
- name: "ci@out-of-readonly-source-and-install-macos-15"
- path: build/artifacts.tar.gz
- - name: make install
- run: make install
- working-directory: ./build
-
external-tests-misc:
runs-on: ubuntu-latest
steps:
diff --git a/.github/workflows/cross-compiles.yml b/.github/workflows/cross-compiles.yml
index 3e1fbc142d..d0f5ff8284 100644
--- a/.github/workflows/cross-compiles.yml
+++ b/.github/workflows/cross-compiles.yml
@@ -7,7 +7,25 @@
name: Cross Compile
-on: [pull_request, push]
+on:
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '*.md'
+ - '*.pod'
+ - 'README*'
+ - 'funding.json'
+ - 'LICENSE.txt'
+ - 'VERSION.dat'
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '*.md'
+ - '*.pod'
+ - 'README*'
+ - 'funding.json'
+ - 'LICENSE.txt'
+ - 'VERSION.dat'
permissions:
contents: read
diff --git a/.github/workflows/fips-checksums.yml b/.github/workflows/fips-checksums.yml
index f82a604ab7..5fd96b3159 100644
--- a/.github/workflows/fips-checksums.yml
+++ b/.github/workflows/fips-checksums.yml
@@ -6,7 +6,16 @@
# https://www.openssl.org/source/license.html
name: FIPS Check and ABIDIFF
-on: [pull_request]
+on:
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '*.md'
+ - '*.pod'
+ - 'README*'
+ - 'funding.json'
+ - 'LICENSE.txt'
+ - 'VERSION.dat'
permissions:
contents: read
diff --git a/.github/workflows/perl-minimal-checker.yml b/.github/workflows/perl-minimal-checker.yml
index 9ca4e9b509..2606add5fb 100644
--- a/.github/workflows/perl-minimal-checker.yml
+++ b/.github/workflows/perl-minimal-checker.yml
@@ -7,7 +7,25 @@
# Jobs run per pull request submission
name: Perl-minimal-checker CI
-on: [pull_request, push]
+on:
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '*.md'
+ - '*.pod'
+ - 'README*'
+ - 'funding.json'
+ - 'LICENSE.txt'
+ - 'VERSION.dat'
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '*.md'
+ - '*.pod'
+ - 'README*'
+ - 'funding.json'
+ - 'LICENSE.txt'
+ - 'VERSION.dat'
permissions:
contents: read
diff --git a/.github/workflows/prov-compat-label.yml b/.github/workflows/prov-compat-label.yml
index cf2b44e169..94334da8e5 100644
--- a/.github/workflows/prov-compat-label.yml
+++ b/.github/workflows/prov-compat-label.yml
@@ -10,7 +10,16 @@
name: Provider compatibility for PRs
-on: [pull_request]
+on:
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '*.md'
+ - '*.pod'
+ - 'README*'
+ - 'funding.json'
+ - 'LICENSE.txt'
+ - 'VERSION.dat'
permissions:
contents: read
diff --git a/.github/workflows/riscv-more-cross-compiles.yml b/.github/workflows/riscv-more-cross-compiles.yml
index cac662b8d3..069495e0f6 100644
--- a/.github/workflows/riscv-more-cross-compiles.yml
+++ b/.github/workflows/riscv-more-cross-compiles.yml
@@ -10,6 +10,14 @@ name: Cross Compile for RISC-V Extensions
on:
pull_request:
types: [opened, reopened, edited, synchronize]
+ paths-ignore:
+ - 'doc/**'
+ - '*.md'
+ - '*.pod'
+ - 'README*'
+ - 'funding.json'
+ - 'LICENSE.txt'
+ - 'VERSION.dat'
push:
schedule:
- cron: '35 02 * * *'
diff --git a/.github/workflows/run-checker-ci.yml b/.github/workflows/run-checker-ci.yml
index 70d105e3f2..89186ff03c 100644
--- a/.github/workflows/run-checker-ci.yml
+++ b/.github/workflows/run-checker-ci.yml
@@ -7,7 +7,25 @@
# Jobs run per pull request submission
name: Run-checker CI
-on: [pull_request, push]
+on:
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '*.md'
+ - '*.pod'
+ - 'README*'
+ - 'funding.json'
+ - 'LICENSE.txt'
+ - 'VERSION.dat'
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '*.md'
+ - '*.pod'
+ - 'README*'
+ - 'funding.json'
+ - 'LICENSE.txt'
+ - 'VERSION.dat'
permissions:
contents: read
diff --git a/.github/workflows/style-checks.yml b/.github/workflows/style-checks.yml
index b345ae5110..f4d251681d 100644
--- a/.github/workflows/style-checks.yml
+++ b/.github/workflows/style-checks.yml
@@ -7,7 +7,16 @@
name: Coding style validation
-on: [pull_request]
+on:
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '*.md'
+ - '*.pod'
+ - 'README*'
+ - 'funding.json'
+ - 'LICENSE.txt'
+ - 'VERSION.dat'
jobs:
check-style:
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index 6d8ebe39b7..eb8649f741 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -7,7 +7,26 @@
name: Windows GitHub CI
-on: [pull_request, push]
+on:
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '*.md'
+ - '*.pod'
+ - 'README*'
+ - 'funding.json'
+ - 'LICENSE.txt'
+ - 'VERSION.dat'
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '*.md'
+ - '*.pod'
+ - 'README*'
+ - 'funding.json'
+ - 'LICENSE.txt'
+ - 'VERSION.dat'
+
permissions:
contents: read