From ab41af527fd542eced4c6618122748935d03bdcc Mon Sep 17 00:00:00 2001 From: Jon Kartago Lamida Date: Wed, 15 May 2024 10:13:50 +0800 Subject: [PATCH] Create CI/CD test and build in the Github action (#523) * Create test build in github action Signed-off-by: Jon Kartago Lamida * Fix job invalid job name Signed-off-by: Jon Kartago Lamida * Use listen port 8080 due to issue in github action Signed-off-by: Jon Kartago Lamida * Run github action only on push to main Signed-off-by: Jon Kartago Lamida * Update check-protos step Signed-off-by: Jon Kartago Lamida * Use go-version matrix Signed-off-by: Jon Kartago Lamida * Fix yaml Signed-off-by: Jon Kartago Lamida * Revert accidentally unintended commits Signed-off-by: Jon Kartago Lamida * Apply PR feedbacks Signed-off-by: Jon Kartago Lamida * Capitalise workflow name Signed-off-by: Jon Kartago Lamida * Can't use template in the job name Signed-off-by: Jon Kartago Lamida * Revert to original job id Signed-off-by: Jon Kartago Lamida * Use better job name description Signed-off-by: Jon Kartago Lamida * Fix step name Signed-off-by: Jon Kartago Lamida * Remove redundant step name Signed-off-by: Jon Kartago Lamida * Simplify the step name again Signed-off-by: Jon Kartago Lamida * Update server/server_test.go Co-authored-by: Charles Korn * Use separate job for go test 1.20.x Signed-off-by: Jon Kartago Lamida * Separate job for test and the rest Signed-off-by: Jon Kartago Lamida * Update .github/workflows/test-build.yml Co-authored-by: Charles Korn * Apply more PR feedbacks Signed-off-by: Jon Kartago Lamida --------- Signed-off-by: Jon Kartago Lamida Co-authored-by: Charles Korn --- .github/workflows/test-build.yml | 54 ++++++++++++++++++++++++++++++++ server/server_test.go | 2 ++ 2 files changed, 56 insertions(+) create mode 100644 .github/workflows/test-build.yml 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"