diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..e4bbfdb --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,26 @@ +name: Continuous Integration + +on: + pull_request: + push: + branches: + - main + +jobs: + GO: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: '1.21' + - run: sudo apt install -y libsystemd-dev + - name: gofmt -l . + run: files=$(gofmt -l .); if [[ -n "$files" ]]; then echo "$files"; exit 1; fi + - name: goimports -l . + run: | + go install golang.org/x/tools/cmd/goimports@latest + files=$(goimports -l .); if [[ -n "$files" ]]; then echo "$files"; exit 1; fi + - run: go vet ./... + - run: go test ./... + - run: go build -mod=readonly . diff --git a/Dockerfile b/Dockerfile index ba612a6..7acdfba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,6 @@ COPY go.mod . COPY go.sum . RUN go mod download COPY . . -RUN CGO_ENABLED=1 go test ./... ARG VERSION=unknown RUN CGO_ENABLED=1 go build -mod=readonly -ldflags "-X main.version=$VERSION" -o coroot-node-agent . diff --git a/ebpftracer/l7/l7_test.go b/ebpftracer/l7/l7_test.go index 15c3e0b..6c1f60a 100644 --- a/ebpftracer/l7/l7_test.go +++ b/ebpftracer/l7/l7_test.go @@ -67,6 +67,7 @@ func TestParseMongo(t *testing.T) { buf := bytes.NewBuffer(nil) v := bson.M{"a": "bssssssssssssssssssssssssssssssssssssssssss"} data, err := bson.Marshal(v) + assert.NoError(t, err) h := mongoHeader{ MessageLength: 16 + 4 + 1 + int32(len(data)), diff --git a/proc/net.go b/proc/net.go index 641ba90..c367cfd 100644 --- a/proc/net.go +++ b/proc/net.go @@ -64,7 +64,7 @@ func readSockets(src string) ([]Sock, error) { _, b = nextField(b) _, b = nextField(b) _, b = nextField(b) - inode, b := nextField(b) + inode, _ := nextField(b) res = append(res, Sock{SAddr: decodeAddr(local), DAddr: decodeAddr(remote), Listen: state == stateListen, Inode: string(inode)}) } return res, nil