add sum connector #48
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: 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/* |