-
Notifications
You must be signed in to change notification settings - Fork 82
144 lines (140 loc) · 4.58 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
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;