Bump docker/setup-qemu-action from 2 to 3 (#3832) #12
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' | |
- 'cmd/**' | |
- 'internal/**' | |
- 'pkg/**' | |
- 'tests/**' | |
- 'Makefile' | |
- 'Makefile.common' | |
- 'go.mod' | |
- 'go.sum' | |
- '!**.md' | |
- '!internal/buildscripts/packaging/**' | |
concurrency: | |
group: build-and-test-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
env: | |
GO_VERSION: 1.20.10 | |
jobs: | |
setup-environment: | |
name: setup-environment | |
# Use 20.04.5 until https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16450 is resolved | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Check out the codebase. | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
cache-dependency-path: '**/go.sum' | |
- name: Installing dependency | |
run: | | |
make install-tools | |
tidy: | |
name: tidy | |
# Use 20.04.5 until https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16450 is resolved | |
runs-on: ubuntu-20.04 | |
needs: [setup-environment] | |
steps: | |
- name: Check out the codebase. | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
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 | |
# Use 20.04.5 until https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16450 is resolved | |
runs-on: ubuntu-20.04 | |
needs: [setup-environment] | |
steps: | |
- name: Check out the codebase. | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
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 | |
# Use 20.04.5 until https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16450 is resolved | |
runs-on: ubuntu-20.04 | |
needs: [setup-environment] | |
steps: | |
- name: Check out the codebase. | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
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 | |
# Use 20.04.5 until https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16450 is resolved | |
runs-on: ubuntu-20.04 | |
needs: [setup-environment] | |
steps: | |
- name: Check out the codebase. | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
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@v3 | |
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 | |
# Use 20.04.5 until https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16450 is resolved | |
runs-on: ubuntu-20.04 | |
needs: [setup-environment] | |
steps: | |
- name: Check out the codebase. | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
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@v3 | |
with: | |
name: unit-test-results | |
path: ./unit-test-results | |
coverage: | |
name: coverage | |
# Use 20.04.5 until https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16450 is resolved | |
runs-on: ubuntu-20.04 | |
needs: [setup-environment] | |
steps: | |
- name: Check out the codebase. | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
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@v3 | |
with: | |
name: coverage-results | |
path: ./coverage.html | |
# DISABLE CODECOV UNTIL THE SCRIPT IS AUDITED AND WE ARE CERTAIN IT IS OK TO TO EXECUTE IT. | |
# - name: Code coverage | |
# run: | | |
# bash <(curl -s https://codecov.io/bash) | |
cross-compile: | |
name: cross-compile | |
# Use 20.04.5 until https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/16450 is resolved | |
runs-on: ubuntu-20.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@v4 | |
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@v3 | |
with: | |
name: ${{ matrix.SYS_BINARIES }} | |
path: | | |
./bin/* |