MEDIUM: improved performance for startup and servers management #731
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: [push, pull_request] | |
jobs: | |
check: | |
if: ${{ github.event_name == 'pull_request' }} | |
name: HAProxy check commit message | |
runs-on: ubuntu-latest | |
steps: | |
- name: commit-policy | |
uses: docker://ghcr.io/haproxytech/commit-check:5.0.4 | |
env: | |
API_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
generate: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set the expected Go version | |
run: | | |
GOMOD_VERSION=$(cat go.mod | grep -i "^go " | sed -e "s/go //g") | |
echo "GOMOD_VERSION=${GOMOD_VERSION}" >> $GITHUB_ENV | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: "go.mod" | |
check-latest: true | |
- name: generating documentation | |
run: cd documentation/gen && go run . | |
- name: changes | |
run: test -z "$(git diff 2> /dev/null)" || exit "Documentation is not generated, issue \`cd documentation/gen && go run .\` and commit the result" | |
- name: untracked files | |
run: test -z "$(git ls-files --others --exclude-standard 2> /dev/null)" || exit "Documentation created untracked files, cannot proceed" | |
tidy: | |
name: go mod tidy | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: "go.mod" | |
check-latest: true | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: tidy | |
run: go mod tidy | |
- name: changes | |
run: test -z "$(git diff 2> /dev/null)" || exit "Go modules not tidied, issue \`go mod tidy\` and commit the result" | |
gofumpt: | |
name: gofumpt | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: "go.mod" | |
check-latest: true | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: tidy | |
run: make gofumpt | |
- name: changes | |
run: test -z "$(git diff 2> /dev/null)" || exit "Go code not formatted, issue \`make gofumpt\` and commit the result" | |
lint: | |
name: golangci-lint | |
needs: ["generate", "tidy"] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: "go.mod" | |
check-latest: true | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Lint | |
run: | | |
make lint | |
build: | |
name: build | |
runs-on: ubuntu-latest | |
needs: ["lint"] | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: "go.mod" | |
check-latest: true | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Get dependencies | |
run: | | |
go get -v -t -d ./... | |
- name: Build | |
run: | | |
go build -v . | |
e2e: | |
strategy: | |
matrix: | |
k8s-version: ["v1.31.0"] | |
needs: ["build"] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: "go.mod" | |
check-latest: true | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/go-build | |
~/go/pkg/mod | |
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- uses: engineerd/[email protected] | |
with: | |
name: dev | |
config: deploy/tests/kind-config.yaml | |
image: kindest/node:${{ matrix.k8s-version }} | |
version: v0.24.0 | |
- name: Setup | |
run: CI_ENV=github deploy/tests/create.sh | |
- name: Run parallel e2e tests | |
run: go test ./... -v --tags=e2e_parallel --tags=e2e_https | |
- name: Run sequential e2e tests | |
run: go test ./... -v -p 1 --tags=e2e_sequential |