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..e0054cfb 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -44,14 +44,11 @@ jobs: 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 + mkdir -p $WORKBASE + ln -sfn $GITHUB_WORKSPACE/framework $WORKBASE/framework # check work folder - ls -lrt $WORKBASE/ ls -alrt $WORK # for code format @@ -64,7 +61,9 @@ jobs: shell: bash run: | export WORKBASE=$HOME/go/src/infini.sh - export WORK=$WORKBASE/$PNAME + export WORK=$GITHUB_WORKSPACE/$PNAME + mkdir -p $WORKBASE + ln -sfn $GITHUB_WORKSPACE/framework $WORKBASE/framework # for foramt check cd $WORK @@ -80,7 +79,9 @@ jobs: if: steps.check-changes.outputs.changes == 'true' run: | export WORKBASE=$HOME/go/src/infini.sh - export WORK=$WORKBASE/$PNAME + export WORK=$GITHUB_WORKSPACE/$PNAME + mkdir -p $WORKBASE + ln -sfn $GITHUB_WORKSPACE/framework $WORKBASE/framework # for foramt check cd $WORK && echo @@ -123,14 +124,11 @@ jobs: 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 + mkdir -p $WORKBASE + ln -sfn $GITHUB_WORKSPACE/framework $WORKBASE/framework # check work folder - ls -lrt $WORKBASE/ ls -alrt $WORK # for unit test @@ -171,14 +169,11 @@ jobs: 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 + mkdir -p $WORKBASE + ln -sfn $GITHUB_WORKSPACE/framework $WORKBASE/framework # 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")