Skip to content

Commit

Permalink
Add CI test
Browse files Browse the repository at this point in the history
Signed-off-by: Zhichuan Liang <[email protected]>
  • Loading branch information
jschwinger233 committed Dec 19, 2023
1 parent 89628f1 commit 19e702d
Showing 1 changed file with 141 additions and 0 deletions.
141 changes: 141 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
name: Build and Test

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:

build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11

- name: Set up Go
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe
with:
go-version: 1.21.0

- name: Generate and build
run: |
git submodule update --init
make GOFLAGS="-buildvcs=false" CC=clang
- name: Store executable
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32
with:
name: dae
path: dae

test:
runs-on: ubuntu-22.04
name: Test
needs: build
strategy:
fail-fast: false
matrix:
kernel: [ '5.10-v0.3', '5.15-v0.3', '6.3-main', 'bpf-next-20231030.012704' ]
timeout-minutes: 10
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11

- name: Retrieve stored skbdump executable
uses: actions/download-artifact@v3
with:
name: dae
path: dae

- name: Provision LVH VMs
uses: cilium/little-vm-helper@908ab1ff8a596a03cd5221a1f8602dc44c3f906d # v0.0.12
with:
test-name: dae-test
image-version: ${{ matrix.kernel }}
host-mount: ./
dns-resolver: '1.1.1.1'
install-dependencies: 'true'
cmd: |
chmod +x /host/dae/dae
- name: Setup
uses: cilium/little-vm-helper@908ab1ff8a596a03cd5221a1f8602dc44c3f906d # v0.0.12
with:
provision: 'false'
cmd: |
set -ex
docker network create dae
docker run -td --name socks5 --privileged --network dae ubuntu:22.04 bash
docker run -td --name dae --privileged --network dae ubuntu:22.04 bash
- name: Setup socks5 server
uses: cilium/little-vm-helper@908ab1ff8a596a03cd5221a1f8602dc44c3f906d # v0.0.12
with:
provision: 'false'
cmd: |
set -ex
cat > ./danted.conf <<!
logoutput: /var/log/danted.log
internal: 0.0.0.0 port = 1080
external: eth0
method: username none
user.privileged: root
user.notprivileged: nobody
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect disconnect error
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect disconnect error
}
!
docker cp ./danted.conf socks5:/etc/danted.conf
docker exec socks5 apt update
docker exec socks5 apt install -y dante-server
docker exec socks5 danted -D
- name: Setup dae server
uses: cilium/little-vm-helper@908ab1ff8a596a03cd5221a1f8602dc44c3f906d # v0.0.12
with:
provision: 'false'
cmd: |
set -ex
cat > /host/dae/conf.dae <<!
global {
tproxy_port: 12345
log_level: trace
lan_interface: auto
wan_interface: auto
allow_insecure: false
}
node {
local: 'socks://socks5:1080'
}
group {
proxy {
policy: min_moving_avg
}
}
routing {
dip(1.1.1.1) -> proxy
fallback: direct
}
!
chmod 600 /host/dae/conf.dae
docker exec dae mount -t debugfs none /sys/kernel/debug/
docker exec dae mount bpffs -t bpf /sys/fs/bpf
docker exec dae /host/dae/dae run -c /host/dae/conf.dae &> dae.log &
docker exec dae apt update
docker exec dae apt install -y curl
docker exec -it dae curl 1.1.1.1

0 comments on commit 19e702d

Please sign in to comment.