Skip to content

add workflow to check that binaries are reproducible #138

add workflow to check that binaries are reproducible

add workflow to check that binaries are reproducible #138

Workflow file for this run

name: Test
on:
push:
branches:
- master
pull_request:
branches:
- "*"
workflow_dispatch: {}
jobs:
race-test:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Go
uses: WillAbides/[email protected]
with:
go-version-file: go.mod
- name: Cache Go files
uses: capnspacehook/cache-go@v1
# the test is compiled and run as root so that egress eddie can
# open nfqueues, which is a privileged operation
- run: |
go test -c -race -o egress-eddie.test
sudo ./egress-eddie.test -enable-ipv6=false -test.timeout 5m -test.v
binary-test:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Go
uses: WillAbides/[email protected]
with:
go-version-file: go.mod
- name: Cache Go files
uses: capnspacehook/cache-go@v1
# run the same tests as above but use a binary to process packets
# to test with landlock and seccomp filters active
- run: |
cd cmd/egress-eddie
CGO_ENABLED=0 go build -o ../../egress-eddie
cd ../../
go test -c -o egress-eddie.test
sudo ./egress-eddie.test -binary-tests -enable-ipv6=false -test.timeout 5m -test.v
fuzz:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Go
uses: WillAbides/[email protected]
with:
go-version-file: go.mod
- name: Cache Go files
uses: capnspacehook/cache-go@v1
- run: |
go test -fuzz Fuzz -run Config -fuzztime 10m