add CRS regression tests via go-ftw and libmicrohttpd #15
This file contains hidden or 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: Test make and install | |
| on: | |
| push: | |
| pull_request: | |
| branches: [main] | |
| permissions: {} | |
| jobs: | |
| make-targets: | |
| permissions: | |
| contents: read | |
| strategy: | |
| matrix: | |
| go-version: [1.25.x, 1.26.x] | |
| os: [ubuntu-latest, macos-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Install Go | |
| uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 | |
| with: | |
| go-version: ${{ matrix.go-version }} | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| lfs: true | |
| fetch-depth: 0 #for better blame info | |
| - name: Install macOS dependencies | |
| if: runner.os == 'macOS' | |
| run: | | |
| brew install autoconf automake libtool | |
| - name: Setup | |
| run: | | |
| ./build.sh | |
| ./configure | |
| - name: Compile | |
| run: | | |
| make V=1 | |
| - name: Test | |
| run: | | |
| make check | |
| - name: Install | |
| run: | | |
| sudo make V=1 install | |
| - name: Run CRS tests with go-ftw | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get install -y libmicrohttpd-dev | |
| sudo ldconfig | |
| go install github.com/coreruleset/go-ftw/v2@latest # renovate: datasource=go depName=github.com/coreruleset/go-ftw/v2 | |
| git clone --depth 1 https://github.com/coreruleset/coreruleset.git /tmp/coreruleset | |
| gcc -o tests/coraza_httpd tests/coraza_httpd.c $(pkg-config --cflags --libs libmicrohttpd) -lcoraza -I/usr/local/include -L/usr/local/lib | |
| printf 'include tests/coraza.conf\ninclude /tmp/coreruleset/crs-setup.conf.example\ninclude /tmp/coreruleset/plugins/empty-before.conf\ninclude /tmp/coreruleset/rules/*.conf\ninclude /tmp/coreruleset/plugins/empty-after.conf\n' > tests/coraza_includes.conf | |
| LD_LIBRARY_PATH=/usr/local/lib tests/coraza_httpd tests/coraza_includes.conf 8080 & | |
| sleep 2 | |
| go-ftw run --config tests/ftw.yml --dir /tmp/coreruleset/tests/regression/tests/ --cloud --exclude "^920" |