From 84f2932b1e6e08e59d741162c56194f31554d9bc Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Mon, 7 Jul 2025 13:26:11 +0200 Subject: [PATCH] .github, internal/flags: improve actions test runs (#32150) This change enables more tests to run on GitHub actions. First, it removes the `-short` flag passed to `go test`, unskipping some longer running tests. We also enable the full consensus tests to run by enabling submodules during git clone. The EF now operates org wide runners with the `self-hosted-ghr` label. These are auto-scaling runners which should ideally allow us to process any amount of testing load we throw at them. The new runners have `HOME` configured differently from the actual user home directory, so our internal test for resolving `~` had to be adapted to work in this scenario. --- .github/workflows/go.yml | 36 +++++++++++++++++++++++------------- internal/flags/flags_test.go | 7 +++---- 2 files changed, 26 insertions(+), 17 deletions(-) diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 78410aab10..13f97898bb 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -1,18 +1,20 @@ -name: i386 linux tests - on: push: - branches: [ master ] + branches: + - master pull_request: - branches: [ master ] + branches: + - master workflow_dispatch: jobs: lint: name: Lint - runs-on: self-hosted + runs-on: self-hosted-ghr steps: - uses: actions/checkout@v4 + with: + submodules: false # Cache build tools to avoid downloading them each time - uses: actions/cache@v4 @@ -23,7 +25,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: 1.23.0 + go-version: 1.24 cache: false - name: Run linters @@ -32,17 +34,25 @@ jobs: go run build/ci.go check_generate go run build/ci.go check_baddeps - build: - runs-on: self-hosted + test: + name: Test + needs: lint + runs-on: self-hosted-ghr + strategy: + matrix: + go: + - '1.24' + - '1.23' steps: - uses: actions/checkout@v4 + with: + submodules: true + - name: Set up Go uses: actions/setup-go@v5 with: - go-version: 1.24.0 + go-version: ${{ matrix.go }} cache: false + - name: Run tests - run: go test -short ./... - env: - GOOS: linux - GOARCH: 386 + run: go test ./... diff --git a/internal/flags/flags_test.go b/internal/flags/flags_test.go index 82e23fb4d2..9832f67d09 100644 --- a/internal/flags/flags_test.go +++ b/internal/flags/flags_test.go @@ -17,19 +17,18 @@ package flags import ( - "os/user" "runtime" "testing" ) func TestPathExpansion(t *testing.T) { - user, _ := user.Current() + home := HomeDir() var tests map[string]string if runtime.GOOS == "windows" { tests = map[string]string{ `/home/someuser/tmp`: `\home\someuser\tmp`, - `~/tmp`: user.HomeDir + `\tmp`, + `~/tmp`: home + `\tmp`, `~thisOtherUser/b/`: `~thisOtherUser\b`, `$DDDXXX/a/b`: `\tmp\a\b`, `/a/b/`: `\a\b`, @@ -40,7 +39,7 @@ func TestPathExpansion(t *testing.T) { } else { tests = map[string]string{ `/home/someuser/tmp`: `/home/someuser/tmp`, - `~/tmp`: user.HomeDir + `/tmp`, + `~/tmp`: home + `/tmp`, `~thisOtherUser/b/`: `~thisOtherUser/b`, `$DDDXXX/a/b`: `/tmp/a/b`, `/a/b/`: `/a/b`,