diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml new file mode 100644 index 000000000..7eb009059 --- /dev/null +++ b/.github/workflows/test-build.yml @@ -0,0 +1,54 @@ +name: CI +on: + push: + branches: + - main + pull_request: + +concurrency: + # Cancel any running workflow for the same branch when new commits are pushed. + # We group both by ref_name (available when CI is triggered by a push to a branch/tag) + # and head_ref (available when CI is triggered by a PR). + group: "${{ github.ref_name }}-${{ github.head_ref }}" + cancel-in-progress: true + +jobs: + check: + name: Check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.21.x' + - name: Go mod check + run: make mod-check + - name: Lint + run: make lint + - name: Test benchmarks + run: make test-benchmarks + - name: Check protos + run: | + apt-get update && apt-get -y install unzip + go mod vendor + make check-protos + + test: + name: Test on Go ${{ matrix.go-version }} + runs-on: ubuntu-latest + strategy: + matrix: + # We want to make sure dskit can support multiple golang versions + # by ensuring the test would pass using all these supported versions. + go-version: ['1.20.x', '1.21.x'] + steps: + - uses: actions/checkout@v4 + - name: Set up Go ${{ matrix.go-version }} + uses: actions/setup-go@v5 + with: + go-version: ${{ matrix.go-version }} + - name: Display Go version + run: go version + - name: Test + run: make test diff --git a/server/server_test.go b/server/server_test.go index b15f4da26..0efebcd08 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -949,6 +949,8 @@ func TestGrpcOverProxyProtocol(t *testing.T) { var cfg Config cfg.RegisterFlags(flag.NewFlagSet("", flag.ExitOnError)) cfg.ProxyProtocolEnabled = true + // Set this to 0 to have it choose a random port + cfg.HTTPListenPort = 0 fakeSourceIP := "1.2.3.4"