| name: fuzzing |
| |
| on: |
| push: |
| branches: [master, 'release/**'] |
| paths-ignore: |
| - 'docs/**' |
| - '**/*.md' |
| pull_request: |
| branches: [master, 'release/**'] |
| paths-ignore: |
| - 'docs/**' |
| - '**/*.md' |
| |
| concurrency: |
| group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.run_number || github.ref }} |
| cancel-in-progress: true |
| |
| jobs: |
| test_apisix: |
| name: run fuzzing |
| runs-on: ubuntu-latest |
| timeout-minutes: 30 |
| |
| steps: |
| - name: Check out code |
| uses: actions/checkout@v2.4.0 |
| with: |
| submodules: recursive |
| |
| - name: Cache deps |
| uses: actions/cache@v2.1.7 |
| env: |
| cache-name: cache-deps |
| with: |
| path: deps |
| key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('rockspec/apisix-master-0.rockspec') }} |
| |
| - name: Linux launch common services |
| run: | |
| project_compose_ci=ci/pod/docker-compose.common.yml make ci-env-up |
| |
| - name: run apisix |
| run: | |
| wget -qO - https://openresty.org/package/pubkey.gpg | sudo apt-key add - |
| sudo apt-get update |
| sudo apt-get -y install software-properties-common |
| sudo add-apt-repository -y "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" |
| sudo apt-get update |
| sudo apt-get install -y git openresty curl openresty-openssl111-dev unzip make gcc libldap2-dev |
| ./utils/linux-install-luarocks.sh |
| |
| make deps |
| make init |
| make run |
| |
| - name: run upstream |
| run: | |
| sudo openresty -c $PWD/t/fuzzing/upstream/nginx.conf |
| |
| - name: install boofuzz |
| run: | |
| pip install -r $PWD/t/fuzzing/requirements.txt |
| |
| - name: run simpleroute test |
| run: | |
| python $PWD/t/fuzzing/simpleroute_test.py |
| |
| - name: run serverless route test |
| run: | |
| python $PWD/t/fuzzing/serverless_route_test.py |
| |
| - name: run vars route test |
| run: | |
| python $PWD/t/fuzzing/vars_route_test.py |
| |
| - name: run check leak test |
| run: | |
| python $PWD/t/fuzzing/client_abort.py |
| python $PWD/t/fuzzing/simple_http.py |