41 lines
1.3 KiB
YAML
41 lines
1.3 KiB
YAML
name: Run
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
jobs:
|
|
run:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
- name: Run apt update
|
|
run: sudo apt update
|
|
- name: Install LibELF
|
|
run: sudo apt install -y libelf-dev
|
|
- name: Install LibConfig
|
|
run: sudo apt install -y libconfig-dev
|
|
- name: Install LLVM
|
|
run: sudo apt install -y llvm
|
|
- name: Install LibXDP Depedencies
|
|
run: sudo apt install -y libpcap-dev m4 gcc-multilib linux-tools-$(uname -r)
|
|
- name: Build LibXDP.
|
|
run: make libxdp
|
|
- name: Install LibXDP.
|
|
run: sudo make libxdp_install
|
|
- name: Make project
|
|
run: make
|
|
- name: Install project
|
|
run: sudo make install
|
|
- name: Create basic config file.
|
|
run: echo 'verbose = 5; filters = ( { enabled = true; log = true; action = 0; tcp_enabled = true; tcp_dport = 22; } );' > ./basic.conf
|
|
- name: Retrieve default network interface.
|
|
run: echo "INTERFACE=$(ip route | awk '/default/ {print $5}')" >> $GITHUB_ENV
|
|
- name: Run XDP Firewall for 10 seconds using basic config and default network interface.
|
|
run: sudo xdpfw -c ./basic.conf -t 10 -i ${{ env.INTERFACE }}
|