Skip to content

Add GitHub workflows for extra coverage #4

Add GitHub workflows for extra coverage

Add GitHub workflows for extra coverage #4

name: CI - Fedora Rawhide / Alpine Edge / GCC / Clang
on:
push:
branches: master
paths:
- configure
- 'auto/**'
- 'src/**'
- 'test/**'
- '.github/workflows/ci-dev-distro-compiler.yaml'
pull_request:
branches: master
paths:
- configure
- 'auto/**'
- 'src/**'
- 'test/**'
- '.github/workflows/ci-dev-distro-compiler.yaml'
jobs:
fedora-rawhide:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
compiler: [ 'gcc', 'clang' ]
container:
image: fedora:rawhide
steps:
- name: Install tools/deps
run: |
dnf -y update
dnf -y install which wget git gcc make pcre2-devel openssl-devel \
python-unversioned-command python3 python3-devel \
php-devel php-embedded perl-devel perl-ExtUtils-Embed \
ruby-devel java-devel nodejs-devel nodejs-npm golang \
openssl python3-pytest
if [ "${{ matrix.compiler }}" = "clang" ]; then
dnf -y install clang
fi
npm install -g node-gyp
- uses: actions/checkout@v4
- name: configure unit CC=${{ matrix.compiler }}
run: |
if [ "${{ matrix.compiler }}" = "clang" ]; then
./configure --openssl --cc=clang
else
./configure --openssl
fi
- name: make unit
run: make -j 4
- name: configure unit-php
run: ./configure php
- name: make unit-php
run: make -j 4 php
- name: configure unit-python
run: ./configure python
- name: make unit-python
run: make -j 4 python
- name: configure unit-perl
run: ./configure perl
if: matrix.compiler == 'gcc'
- name: make unit-perl
run: make -j 4 perl
if: matrix.compiler == 'gcc'
- name: configure unit-ruby
run: ./configure ruby
- name: make unit-ruby
run: make -j 4 ruby
- name: configure unit-java
run: ./configure java
- name: make unit-java
run: make -j 4 java
- name: configure unit-nodejs
run: ./configure nodejs
- name: make unit-nodejs
run: make node-local-install DESTDIR=node
- name: configure unit-go
run: ./configure go --go-path=
- name: make unit-go
run: make go-install
- name: Install wasmtime
run: |
wget -O- https://github.com/bytecodealliance/wasmtime/releases/download/v19.0.2/wasmtime-v19.0.2-x86_64-linux-c-api.tar.xz | tar -xJf -
- name: configure unit-wasm
run: ./configure wasm --include-path=wasmtime-v19.0.2-x86_64-linux-c-api/include --lib-path=wasmtime-v19.0.2-x86_64-linux-c-api/lib --rpath
- name: make unit-wasm
run: make wasm
- name: Pytests
run: |
chmod -R +x `pwd`
pytest
if: matrix.compiler == 'gcc'
alpine-edge:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
compiler: [ 'gcc', 'clang' ]
container:
image: alpine:edge
steps:
- name: Install tools/deps
run: |
apk update && apk upgrade
apk add gcc make musl-dev openssl-dev pcre2-dev curl \
php83-dev php83-embed python3-dev perl-dev ruby-dev openjdk21-jdk
if [ "${{ matrix.compiler }}" = "clang" ]; then
apk add clang
fi
- uses: actions/checkout@v4
- name: configure unit CC=${{ matrix.compiler }}
run: |
if [ "${{ matrix.compiler }}" = "clang" ]; then
./configure --openssl --cc=clang
else
./configure --openssl
fi
- name: make unit
run: make -j 4
- name: configure unit-php
run: ln -s /usr/lib/libphp83.so /usr/lib/libphp.so && ./configure php
- name: make unit-php
run: make -j 4
- name: configure unit-python
run: ./configure python
- name: make unit-python
run: make -j 4
- name: configure unit-perl
run: ./configure perl
- name: make unit-perl
run: |
if [ "${{ matrix.compiler }}" = "clang" ]; then
make -j 4 perl EXTRA_CFLAGS=-Qunused-arguments
else
make -j 4 perl
fi
- name: configure unit-ruby
run: ./configure ruby
- name: make unit-ruby
run: make -j 4 ruby
- name: configure unit-java
run: ./configure java
- name: make unit-java
run: make -j 4 java