From 3e416ed3cf1990bd20dc94457ba5798b5c396b78 Mon Sep 17 00:00:00 2001 From: hardy Date: Wed, 27 May 2026 10:20:12 +0800 Subject: [PATCH 1/2] Fix gateway module CI builds Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/commit-message-check.yml | 1 + .github/workflows/pr-check.yml | 30 ++++---------------- docs/content.en/docs/release-notes/_index.md | 1 + docs/content.zh/docs/release-notes/_index.md | 1 + service/floating_ip/arp_supported.go | 13 +++++++++ service/floating_ip/arp_unsupported.go | 13 +++++++++ service/floating_ip/floating_ip.go | 3 +- 7 files changed, 35 insertions(+), 27 deletions(-) create mode 100644 service/floating_ip/arp_supported.go create mode 100644 service/floating_ip/arp_unsupported.go diff --git a/.github/workflows/commit-message-check.yml b/.github/workflows/commit-message-check.yml index 45af0b0f..331ae5ce 100644 --- a/.github/workflows/commit-message-check.yml +++ b/.github/workflows/commit-message-check.yml @@ -1,6 +1,7 @@ name: 'commit-message-check' on: pull_request: + types: [opened, synchronize, reopened, edited] jobs: check-commit-message: diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 28b686c9..39afc42b 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -43,15 +43,9 @@ jobs: shell: bash run: | echo Home path is $HOME - export WORKBASE=$HOME/go/src/infini.sh - export WORK=$WORKBASE/$PNAME - - # for format workspace - mkdir -p $HOME/go/src/ - ln -s $GITHUB_WORKSPACE $WORKBASE + export WORK=$GITHUB_WORKSPACE/$PNAME # check work folder - ls -lrt $WORKBASE/ ls -alrt $WORK # for code format @@ -63,8 +57,7 @@ jobs: id: check-changes shell: bash run: | - export WORKBASE=$HOME/go/src/infini.sh - export WORK=$WORKBASE/$PNAME + export WORK=$GITHUB_WORKSPACE/$PNAME # for foramt check cd $WORK @@ -79,8 +72,7 @@ jobs: - name: Fail workflow if changes after format if: steps.check-changes.outputs.changes == 'true' run: | - export WORKBASE=$HOME/go/src/infini.sh - export WORK=$WORKBASE/$PNAME + export WORK=$GITHUB_WORKSPACE/$PNAME # for foramt check cd $WORK && echo @@ -122,15 +114,9 @@ jobs: GOFLAGS: -tags=ci run: | echo Home path is $HOME - export WORKBASE=$HOME/go/src/infini.sh - export WORK=$WORKBASE/$PNAME - - # for test workspace - mkdir -p $HOME/go/src/ - ln -s $GITHUB_WORKSPACE $WORKBASE + export WORK=$GITHUB_WORKSPACE/$PNAME # check work folder - ls -lrt $WORKBASE/ ls -alrt $WORK # for unit test @@ -170,15 +156,9 @@ jobs: GOFLAGS: -tags=ci run: | echo Home path is $HOME - export WORKBASE=$HOME/go/src/infini.sh - export WORK=$WORKBASE/$PNAME - - # for lint workspace - mkdir -p $HOME/go/src/ - ln -s $GITHUB_WORKSPACE $WORKBASE + export WORK=$GITHUB_WORKSPACE/$PNAME # check work folder - ls -lrt $WORKBASE/ ls -alrt $WORK # for code lint diff --git a/docs/content.en/docs/release-notes/_index.md b/docs/content.en/docs/release-notes/_index.md index 3d3dd749..56d7a854 100644 --- a/docs/content.en/docs/release-notes/_index.md +++ b/docs/content.en/docs/release-notes/_index.md @@ -12,6 +12,7 @@ Information about release notes of INFINI Gateway is provided here. ### 🚀 Features ### 🐛 Bug fix - Fix entry startup cleanup so failed reloads do not leave the listener port occupied. +- Fix PR checks to build Gateway in Go module mode without the legacy GOPATH vendor workspace dependency, and keep cross-platform builds working when `floating_ip` is enabled. ### ✈️ Improvements - Pre-initialize `es_scroll` output queues, reduce noisy routing logs, and unify duration/QPS logging for scroll and bulk processing paths. diff --git a/docs/content.zh/docs/release-notes/_index.md b/docs/content.zh/docs/release-notes/_index.md index 85badebb..9b52fe10 100644 --- a/docs/content.zh/docs/release-notes/_index.md +++ b/docs/content.zh/docs/release-notes/_index.md @@ -12,6 +12,7 @@ title: "版本历史" ### 🚀 Features ### 🐛 Bug fix - 修复入口启动失败时监听端口未释放的问题,避免 reload 失败后端口仍被占用。 +- 修复 PR 检查在 Go Modules 模式下对旧 GOPATH vendor 工作区的依赖,并保持启用 `floating_ip` 时跨平台构建可用。 ### ✈️ Improvements - 预初始化 `es_scroll` 输出队列,减少 `_routing` 相关噪音日志,并统一 scroll 与 bulk 处理路径的耗时/QPS 日志格式。 diff --git a/service/floating_ip/arp_supported.go b/service/floating_ip/arp_supported.go new file mode 100644 index 00000000..2a07ca92 --- /dev/null +++ b/service/floating_ip/arp_supported.go @@ -0,0 +1,13 @@ +//go:build linux || darwin || freebsd || openbsd + +package floating_ip + +import ( + "net" + + "github.com/j-keck/arping" +) + +func announceFloatingIP(ip net.IP, iface string) error { + return arping.GratuitousArpOverIfaceByName(ip, iface) +} diff --git a/service/floating_ip/arp_unsupported.go b/service/floating_ip/arp_unsupported.go new file mode 100644 index 00000000..bced87ae --- /dev/null +++ b/service/floating_ip/arp_unsupported.go @@ -0,0 +1,13 @@ +//go:build !(linux || darwin || freebsd || openbsd) + +package floating_ip + +import ( + "fmt" + "net" + "runtime" +) + +func announceFloatingIP(_ net.IP, _ string) error { + return fmt.Errorf("gratuitous arp announcement is not supported on %s", runtime.GOOS) +} diff --git a/service/floating_ip/floating_ip.go b/service/floating_ip/floating_ip.go index 9bb8f5e4..f709f354 100644 --- a/service/floating_ip/floating_ip.go +++ b/service/floating_ip/floating_ip.go @@ -38,7 +38,6 @@ import ( "time" log "github.com/cihub/seelog" - "github.com/j-keck/arping" "infini.sh/framework/core/config" "infini.sh/framework/core/env" "infini.sh/framework/core/errors" @@ -214,7 +213,7 @@ func (module FloatingIPPlugin) SwitchToActiveMode() { log.Trace("announce floating_ip, do arping every 10s") ip := net1.ParseIP(floatingIPConfig.IP) - err := arping.GratuitousArpOverIfaceByName(ip, floatingIPConfig.Interface) + err := announceFloatingIP(ip, floatingIPConfig.Interface) if err != nil { if util.ContainStr(err.Error(), "unable to open") { panic("please make sure running as root user, or sudo") From cee1d834581f8ce04c418188516810af3acf09c8 Mon Sep 17 00:00:00 2001 From: hardy Date: Wed, 27 May 2026 10:31:33 +0800 Subject: [PATCH 2/2] Fix framework path in gateway PR checks Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/pr-check.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 39afc42b..e0054cfb 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -43,7 +43,10 @@ jobs: shell: bash run: | echo Home path is $HOME + export WORKBASE=$HOME/go/src/infini.sh export WORK=$GITHUB_WORKSPACE/$PNAME + mkdir -p $WORKBASE + ln -sfn $GITHUB_WORKSPACE/framework $WORKBASE/framework # check work folder ls -alrt $WORK @@ -57,7 +60,10 @@ jobs: id: check-changes shell: bash run: | + export WORKBASE=$HOME/go/src/infini.sh export WORK=$GITHUB_WORKSPACE/$PNAME + mkdir -p $WORKBASE + ln -sfn $GITHUB_WORKSPACE/framework $WORKBASE/framework # for foramt check cd $WORK @@ -72,7 +78,10 @@ jobs: - name: Fail workflow if changes after format if: steps.check-changes.outputs.changes == 'true' run: | + export WORKBASE=$HOME/go/src/infini.sh export WORK=$GITHUB_WORKSPACE/$PNAME + mkdir -p $WORKBASE + ln -sfn $GITHUB_WORKSPACE/framework $WORKBASE/framework # for foramt check cd $WORK && echo @@ -114,7 +123,10 @@ jobs: GOFLAGS: -tags=ci run: | echo Home path is $HOME + export WORKBASE=$HOME/go/src/infini.sh export WORK=$GITHUB_WORKSPACE/$PNAME + mkdir -p $WORKBASE + ln -sfn $GITHUB_WORKSPACE/framework $WORKBASE/framework # check work folder ls -alrt $WORK @@ -156,7 +168,10 @@ jobs: GOFLAGS: -tags=ci run: | echo Home path is $HOME + export WORKBASE=$HOME/go/src/infini.sh export WORK=$GITHUB_WORKSPACE/$PNAME + mkdir -p $WORKBASE + ln -sfn $GITHUB_WORKSPACE/framework $WORKBASE/framework # check work folder ls -alrt $WORK