Merge pull request #855 from jajik/directive-backport #899
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: | |
push: | |
branches: | |
- '*' | |
pull_request: | |
branches: | |
- '*' | |
jobs: | |
ci: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ ubuntu-latest, windows-latest, macos-latest ] | |
java: [ 1.8 ] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Set up JDK ${{ matrix.java }} | |
uses: actions/setup-java@v1 | |
with: | |
java-version: ${{ matrix.java }} | |
- name: Cache local Maven repository | |
uses: actions/cache@v2 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Build with Maven | |
run: mvn -B package -P dist | |
cmake-fedora-latest: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
compiler: [ gcc, clang ] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: mod_proxy_cluster | |
- name: Setup Podman | |
run: | | |
sudo apt update | |
sudo apt-get -y install podman | |
podman pull fedora:39 | |
- name: Create container and build | |
run: | | |
{ | |
echo 'FROM fedora:40' | |
echo 'RUN dnf install cmake httpd-devel ${{ matrix.compiler }} -y' | |
echo 'RUN dnf groupinstall "C Development Tools and Libraries" -y' | |
echo 'RUN dnf clean all' | |
echo 'COPY mod_proxy_cluster mod_proxy_cluster' | |
echo 'WORKDIR /mod_proxy_cluster/native' | |
echo 'RUN cmake . -DCMAKE_C_COMPILER=${{ matrix.compiler }}' | |
echo 'RUN make' | |
} > podmanfile | |
podman build -f ./podmanfile | |
name: cmake-fedora-latest | |
make-fedora-latest: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: mod_proxy_cluster | |
- name: Setup Podman | |
run: | | |
sudo apt update | |
sudo apt-get -y install podman | |
podman pull fedora:39 | |
- name: Create container and build | |
run: | | |
{ | |
echo 'FROM fedora:40' | |
echo 'RUN dnf install httpd-devel redhat-rpm-config -y' | |
echo 'RUN dnf groupinstall "C Development Tools and Libraries" -y' | |
echo 'RUN dnf clean all' | |
echo 'COPY mod_proxy_cluster mod_proxy_cluster' | |
echo 'WORKDIR /mod_proxy_cluster/native' | |
echo 'RUN \' | |
echo 'for module in advertise mod_cluster_slotmem mod_manager mod_proxy_cluster; do \' | |
echo ' echo Building: $module; \' | |
echo ' cd $module; \' | |
echo ' sh buildconf; \' | |
echo ' ./configure --with-apxs=$APACHE_DIR/bin/apxs; \' | |
echo ' make clean; \' | |
# Ensure the build fails in case of a failure in any of the module builds! | |
echo ' make || exit 1; \' | |
echo ' cd ..; \' | |
echo 'done;' | |
} > podmanfile | |
podman build -f ./podmanfile | |
make-with-httpd-trunk: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
path: mod_proxy_cluster | |
- name: Checkout latest httpd | |
uses: actions/checkout@v4 | |
with: | |
repository: apache/httpd | |
path: httpd | |
- name: Checkout apr for httpd | |
uses: actions/checkout@v4 | |
with: | |
repository: apache/apr | |
path: httpd/srclib/apr | |
- name: Install necessary packages | |
run: | | |
ls | |
sudo apt-get update | |
sudo apt-get install cmake gcc cmake gcc make libtool libtool-bin python3 autoconf libxml2-dev libpcre2-dev -y | |
- name: Build httpd | |
run: | | |
ls | |
export "APACHE_DIR=/usr/local/apache2/" | |
cd httpd | |
./buildconf | |
./configure --prefix=/usr/local/apache2 --with-included-apr --enable-proxy-ajp --enable-maintainer-mode \ | |
--enable-so --enable-proxy --enable-proxy-http --enable-proxy-wstunned --enable-proxy-hcheck \ | |
--with-port=8000 | |
sudo make | |
sudo make install | |
- name: Build mod_proxy_cluster | |
run: | | |
ls | |
cd mod_proxy_cluster/native | |
for module in advertise/ mod_proxy_cluster/ mod_cluster_slotmem/ mod_manager/; do \ | |
cd $module; \ | |
sh buildconf; \ | |
./configure CFLAGS="-Wall -Werror" --with-apxs=/usr/local/apache2/bin/apxs; \ | |
make clean; \ | |
make || exit 1; \ | |
cd ..; \ | |
done; | |