4545 - name : Test (pcre2posix program)
4646 run : ./pcre2posix_test -v
4747
48+ - name : Install
49+ run : |
50+ make install "DESTDIR=`pwd`/install-dir"
51+ maint/RunManifestTest install-dir maint/manifest-makeinstall-linux
52+
4853 alpine :
4954 name : alpine
5055 runs-on : ubuntu-latest
7984 - name : Test (pcre2posix program)
8085 run : ./pcre2posix_test -v
8186
87+ - name : Install
88+ run : |
89+ make install "DESTDIR=`pwd`/install-dir"
90+ maint/RunManifestTest install-dir maint/manifest-makeinstall-linux
91+
8292 macos :
8393 name : macOS universal
8494 runs-on : macos-latest
@@ -89,14 +99,20 @@ jobs:
8999 submodules : true
90100
91101 - name : Configure
92- run : cmake -DPCRE2_SUPPORT_JIT=ON -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=ON -DPCRE2_SUPPORT_LIBZ=ON -DPCRE2_SUPPORT_LIBBZ2=ON -DCMAKE_OSX_ARCHITECTURES='arm64;x86_64' -DCMAKE_C_FLAGS='-Wall -Wextra' -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DCMAKE_BUILD_TYPE=Release -B build
102+ run : cmake -DPCRE2_SUPPORT_JIT=ON -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=ON -DPCRE2_SUPPORT_LIBZ=ON -DPCRE2_SUPPORT_LIBBZ2=ON -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON - DCMAKE_OSX_ARCHITECTURES='arm64;x86_64' -DCMAKE_C_FLAGS='-Wall -Wextra' -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DCMAKE_BUILD_TYPE=Release -B build
93103
94104 - name : Build
95105 run : cd build && make -j3
96106
97107 - name : Test
98108 run : cd build && ctest -j3 --output-on-failure
99109
110+ - name : Install
111+ run : |
112+ cd build
113+ cmake --install . --prefix install-dir
114+ ../maint/RunManifestTest install-dir ../maint/manifest-cmakeinstall-macos
115+
100116 windows :
101117 name : Windows
102118 runs-on : windows-latest
@@ -111,14 +127,20 @@ jobs:
111127 submodules : true
112128
113129 - name : Configure
114- run : cmake -DPCRE2_SUPPORT_JIT=ON -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=ON -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -B build -A ${{ matrix.arch }}
130+ run : cmake -DPCRE2_SUPPORT_JIT=ON -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=ON -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON - DCMAKE_COMPILE_WARNING_AS_ERROR=ON -B build -A ${{ matrix.arch }}
115131
116132 - name : Build
117133 run : cmake --build build --config Release
118134
119135 - name : Test
120136 run : cd build && ctest -C Release -j3 --output-on-failure
121137
138+ - name : Install
139+ run : |
140+ cd build
141+ cmake --install . --config Release --prefix install-dir
142+ ../maint/RunManifestTest.ps1 install-dir ../maint/manifest-cmakeinstall-windows
143+
122144 freebsd :
123145 name : FreeBSD
124146 runs-on : ubuntu-latest
@@ -142,6 +164,9 @@ jobs:
142164 make -j3 CPPFLAGS='-Wall -Wextra -Werror'
143165 make check
144166
167+ make install "DESTDIR=`pwd`/install-dir"
168+ maint/RunManifestTest install-dir maint/manifest-makeinstall-freebsd
169+
145170 solaris :
146171 name : Solaris
147172 runs-on : ubuntu-latest
@@ -192,6 +217,64 @@ jobs:
192217 make CPPFLAGS='-Wall -Wextra -Werror'
193218 make check
194219
220+ make install "DESTDIR=`pwd`/install-dir"
221+ maint/RunManifestTest install-dir maint/manifest-makeinstall-linux
222+
223+ distcheck :
224+ name : Build & verify distribution
225+ runs-on : ubuntu-24.04 # TODO: Update to ubuntu-latest when that switches to 24.04
226+ permissions :
227+ id-token : write # Needed to make calls to the Sigstore service
228+ attestations : write # Needed to write the attestation to GitHub's database
229+ contents : read
230+ steps :
231+ - name : Checkout
232+ uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
233+ with :
234+ submodules : true
235+
236+ - name : Prepare
237+ run : |
238+ ./autogen.sh
239+
240+ # Workaround for incorrect filesystem permissions on /usr/share/aclocal, which
241+ # causes the m4 macros to be copied with incorrect permissions.
242+ chmod u=rw,go=r m4/*.m4
243+
244+ - name : Configure
245+ run : ./configure
246+
247+ - name : Distcheck
248+ run : make distcheck -j3
249+
250+ - name : Manifest
251+ run : |
252+ mkdir tarball-dir
253+ tar -C tarball-dir -xzf pcre2-*.tar.gz
254+ # Budge the directory, so we don't back the version number into the
255+ # `manifest-tarball` file:
256+ mv tarball-dir/pcre2-* tarball-dir/pcre2-SNAPSHOT
257+ maint/RunManifestTest tarball-dir maint/manifest-tarball
258+
259+ - name : Upload to GitHub artifacts
260+ uses : actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
261+ with :
262+ name : " Distribution release"
263+ path : |
264+ pcre2-*.tar.bz2
265+ pcre2-*.tar.gz
266+ pcre2-*.zip
267+ if-no-files-found : error
268+
269+ - name : Attest
270+ uses : actions/attest-build-provenance@7668571508540a607bdfd90a87a560489fe372eb # v2.1.0
271+ if : |
272+ github.event_name != 'pull_request' &&
273+ (startsWith(github.ref, 'refs/heads/release/') ||
274+ startsWith(github.ref, 'refs/tags/pcre2-'))
275+ with :
276+ subject-path : ' pcre2-*.tar.bz2, pcre2-*.tar.gz, pcre2-*.zip'
277+
195278 coverage :
196279 name : Code coverage
197280 runs-on : ubuntu-latest
0 commit comments