[script + doc] Update tar.bz2 mime type #18
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
branches: | |
- master | |
push: | |
branches: | |
- ci | |
tags: | |
- lighttpd-* | |
concurrency: | |
group: ${{github.workflow}}-${{github.head_ref}} | |
cancel-in-progress: true | |
jobs: | |
Linux-ubuntu-gcc: | |
runs-on: ubuntu-latest | |
name: Linux-ubuntu-${{matrix.platform}}-gcc | |
strategy: | |
matrix: | |
platform: ['x64'] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: egor-tensin/setup-gcc@v1 | |
with: | |
platform: ${{matrix.platform}} | |
- name: Install packages | |
run: | | |
sudo apt-get install build-essential \ | |
cmake meson ninja-build pkg-config scons \ | |
autoconf automake autotools-dev libtool m4 \ | |
nettle-dev gnutls-dev \ | |
libmbedtls-dev libnss3-dev libssl-dev libwolfssl-dev \ | |
libpcre2-dev libbrotli-dev libdeflate-dev zlib1g-dev libzstd-dev \ | |
libsasl2-dev libkrb5-dev libdbi-dev libpam-dev libldap-dev \ | |
libmariadb-dev libpq-dev \ | |
libmaxminddb-dev libunwind-dev liblua5.1-0-dev liblua5.4-dev \ | |
libxml2-dev libsqlite3-dev | |
- name: Compile and Test | |
run: | | |
set -e | |
cd "${{github.workspace}}" && scripts/ci-build.sh meson | |
#cd "${{github.workspace}}" && scripts/ci-build.sh cmake | |
cd "${{github.workspace}}" && scripts/ci-build.sh cmake-asan | |
cd "${{github.workspace}}" && scripts/ci-build.sh scons | |
cd "${{github.workspace}}" && scripts/ci-build.sh autobuild | |
Linux-ubuntu-clang: | |
runs-on: ubuntu-latest | |
name: Linux-ubuntu-${{matrix.platform}}-clang | |
strategy: | |
matrix: | |
platform: ['x64'] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: egor-tensin/setup-clang@v1 | |
with: | |
platform: ${{matrix.platform}} | |
- name: Install packages | |
run: | | |
sudo apt-get install build-essential \ | |
cmake meson ninja-build pkg-config scons \ | |
autoconf automake autotools-dev libtool m4 \ | |
nettle-dev gnutls-dev \ | |
libmbedtls-dev libnss3-dev libssl-dev libwolfssl-dev \ | |
libpcre2-dev libbrotli-dev libdeflate-dev zlib1g-dev libzstd-dev \ | |
libsasl2-dev libkrb5-dev libdbi-dev libpam-dev libldap-dev \ | |
libmariadb-dev libpq-dev \ | |
libmaxminddb-dev libunwind-dev liblua5.1-0-dev liblua5.4-dev \ | |
libxml2-dev libsqlite3-dev | |
- name: Compile and Test | |
run: | | |
set -e | |
#cd "${{github.workspace}}" && scripts/ci-build.sh meson | |
cd "${{github.workspace}}" && scripts/ci-build.sh cmake | |
#cd "${{github.workspace}}" && scripts/ci-build.sh scons | |
#cd "${{github.workspace}}" && scripts/ci-build.sh autobuild | |
macOS: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install packages | |
run: | | |
brew install meson ninja pkg-config pcre2 perl \ | |
gnutls libressl mbedtls nettle nss wolfssl \ | |
cyrus-sasl krb5 libdbi openldap \ | |
mariadb-connector-c libpq \ | |
brotli libdeflate zlib zstd \ | |
libmaxminddb lua \ | |
libxml2 sqlite | |
# autoconf automake libtool m4 cmake scons | |
- name: Compile and Test | |
run: | | |
set -e | |
export NO_UNWIND=1 | |
cd "${{github.workspace}}" && scripts/ci-build.sh meson | |
DragonflyBSD: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: vmactions/dragonflybsd-vm@v1 | |
with: | |
usesh: true | |
prepare: | | |
pkg install -y bash ninja meson pkgconf pcre2 perl5 | |
run: | | |
set -e | |
meson setup "${{github.workspace}}/build" -Dwarning_level=3 | |
meson compile -C "${{github.workspace}}/build" --verbose | |
meson test -C "${{github.workspace}}/build" --verbose | |
FreeBSD: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: vmactions/freebsd-vm@v1 | |
with: | |
usesh: true | |
prepare: | | |
pkg install -y autoconf automake autotools libtool m4 pkgconf \ | |
ninja meson cmake scons-py311 pcre2 perl5 \ | |
gnutls libressl mbedtls nettle nss wolfssl \ | |
cyrus-sasl krb5 libdbi openldap26-client \ | |
mariadb1011-client postgresql16-client \ | |
brotli libdeflate zstd \ | |
libmaxminddb libunwind lua51 lua54 \ | |
libxml2 sqlite3 | |
run: | | |
set -e | |
cd "${{github.workspace}}" && scripts/ci-build.sh meson | |
cd "${{github.workspace}}" && scripts/ci-build.sh cmake | |
cd "${{github.workspace}}" && scripts/ci-build.sh scons | |
cd "${{github.workspace}}" && scripts/ci-build.sh autobuild | |
NetBSD: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: vmactions/netbsd-vm@v1 | |
with: | |
#usesh: true | |
prepare: | | |
pkg_add dash cmake ninja pkgconf pcre2 perl \ | |
gnutls libressl mbedtls nettle nss wolfssl \ | |
cyrus-sasl mit-krb5 libdbi openldap-client \ | |
mariadb-client postgresql16-client \ | |
brotli libdeflate zlib zstd \ | |
libmaxminddb libunwind lua51 lua54 \ | |
libxml2 sqlite3 | |
pkg_add dash | |
# note: repeat 'pkg_add dash' to exit 0 | |
# since NetBSD 10.0 has some issues with the packaging of the listed | |
# packages above and exits non-zero due to various packaging issues, | |
# but the result is still sufficient for lighttpd CI build tests. | |
# autoconf automake gmake libtool m4 meson py311-scons | |
run: | | |
set -e | |
export NO_UNWIND=1 | |
cd "${{github.workspace}}" && scripts/ci-build.sh cmake | |
OpenBSD: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: vmactions/openbsd-vm@v1 | |
with: | |
usesh: true | |
prepare: | | |
pkg_add ninja meson pkgconf pcre2 \ | |
gnutls mbedtls libnettle nss \ | |
cyrus-sasl-- heimdal-libs libdbi openldap-client-- \ | |
mariadb-client postgresql-client \ | |
brotli libdeflate zstd \ | |
libmaxminddb lua--%5.1 lua--%5.4 \ | |
libxml sqlite3 | |
# autoconf automake cmake gmake libtool m4 scons | |
run: | | |
set -e | |
export NO_PAM=1 NO_UNWIND=1 NO_WOLFSSL=1 | |
cd "${{github.workspace}}" && scripts/ci-build.sh meson | |
# Solaris VM test is slow compared to other VMs tests | |
# (retrieving and installing packages may be slow) | |
Solaris: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: vmactions/solaris-vm@v1 | |
with: | |
release: "11.4-gcc" | |
usesh: true | |
copyback: false | |
prepare: | | |
pkgutil -y -i cmake gmake pkgconfig perl \ | |
libpcre2_dev \ | |
libnettle_dev libgnutls_dev libnss_dev libssl_dev \ | |
libbrotli_dev libz_dev libzstd_dev \ | |
libkrb5_dev libdbi_dev openldap_dev sasl_dev \ | |
mysql56_dev postgresql_dev \ | |
lua_dev \ | |
libxml2_dev libsqlite3_dev | |
run: | | |
set -e | |
cmake -S "${{github.workspace}}" -B "build" -Wno-dev -DCMAKE_BUILD_TYPE=Release \ | |
-DBUILD_EXTRA_WARNINGS=ON \ | |
-DWITH_PCRE2=ON \ | |
-DWITH_ZLIB=ON \ | |
-DWITH_LDAP=ON \ | |
-DWITH_DBI=ON \ | |
-DWITH_PGSQL=ON \ | |
-DWITH_SASL=ON \ | |
-DWITH_GNUTLS=ON \ | |
-DWITH_NETTLE=ON \ | |
-DWITH_NSS=ON \ | |
-DWITH_OPENSSL=ON \ | |
-DWITH_WEBDAV_PROPS=ON | |
cmake --build build --config Release | |
ctest -V --test-dir build --build-config Release --no-tests=error | |
# no packages for libdeflate, maxminddb, mbedtls | |
# (modifications needed for scripts/ci-build.sh) | |
# additional work needed for build config to find lua, brotli, zstd | |
# additional work needed for build to find 64-bit mysql libs | |
# additional work needed for build to find krb5.h | |
#set -e | |
#export NO_PAM=1 NO_UNWIND=1 NO_WOLFSSL=1 | |
#export NO_LIBDEFLATE=1 NO_MAXMINDDB=1 NO_MBEDTLS=1 | |
#cd "${{github.workspace}}" && scripts/ci-build.sh cmake | |
Windows-Cygwin: | |
runs-on: windows-latest | |
env: | |
CYGWIN: winsymlinks:native | |
steps: | |
- run: git config --global core.autocrlf input | |
- uses: actions/checkout@v4 | |
- uses: cygwin/cygwin-install-action@master | |
with: | |
packages: > | |
autoconf automake libtool m4 make | |
cmake meson ninja scons | |
gcc-g++ git pkgconf perl | |
libpcre2-devel | |
libnettle-devel gnutls-devel mbedtls-devel libnss-devel libssl-devel | |
libbrotli-devel libdeflate-devel zlib-devel libzstd-devel | |
libsasl2-devel libkrb5-devel libdbi-devel openldap-devel | |
libmariadb-devel libpq-devel | |
libmaxminddb-devel libunwind-devel lua-devel lua5.1-devel | |
libxml2-devel libsqlite3-devel | |
libintl-devel | |
- name: Update | |
shell: powershell | |
run: | | |
# (https://github.com/cygwin/cygwin-install-action/blob/master/action.yml) | |
Invoke-WebRequest https://cygwin.com/setup-x86_64.exe -OutFile C:\setup.exe | |
# because setup is a Windows GUI app, make it part of a pipeline to make | |
# PowerShell wait for it to exit | |
& C:\setup.exe -qgnO -t | Out-Default | |
- name: Compile and Test | |
shell: C:\cygwin\bin\bash.exe --noprofile --norc -o igncr -eo pipefail '{0}' | |
run: | | |
set -e | |
export PATH=/usr/bin:$(cygpath ${SYSTEMROOT})/system32 | |
export NO_PAM=1 NO_UNWIND=1 NO_WOLFSSL=1 | |
export SHELL=/bin/dash | |
cd "${{github.workspace}}" && /bin/dash scripts/ci-build.sh autobuild | |
Windows-VisualStudio: | |
runs-on: windows-latest | |
name: Windows-VisualStudio-${{matrix.platform}} | |
strategy: | |
matrix: | |
platform: ['x64'] | |
#platform: ['x64', 'win32'] | |
#error: The GHA binary source requires the ACTIONS_RUNTIME_TOKEN and ACTIONS_CACHE_URL environment variables to be set. See https://learn.microsoft.com/vcpkg/users/binarycaching?WT.mc_id=vcpkg_inproduct_cli#gha for details. | |
#env: | |
# VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ilammy/msvc-dev-cmd@v1 | |
#- name: Install dependencies | |
# run: vcpkg install --triplet ${{matrix.platform}}-windows openssl pcre2 zlib | |
- name: Compile and Test | |
run: | | |
$ErrorActionPreference = 'Stop' | |
#cmake -G "Visual Studio 17 2022" -A "${{matrix.platform}}" -S "${{github.workspace}}" -B "build" -Wno-dev -DCMAKE_BUILD_TYPE=Release -DWITH_OPENSSL=ON -DWITH_PCRE2=OFF -DWITH_PCRE=OFF -DWITH_ZLIB=OFF | |
cmake -G "Visual Studio 17 2022" -A "${{matrix.platform}}" -S "${{github.workspace}}" -B "build" -Wno-dev -DCMAKE_BUILD_TYPE=Release -DWITH_PCRE2=OFF -DWITH_PCRE=OFF -DWITH_ZLIB=OFF | |
cmake --build build --config Release | |
# run the compiled unit tests src/t/test_*; | |
# (skip the Perl test framework in tests/*) | |
# (note: tests/CMakeLists.txt also skips Perl tests/* on native WIN32) | |
ctest -V --test-dir build --build-config Release --no-tests=error -R '^test_' | |
Windows-MSYS2: | |
runs-on: windows-latest | |
name: Windows-MSYS2-${{matrix.platform}} | |
strategy: | |
matrix: | |
platform: ['mingw64', 'ucrt64', 'clang64'] | |
#platform: ['mingw32', 'mingw64', 'ucrt64', 'clang32', 'clang64'] | |
steps: | |
- run: git config --global core.autocrlf input | |
- uses: actions/checkout@v4 | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{matrix.platform}} | |
update: true | |
install: git m4 | |
pacboy: >- | |
cc:p autotools:p libtool:p make:p pcre2:p pkgconf:p | |
nettle:p gnutls:p mbedtls:p nss:p openssl:p | |
brotli:p libdeflate:p zlib:p zstd:p | |
cyrus-sasl:p openldap:p | |
libmariadbclient:p postgresql:p | |
libmaxminddb:p libunwind:p lua51:p lua:p luajit:p | |
libxml2:p sqlite3:p | |
# heimdal-devel: available only on platform: msys (?) | |
- name: Compile and Test | |
shell: msys2 {0} | |
run: | | |
set -e | |
# NO_GNUTLS=1 gnutls/socket.h can not find <sys/socket.h> | |
# NO_MYSQL=1 build not finding mysql_config | |
export NO_DBI=1 NO_GNUTLS=1 NO_KRB5=1 NO_MYSQL=1 NO_PAM=1 NO_UNWIND=1 NO_WOLFSSL=1 | |
export SHELL=/bin/dash | |
cd "${{github.workspace}}" && /bin/dash scripts/ci-build.sh autobuild | |
Linux-alpine-x86_64: | |
runs-on: ubuntu-latest | |
name: Linux-alpine-${{matrix.platform}} | |
# abort if x86_64 fails (x86_64 or x86 are fastest "native" builds) | |
continue-on-error: ${{ matrix.platform != 'x86_64' }} | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: ['x86_64'] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: jirutka/setup-alpine@v1 | |
with: | |
branch: latest-stable | |
arch: ${{matrix.platform}} | |
packages: > | |
build-base cmake meson ninja pkgconf perl scons | |
autoconf automake libtool m4 | |
gnutls-dev mbedtls-dev openssl-dev nettle-dev nss-dev wolfssl-dev | |
pcre2-dev brotli-dev libdeflate-dev zlib-dev zstd-dev | |
cyrus-sasl-dev krb5-dev libdbi-dev linux-pam-dev openldap-dev | |
mariadb-connector-c-dev postgresql16-dev | |
libmaxminddb-dev libunwind-dev lua5.1-dev lua5.4-dev | |
libxml2-dev sqlite-dev | |
zlib-static openssl-libs-static | |
- name: Compile and Test | |
shell: alpine.sh {0} | |
run: | | |
set -e | |
# Alpine Linux wolfssl package built w/o features required by lighttpd | |
#('scons check_fullstatic' needs zlib-static openssl-libs-static) | |
export NO_WOLFSSL=1 | |
cd "${{github.workspace}}" && scripts/ci-build.sh meson | |
cd "${{github.workspace}}" && scripts/ci-build.sh cmake | |
cd "${{github.workspace}}" && scripts/ci-build.sh scons | |
cd "${{github.workspace}}" && scripts/ci-build.sh autobuild | |
Linux-alpine: | |
runs-on: ubuntu-latest | |
name: Linux-alpine-${{matrix.platform}} | |
# abort if x86 fails (x86_64 or x86 are fastest "native" builds) | |
continue-on-error: ${{ matrix.platform != 'x86' }} | |
strategy: | |
fail-fast: true | |
matrix: | |
platform: ['x86','armhf','armv7','aarch64','ppc64le','riscv64','s390x'] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: jirutka/setup-alpine@v1 | |
with: | |
# riscv64 currently requires 'edge' | |
branch: edge | |
arch: ${{matrix.platform}} | |
packages: > | |
build-base meson ninja perl pkgconf pcre2-dev zlib-dev | |
- name: Compile and Test | |
shell: alpine.sh {0} | |
run: | | |
set -e | |
meson setup "${{github.workspace}}/build" -Dwarning_level=3 | |
meson compile -C "${{github.workspace}}/build" --verbose | |
meson test -C "${{github.workspace}}/build" --verbose |