fix(deps): update module github.com/clickhouse/clickhouse-go/v2 to v2… #93939
This file contains hidden or 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] | |
tags: | |
- "v[0-9]+.[0-9]+.[0-9]+*" | |
merge_group: | |
pull_request: | |
permissions: read-all | |
env: | |
TEST_RESULTS: testbed/tests/results/junit/results.xml | |
# Make sure to exit early if cache segment download times out after 2 minutes. | |
# We limit cache download as a whole to 5 minutes. | |
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 2 | |
# Do not cancel this workflow on main. See https://github.com/open-telemetry/opentelemetry-collector-contrib/pull/16616 | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
setup-environment: | |
timeout-minutes: 30 | |
runs-on: ubuntu-24.04 | |
if: ${{ github.actor != 'dependabot[bot]' }} | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5 | |
with: | |
go-version: 1.23.9 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
./.tools | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Install dependencies | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make -j2 gomoddownload | |
- name: Install Tools | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make install-tools | |
check-collector-module-version: | |
runs-on: ubuntu-24.04 | |
needs: [setup-environment] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- run: make genotelcontribcol | |
- name: Check Collector Module Version | |
run: ./.github/workflows/scripts/check-collector-module-version.sh | |
lint-matrix: | |
strategy: | |
fail-fast: false | |
matrix: | |
goos: | |
- windows | |
- linux | |
group: | |
- receiver-0 | |
- receiver-1 | |
- receiver-2 | |
- receiver-3 | |
- processor-0 | |
- processor-1 | |
- exporter-0 | |
- exporter-1 | |
- exporter-2 | |
- exporter-3 | |
- extension | |
- connector | |
- internal | |
- pkg | |
- cmd-0 | |
- other | |
runs-on: ubuntu-24.04 | |
needs: [setup-environment] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5 | |
with: | |
go-version: 1.23.9 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
./.tools | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Install dependencies | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make -j2 gomoddownload | |
- name: Install Tools | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make install-tools | |
- name: Cache Lint Build | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 | |
with: | |
path: ~/.cache/go-build | |
key: go-lint-build-${{ matrix.group }}-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Lint | |
run: GOOS=${{ matrix.goos }} GOARCH=amd64 make -j2 golint GROUP=${{ matrix.group }} | |
lint: | |
if: ${{ github.actor != 'dependabot[bot]' && always() }} | |
runs-on: ubuntu-24.04 | |
needs: [setup-environment, lint-matrix] | |
steps: | |
- name: Print result | |
run: echo ${{ needs.lint-matrix.result }} | |
- name: Interpret result | |
run: | | |
if [[ success == ${{ needs.lint-matrix.result }} ]] | |
then | |
echo "All matrix jobs passed!" | |
else | |
echo "One or more matrix jobs failed." | |
false | |
fi | |
govulncheck: | |
strategy: | |
fail-fast: false | |
matrix: | |
group: | |
- receiver-0 | |
- receiver-1 | |
- receiver-2 | |
- receiver-3 | |
- processor-0 | |
- processor-1 | |
- exporter-0 | |
- exporter-1 | |
- exporter-2 | |
- exporter-3 | |
- extension | |
- connector | |
- internal | |
- pkg | |
- cmd-0 | |
runs-on: ubuntu-24.04 | |
timeout-minutes: 30 | |
steps: | |
- name: Checkout Repo | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Setup Go | |
uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5 | |
with: | |
go-version: 1.23.9 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
./.tools | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Install Tools | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make install-tools | |
- name: Run `govulncheck` | |
run: make -j2 gogovulncheck GROUP=${{ matrix.group }} | |
checks: | |
runs-on: ubuntu-24.04 | |
needs: [setup-environment] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5 | |
with: | |
go-version: 1.23.9 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
./.tools | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Install dependencies | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make -j2 gomoddownload | |
- name: Install Tools | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make install-tools | |
- run: make genotelcontribcol | |
- name: CheckDoc | |
run: make checkdoc | |
- name: CheckMetadata | |
run: make checkmetadata | |
- name: CheckApi | |
run: make checkapi | |
- name: Porto | |
run: | | |
make -j2 goporto | |
git diff --exit-code || (echo 'Porto links are out of date, please run "make goporto" and commit the changes in this PR.' && exit 1) | |
- name: crosslink | |
run: | | |
make crosslink | |
git diff --exit-code || (echo 'Replace statements are out of date, please run "make crosslink" and commit the changes in this PR.' && exit 1) | |
- name: tidylist | |
run: | | |
make tidylist | |
git diff --exit-code || (echo 'Tidylist is out of date, please run "make tidylist" and commit the changes in this PR.' && exit 1) | |
- name: Check for go mod dependency changes | |
run: | | |
make gotidy | |
git diff --exit-code || (echo 'go.mod/go.sum deps changes detected, please run "make gotidy" and commit the changes in this PR.' && exit 1) | |
- name: Gen distributions | |
run: | | |
make gendistributions | |
git diff -s --exit-code || (echo 'Generated code is out of date, please run "make gendistributions" and commit the changes in this PR.' && exit 1) | |
- name: Gen labels | |
run: | | |
make genlabels | |
git diff -s --exit-code || (echo '.github/component_labels.txt is out of date, please run "make genlabels" and commit the changes in this PR.' && exit 1) | |
- name: Gen CodeCov | |
run: | | |
make gencodecov | |
git --no-pager diff | |
git diff -s --exit-code '.codecov.yml' || (echo '.codecov.yml is out of date, please run "make gencodecov" and commit the changes in this PR.' && exit 1) | |
- name: CodeGen | |
run: | | |
make generate | |
if [[ -n $(git status -s) ]]; then | |
echo 'Generated code is out of date, please run "make generate" and commit the changes in this PR.' | |
exit 1 | |
fi | |
- name: MultimodVerify | |
run: make multimod-verify | |
- name: Components dropdown in issue templates | |
run: | | |
make generate-gh-issue-templates | |
git diff --exit-code '.github/ISSUE_TEMPLATE' || (echo 'Dropdowns in issue templates are out of date, please run "make generate-gh-issue-templates" and commit the changes in this PR.' && exit 1) | |
unittest-matrix: | |
strategy: | |
fail-fast: false | |
matrix: | |
go-version: ["~1.24", "~1.23"] # 1.20 is interpreted as 1.2 without quotes | |
runner: [ubuntu-24.04] | |
group: | |
- receiver-0 | |
- receiver-1 | |
- receiver-2 | |
- receiver-3 | |
- processor-0 | |
- processor-1 | |
- exporter-0 | |
- exporter-1 | |
- exporter-2 | |
- exporter-3 | |
- extension | |
- connector | |
- internal | |
- pkg | |
- cmd-0 | |
- other | |
runs-on: ${{ matrix.runner }} | |
needs: [setup-environment] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5 | |
with: | |
go-version: ${{ matrix.go-version }} | |
cache: false | |
check-latest: true # Since we're using "~" in the version, check we're using latest | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
./.tools | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Install dependencies | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make -j2 gomoddownload | |
- name: Install Tools | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make install-tools | |
- name: Cache Test Build | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 | |
with: | |
path: ~/.cache/go-build | |
key: go-test-build-${{ runner.os }}-${{ matrix.go-version }}-${{ matrix.runner }}-${{ hashFiles('**/go.sum') }} | |
# Unit tests without JUnit output are much faster, so it's fine to run on every PR and every go version. | |
# The only time we don't run them is when we already ran them with JUnit output. | |
# Which means: | |
# - On PRs. | |
# - On main, with the go version that we didn't run the JUnit tests with. | |
- name: Run Unit Tests | |
id: tests | |
if: github.ref != 'refs/heads/main' || !startsWith( matrix.go-version, '~1.23' ) | |
run: make gotest GROUP=${{ matrix.group }} | |
# JUnit tests are super long, so we only run them for one go version. | |
# This is used for automation that automatically creates issues for flaky tests that are | |
# merged to main, so we don't run them on every PR. | |
- name: Run Unit Tests With JUnit and Coverage | |
id: tests-with-junit | |
if: startsWith( matrix.go-version, '~1.23' ) && github.ref == 'refs/heads/main' && github.event_name == 'push' | |
continue-on-error: true # Allow uploading artifacts even if the test fails | |
run: make gotest-with-junit-and-cover GROUP=${{ matrix.group }} | |
- uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4 | |
if: startsWith( matrix.go-version, '~1.23' ) && github.ref == 'refs/heads/main' && github.event_name == 'push' | |
with: | |
name: coverage-artifacts-${{ matrix.go-version }}-${{ matrix.runner }}-${{ matrix.group }} | |
path: ${{ matrix.group }}-coverage.txt | |
- uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4 | |
if: startsWith( matrix.go-version, '~1.23' ) && github.ref == 'refs/heads/main' && github.event_name == 'push' | |
with: | |
name: test-results-${{ matrix.go-version }}-${{ matrix.runner }}-${{ matrix.group }} | |
path: internal/tools/testresults/ | |
retention-days: 4 | |
- name: Fail workflow if tests fails | |
if: always() | |
run: | | |
if [[ "${{ steps.tests-with-junit.outcome }}" == "failure" || "${{ steps.tests.outcome }}" == "failure" ]]; then | |
echo "Tests failed. Failing workflow." | |
exit 1 | |
else | |
echo "Tests passed or were skipped. Continuing." | |
fi | |
unittest: | |
if: ${{ github.actor != 'dependabot[bot]' && always() }} | |
runs-on: ubuntu-24.04 | |
needs: [setup-environment, unittest-matrix] | |
steps: | |
- name: Print result | |
run: echo ${{ needs.unittest-matrix.result }} | |
- name: Interpret result | |
run: | | |
if [[ success == ${{ needs.unittest-matrix.result }} ]] | |
then | |
echo "All matrix jobs passed!" | |
else | |
echo "One or more matrix jobs failed." | |
false | |
fi | |
coverage: | |
runs-on: ubuntu-24.04 | |
needs: [unittest] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4 | |
with: | |
merge-multiple: true | |
pattern: coverage-artifacts-* | |
- name: Upload coverage report | |
uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5.4.0 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
integration-tests-matrix: | |
strategy: | |
fail-fast: false | |
matrix: | |
group: | |
- receiver-0 | |
- receiver-1 | |
- receiver-2 | |
- receiver-3 | |
- processor-0 | |
- processor-1 | |
- exporter-0 | |
- exporter-1 | |
- exporter-2 | |
- exporter-3 | |
- extension | |
- connector | |
- internal | |
- pkg | |
- cmd-0 | |
runs-on: ubuntu-24.04 | |
needs: [setup-environment] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5 | |
with: | |
go-version: 1.23.9 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
./.tools | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Cache Docker images. | |
uses: AndreKurait/docker-cache@0fe76702a40db986d9663c24954fc14c6a6031b7 # 0.6.0 | |
with: | |
key: docker-${{ matrix.group }} | |
- name: Run Integration Tests | |
run: make gointegration-test GROUP=${{ matrix.group }} | |
integration-sudo-tests-matrix: | |
strategy: | |
fail-fast: false | |
matrix: | |
group: | |
# list of components that require privileged (sudo) access for | |
# its integration tests `go test -exec sudo -run Sudo -tags=integration` | |
- extension/cgroupruntimeextension | |
runs-on: ubuntu-24.04 | |
needs: [setup-environment] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5 | |
with: | |
go-version: 1.23.9 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
./.tools | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Cache Docker images. | |
uses: AndreKurait/docker-cache@0fe76702a40db986d9663c24954fc14c6a6031b7 # 0.6.0 | |
with: | |
key: docker-${{ matrix.group }} | |
- name: Run Integration Tests | |
run: make --no-print-directory -C ${{ matrix.group }} mod-integration-sudo-test | |
integration-tests: | |
if: ${{ github.actor != 'dependabot[bot]' && always() }} | |
runs-on: ubuntu-24.04 | |
needs: [setup-environment, integration-tests-matrix, integration-sudo-tests-matrix] | |
steps: | |
- name: Print result | |
run: echo ${{ needs.integration-tests-matrix.result }} | |
- name: Interpret result | |
run: | | |
if [[ success == ${{ needs.integration-tests-matrix.result }} ]] | |
then | |
echo "All matrix jobs passed!" | |
else | |
echo "One or more matrix jobs failed." | |
false | |
fi | |
correctness-traces: | |
runs-on: ubuntu-24.04 | |
needs: [setup-environment] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5 | |
with: | |
go-version: 1.23.9 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
./.tools | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Install dependencies | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make -j2 gomoddownload | |
- name: Install Tools | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make install-tools | |
- name: Correctness | |
run: make -C testbed run-correctness-traces-tests | |
correctness-metrics: | |
runs-on: ubuntu-24.04 | |
needs: [setup-environment] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5 | |
with: | |
go-version: 1.23.9 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
./.tools | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Install dependencies | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make -j2 gomoddownload | |
- name: Install Tools | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make install-tools | |
- name: Correctness | |
run: make -C testbed run-correctness-metrics-tests | |
build-examples: | |
runs-on: ubuntu-24.04 | |
needs: [setup-environment] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- run: make genotelcontribcol | |
- name: Build Examples | |
run: make build-examples | |
cross-compile: | |
runs-on: ubuntu-24.04 | |
needs: [setup-environment] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- darwin | |
- linux | |
- windows | |
arch: | |
- 386 | |
- amd64 | |
- arm | |
- arm64 | |
- ppc64le | |
- s390x | |
include: | |
- os: linux | |
arch: arm | |
arm: 7 | |
exclude: | |
- os: darwin | |
arch: 386 | |
- os: darwin | |
arch: arm | |
- os: darwin | |
arch: ppc64le | |
- os: darwin | |
arch: s390x | |
- os: windows | |
arch: arm | |
- os: windows | |
arch: arm64 | |
- os: windows | |
arch: ppc64le | |
- os: windows | |
arch: s390x | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5 | |
with: | |
go-version: 1.23.9 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
./.tools | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Install dependencies | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make -j2 gomoddownload | |
- name: Install Tools | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make install-tools | |
- name: Generate collector files | |
run: make genotelcontribcol | |
- name: Build Collector ${{ matrix.binary }} | |
run: make GOOS=${{ matrix.os }} GOARCH=${{ matrix.arch }} GOARM=${{ matrix.arm }} otelcontribcol | |
- name: Upload Collector Binaries | |
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4 | |
with: | |
name: collector-binaries-${{ matrix.os }}-${{ matrix.arch }} | |
path: ./bin/* | |
publish-check: | |
runs-on: ubuntu-24.04 | |
needs: [lint, unittest, integration-tests] | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- name: Download Binaries | |
uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4 | |
with: | |
merge-multiple: true | |
path: ./bin/ | |
pattern: collector-binaries-* | |
- name: Verify Distribution Files Exist | |
id: check | |
run: ./.github/workflows/scripts/verify-dist-files-exist.sh | |
publish-dev: | |
runs-on: ubuntu-24.04 | |
needs: [lint, unittest, integration-tests] | |
if: (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) && github.repository == 'open-telemetry/opentelemetry-collector-contrib' | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5 | |
with: | |
go-version: 1.23.9 | |
cache: false | |
- name: Mkdir bin and dist | |
run: | | |
mkdir bin/ dist/ | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
./.tools | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Install dependencies | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make -j2 gomoddownload | |
- name: Install Tools | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make install-tools | |
- name: Download Binaries | |
uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4 | |
with: | |
merge-multiple: true | |
path: ./bin/ | |
pattern: collector-binaries-* | |
- run: chmod +x bin/* | |
- name: Add Permissions to Tool Binaries | |
run: chmod -R +x ./dist | |
- name: Verify Distribution Files Exist | |
id: check | |
run: ./.github/workflows/scripts/verify-dist-files-exist.sh | |
- name: Build Docker Image | |
if: steps.check.outputs.passed == 'true' | |
run: | | |
make genotelcontribcol | |
make docker-otelcontribcol | |
docker tag otelcontribcol:latest otel/opentelemetry-collector-contrib-dev:$GITHUB_SHA | |
docker tag otelcontribcol:latest otel/opentelemetry-collector-contrib-dev:latest | |
- name: Validate Docker Image | |
if: steps.check.outputs.passed == 'true' | |
run: | | |
docker run otel/opentelemetry-collector-contrib-dev:$GITHUB_SHA --version | |
docker run otel/opentelemetry-collector-contrib-dev:latest --version | |
- name: Login to Docker Hub | |
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Push Docker Image | |
if: steps.check.outputs.passed == 'true' | |
run: | | |
docker push otel/opentelemetry-collector-contrib-dev:$GITHUB_SHA | |
docker push otel/opentelemetry-collector-contrib-dev:latest | |
publish-stable: | |
runs-on: ubuntu-24.04 | |
needs: [lint, unittest, integration-tests] | |
env: | |
RELEASE_NOTES: release-notes.md | |
if: startsWith(github.ref, 'refs/tags/v') && github.repository == 'open-telemetry/opentelemetry-collector-contrib' | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
with: | |
fetch-depth: 0 | |
- run: npm install simple-git@^3.27.0 | |
- name: Set current and previous tags | |
id: github_tag | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: ./.github/workflows/scripts/set_release_tag.sh | |
- name: Prepare release notes | |
env: | |
RELEASE_TAG: ${{ steps.github_tag.outputs.tag }} | |
run: ./.github/workflows/scripts/prepare-release-notes.sh | |
- name: Generate new contributor celebration text | |
id: new-contributor-text | |
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 | |
with: | |
result-encoding: 'string' | |
script: | | |
const { default: script } = await import('${{ github.workspace }}/.github/workflows/scripts/generate-new-contributors.js') | |
return await script(github, '${{ steps.github_tag.outputs.tag }}', '${{ steps.github_tag.outputs.previous_tag }}') | |
- name: Prepare full release notes | |
run: | | |
echo "" >> ${{ env.RELEASE_NOTES }} | |
echo "${{ steps.new-contributor-text.outputs.result }}" >> ${{ env.RELEASE_NOTES }} | |
- name: Create Github Release | |
run: | | |
gh release create $RELEASE_TAG -t $RELEASE_TAG -F ${{ env.RELEASE_NOTES }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
RELEASE_TAG: ${{ steps.github_tag.outputs.tag }} | |
rotate-milestone: | |
# This job updates the "next release" milestone | |
# to the latest released version and creates a new milestone | |
# named "next release" in its place | |
runs-on: ubuntu-24.04 | |
needs: [publish-stable] | |
if: startsWith(github.ref, 'refs/tags/v') && github.repository == 'open-telemetry/opentelemetry-collector-contrib' | |
steps: | |
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7 | |
with: | |
script: | | |
const milestones = await github.rest.issues.listMilestones({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
state: "open" | |
}) | |
for (const milestone of milestones.data) { | |
if (milestone.title == "next release") { | |
await github.rest.issues.updateMilestone({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
milestone_number: milestone.number, | |
title: "${{ github.ref_name }}" | |
}); | |
await github.rest.issues.createMilestone({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
title: "next release" | |
}); | |
return | |
} | |
} | |
flakytests-generate-issues: | |
if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
runs-on: ubuntu-24.04 | |
needs: [unittest-matrix] | |
permissions: | |
issues: write | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5 | |
with: | |
go-version: 1.23.9 | |
cache: false | |
- name: Cache Go | |
id: go-cache | |
timeout-minutes: 5 | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 | |
with: | |
path: | | |
~/go/bin | |
~/go/pkg/mod | |
./.tools | |
key: go-cache-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
- name: Install dependencies | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make -j2 gomoddownload | |
- uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 # v4 | |
with: | |
merge-multiple: true | |
pattern: test-results-* | |
path: ./internal/tools/testresults/ | |
- name: Install Tools | |
if: steps.go-cache.outputs.cache-hit != 'true' | |
run: make install-tools | |
- name: Generate Issues | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
./.tools/issuegenerator -path ./internal/tools/testresults/ |