chore: build deps using Bazel #226
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: codecov | |
on: [pull_request] | |
defaults: | |
run: | |
shell: bash | |
# cancel previous runs if new commits are pushed to the PR, but run for each commit on master | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
codecov: | |
runs-on: ubuntu-latest | |
if: ${{ github.event_name != 'schedule' }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.x' | |
architecture: 'x64' | |
- name: Install dependencies | |
run: | | |
sudo apt-get --yes update | |
# https://github.com/actions/runner-images/issues/2139 | |
sudo apt-get remove \ | |
libgd3 \ | |
nginx-core \ | |
nginx-full \ | |
nginx-light \ | |
nginx-extras | |
sudo apt-get install --yes \ | |
libsodium23 \ | |
libsodium-dev \ | |
build-essential \ | |
zlib1g-dev \ | |
libpcre3 \ | |
libpcre3-dev \ | |
libssl-dev \ | |
libxslt1-dev \ | |
libxml2-dev \ | |
libgeoip-dev \ | |
libgd-dev \ | |
libperl-dev \ | |
uthash-dev \ | |
flex \ | |
bison \ | |
autoconf \ | |
libtool | |
sudo pip install lastversion | |
- name: Download nginx | |
run: | | |
chmod 777 -R ${{ github.workspace }} | |
sudo make parser | |
sudo git clone https://github.com/libinjection/libinjection.git inc/libinjection | |
pushd inc/libinjection | |
sudo ./autogen.sh | |
sudo ./configure --prefix=$(pwd)/build --enable-shared=no --enable-static=no --enable-optimize | |
sudo make -j$(nproc) | |
sudo make install -j$(nproc) | |
popd | |
if [ '${{ matrix.nginx-version }}' = 'stable nginx' ] ; then \ | |
version='stable' ;\ | |
else \ | |
version='mainline' ;\ | |
fi | |
lastversion download nginx:${version} | |
mkdir nginx-src | |
tar zxf nginx-*.tar.gz --directory nginx-src --strip-components=1 | |
- name: Configure | |
run: | | |
cd /usr/local/src/nginx | |
./configure --add-module=${{ github.workspace }} --with-cc-opt='-fprofile-arcs -ftest-coverage -O0 -g3 -fstack-protector-strong -Wno-sign-compare' --with-http_realip_module --with-ld-opt='-lgcov' | |
- name: Install nginx | |
run: | | |
cd /usr/local/src/nginx | |
make -j$(nproc) | |
sudo make install | |
sudo useradd nginx -s /sbin/nologin -M | |
sudo chmod 777 -R /usr/local/nginx | |
sudo ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/nginx | |
- name: Install Test::Nginx | |
run: | | |
sudo cpan Test::Nginx | |
- name: Test | |
run: | | |
sudo chmod 777 -R /tmp | |
cd test/test-nginx | |
export MODULE_TEST_PATH=/tmp/module_test | |
sh ./init.sh | |
exec sudo sh start.sh t/*.t | |
- name: Generate coverage report | |
run: | | |
sudo chmod -R 777 /usr/local/src | |
cd /usr/local/src/nginx | |
gcovr -v -r ${{ github.workspace }}/src/ --xml --xml-pretty -o ./coverage.xml /usr/local/src/nginx/objs/addon/src/ | |
mkdir -p /usr/local/src/empty | |
sudo chmod -R 777 /usr/local/src | |
cp ./coverage.xml /usr/local/src/empty/coverage.xml | |
cat /usr/local/src/empty/coverage.xml | |
cp ${{ github.workspace }}/src/* /usr/local/src/empty/ | |
sudo chmod -R 777 ${{ github.workspace }} | |
sudo chmod -R 777 /usr/local/src | |
- name: Run codacy-coverage-reporter | |
uses: codacy/codacy-coverage-reporter-action@v1 | |
with: | |
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
coverage-reports: /usr/local/src/empty/coverage.xml |