Skip to content

add sum connector

add sum connector #48

name: build-and-test
on:
push:
branches:
- main
pull_request:
paths:
- '.github/workflows/build-and-test.yml'
- '.golangci.yml'
- 'cmd/**'
- 'internal/**'
- 'packaging/bundle/**'
- 'pkg/**'
- 'tests/**'
- 'Makefile'
- 'Makefile.Common'
- 'go.mod'
- 'go.sum'
- '!**.md'
- '!packaging/**'
concurrency:
group: build-and-test-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
env:
GO_VERSION: 1.22.7
jobs:
setup-environment:
name: setup-environment
runs-on: ubuntu-24.04
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Installing dependency
run: |
make install-tools
tidy:
name: tidy
runs-on: ubuntu-24.04
needs: [setup-environment]
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: tidy
run: |
make install-tools
make for-all CMD="make tidy"
if ! git diff --exit-code; then
echo "One or more Go files are not tidied. Run 'make for-all CMD=\"make tidy\"' and push the changes."
exit 1
fi
gofmt:
name: gofmt
runs-on: ubuntu-24.04
needs: [setup-environment]
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: gofmt
run: |
make install-tools
make fmt
if ! git diff --exit-code; then
echo "One or more Go files are not formatted correctly. Run 'make fmt' and push the changes."
exit 1
fi
generate-metrics:
name: generate-metrics
runs-on: ubuntu-24.04
needs: [setup-environment]
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: install-tools
run: make install-tools
- name: generate-metrics
run: |
make generate-metrics
if ! git diff --exit-code; then
echo "Generated code is out of date. Run 'make generate-metrics' and push the changes."
exit 1
fi
lint:
name: lint
runs-on: ubuntu-24.04
needs: [setup-environment]
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- run: echo "GOLANGCI_LINT_CACHE=${HOME}/.cache/golangci-lint" >> $GITHUB_ENV
- uses: actions/cache@v4
with:
path: ${{ env.GOLANGCI_LINT_CACHE }}
key: golangci-lint-${{ hashFiles('**/.golangci.yml', '**/*.go', '**/go.sum') }}
- name: Lint
run: |
make install-tools
make for-all CMD="make lint"
test:
name: test
runs-on: ubuntu-24.04
needs: [setup-environment]
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Unit tests
run: |
set -o pipefail
make install-tools
mkdir -p unit-test-results/junit
trap "go-junit-report -set-exit-code < unit-test-results/go-unit-tests.out > unit-test-results/junit/results.xml" EXIT
make for-all CMD="make test" | tee unit-test-results/go-unit-tests.out
- name: Uploading artifacts
uses: actions/upload-artifact@v4
with:
name: unit-test-results
path: ./unit-test-results
- name: bundle.d
run: |
make bundle.d
if ! git diff --exit-code; then
echo "Discovery bundle.d config has changed. Run 'make bundle.d' and push the changes or ensure correct .tmpl updated."
exit 1
fi
coverage:
name: coverage
runs-on: ubuntu-24.04
needs: [setup-environment]
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Coverage tests
run: |
make install-tools
make test-with-cover
- name: Uploading artifacts
uses: actions/upload-artifact@v4
with:
name: coverage-results
path: ./coverage.html
cross-compile:
name: cross-compile
runs-on: ubuntu-24.04
needs: [setup-environment]
strategy:
matrix:
SYS_BINARIES: [ "binaries-darwin_amd64", "binaries-darwin_arm64", "binaries-linux_amd64", "binaries-linux_arm64", "binaries-windows_amd64", "binaries-linux_ppc64le" ]
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: '**/go.sum'
- name: Build Collector
run: |
make ${{ matrix.SYS_BINARIES }}
- name: Uploading binaries
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.SYS_BINARIES }}
path: |
./bin/*