feat(ConfigProvider): Modify config merge to do replace instead of update for Specific tags for Remotely managed collectors #5690
Workflow file for this run
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: PRs checks | |
on: | |
pull_request: | |
branches: | |
- '**' | |
defaults: | |
run: | |
shell: bash | |
env: | |
GO_VERSION: "1.22.6" | |
jobs: | |
build-changed: | |
runs-on: ubuntu-22.04 | |
outputs: | |
any_changed: ${{ steps.changed-files.outputs.any_changed }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check if build related files changed | |
id: changed-files | |
uses: tj-actions/changed-files@v44 | |
with: | |
files: | | |
**/go.mod | |
**/go.sum | |
**/*.go | |
**/*.yaml | |
**/*.yml | |
**/Makefile | |
**/Makefile.common | |
**/Dockerfile* | |
markdownlint: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check if related files changed | |
id: changed-files | |
uses: tj-actions/changed-files@v41 | |
with: | |
files: | | |
**/*.md | |
- uses: actions/setup-node@v4 | |
if: steps.changed-files.outputs.any_changed == 'true' | |
- name: Install markdownlint | |
if: steps.changed-files.outputs.any_changed == 'true' | |
run: make install-markdownlint | |
- name: Markdownlint check | |
if: steps.changed-files.outputs.any_changed == 'true' | |
run: make markdownlint | |
yamllint: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install yamllint | |
run: pip install yamllint | |
- name: yamllint | |
run: make yamllint | |
markdown-link-check: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check if related files changed | |
id: changed-files | |
uses: tj-actions/changed-files@v41 | |
with: | |
files: | | |
**/*.md | |
- uses: gaurav-nelson/github-action-markdown-link-check@v1 | |
if: steps.changed-files.outputs.any_changed == 'true' | |
with: | |
config-file: '.markdown_link_check.json' | |
use-quiet-mode: yes | |
check-modified-files-only: yes | |
base-branch: ${{ github.base_ref }} | |
md-links-lint: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check if related files changed | |
id: changed-files | |
uses: tj-actions/changed-files@v41 | |
with: | |
files: | | |
**/*.md | |
- name: Lint markdown links | |
if: steps.changed-files.outputs.any_changed == 'true' | |
run: | | |
make markdown-links-lint | |
plugins-check: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install yq | |
run: | | |
sudo wget https://github.com/mikefarah/yq/releases/download/v4.12.1/yq_linux_amd64 -O /usr/bin/yq && sudo chmod +x /usr/bin/yq | |
- name: Check plugins in README and builder config | |
run: ./ci/plugins_check.sh | |
pre-commit-check: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
- uses: pre-commit/[email protected] | |
check-uniform-dependencies: | |
name: Check uniform dependencies | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check uniform dependencies | |
run: make check-uniform-dependencies | |
shellcheck: | |
runs-on: ubuntu-20.04 | |
env: | |
SHELLCHECK_VERSION: 0.10.0 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: install shellcheck | |
run: | | |
curl --retry 10 --retry-max-time 120 --retry-delay 5 -Lo- https://github.com/koalaman/shellcheck/releases/download/v${{ env.SHELLCHECK_VERSION }}/shellcheck-v${{ env.SHELLCHECK_VERSION }}.linux.x86_64.tar.xz | tar -xJf - | |
sudo cp shellcheck-v${{ env.SHELLCHECK_VERSION }}/shellcheck /usr/local/bin && rm -rf shellcheck-v${{ env.SHELLCHECK_VERSION }} | |
- name: shellcheck | |
run: make shellcheck | |
test: | |
name: Test | |
uses: ./.github/workflows/workflow-test.yml | |
needs: | |
- build-changed | |
if: needs.build-changed.outputs.any_changed == 'true' | |
strategy: | |
matrix: | |
include: | |
- arch_os: linux_amd64 | |
runs-on: ubuntu-20.04 | |
- arch_os: linux_amd64 | |
runs-on: ubuntu-20.04 | |
boringcrypto: true | |
- arch_os: darwin_arm64 | |
runs-on: macos-15 | |
- arch_os: windows_amd64 | |
runs-on: windows-2022 | |
with: | |
arch_os: ${{ matrix.arch_os }} | |
runs-on: ${{ matrix.runs-on }} | |
boringcrypto: ${{ matrix.boringcrypto == true }} | |
test-otelcol-config: | |
name: Test (otelcol-config) | |
uses: ./.github/workflows/workflow-test-otelcol-config.yml | |
strategy: | |
matrix: | |
include: | |
- arch_os: linux_amd64 | |
runs-on: ubuntu-20.04 | |
- arch_os: linux_amd64 | |
runs-on: ubuntu-20.04 | |
boringcrypto: true | |
- arch_os: darwin_amd64 | |
runs-on: macos-15 | |
with: | |
arch_os: ${{ matrix.arch_os }} | |
runs-on: ${{ matrix.runs-on }} | |
save-cache: true | |
boringcrypto: ${{ matrix.boringcrypto == true }} | |
lint: | |
name: Lint (staticcheck) | |
runs-on: ubuntu-20.04 | |
needs: [ build-changed ] | |
if: needs.build-changed.outputs.any_changed == 'true' | |
strategy: | |
matrix: | |
arch_os: [ 'linux_amd64' ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
cache: false | |
- name: Get GOCACHE and GOMODCACHE | |
run: | | |
echo "GOMODCACHE=$(go env GOMODCACHE)" >> "$GITHUB_ENV" | |
echo "GOCACHE=$(go env GOCACHE)" >> "$GITHUB_ENV" | |
- uses: actions/cache/restore@v4 | |
with: | |
path: | | |
${{ env.GOMODCACHE }}/cache | |
${{ env.GOCACHE }} | |
key: go-test-${{ env.GO_VERSION }}-${{matrix.arch_os}}-${{ hashFiles('pkg/**/go.sum', 'otelcolbuilder/.otelcol-builder.yaml') }} | |
restore-keys: | | |
go-test-${{ env.GO_VERSION }}-${{matrix.arch_os}}- | |
- uses: actions/cache/restore@v4 | |
with: | |
path: | | |
/home/runner/.cache/staticcheck | |
key: staticcheck-${{ env.GO_VERSION }}-${{matrix.arch_os}}-${{ hashFiles('pkg/**/go.sum', 'otelcolbuilder/.otelcol-builder.yaml') }} | |
restore-keys: | | |
staticcheck-${{ env.GO_VERSION }}-${{matrix.arch_os}}- | |
- name: Install staticcheck | |
run: make install-staticcheck | |
- name: Add opentelemetry-collector-builder installation dir to PATH | |
run: echo "$HOME/bin" >> $GITHUB_PATH | |
- name: Run staticcheck | |
run: make golint | |
get-version: | |
name: Get next available version | |
uses: ./.github/workflows/_get-version-workflow.yml | |
build: | |
name: Build | |
uses: ./.github/workflows/workflow-build.yml | |
needs: [get-version] | |
strategy: | |
matrix: | |
include: | |
- arch_os: linux_amd64 | |
runs-on: ubuntu-20.04 | |
- arch_os: linux_amd64 | |
runs-on: ubuntu-20.04 | |
fips: true | |
- arch_os: linux_arm64 | |
runs-on: ubuntu-20.04 | |
- arch_os: darwin_amd64 | |
runs-on: macos-15 | |
- arch_os: darwin_arm64 | |
runs-on: macos-15 | |
- arch_os: windows_amd64 | |
runs-on: windows-2022 | |
- arch_os: windows_amd64 | |
runs-on: windows-2022 | |
fips: true | |
with: | |
arch_os: ${{ matrix.arch_os }} | |
runs-on: ${{ matrix.runs-on }} | |
fips: ${{ matrix.fips == true }} | |
version: ${{ needs.get-version.outputs.version }} | |
secrets: | |
apple_developer_certificate_p12_base64: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_P12_BASE64 }} | |
apple_developer_certificate_password: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_PASSWORD }} | |
app_store_connect_password: ${{ secrets.AC_PASSWORD }} | |
microsoft_certificate: ${{ secrets.MICROSOFT_CERTIFICATE }} | |
microsoft_certificate_password: ${{ secrets.MICROSOFT_CERTIFICATE_PASSWORD }} | |
microsoft_certificate_hash: ${{ secrets.MICROSOFT_CERTHASH }} | |
microsoft_certificate_name: ${{ secrets.MICROSOFT_CERTNAME }} | |
microsoft_description: ${{ secrets.MICROSOFT_DESCRIPTION }} | |
build-otelcol-config: | |
name: Build (otelcol-config) | |
uses: ./.github/workflows/workflow-build-otelcol-config.yml | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- arch_os: darwin_amd64 | |
runs-on: macos-15 | |
- arch_os: darwin_arm64 | |
runs-on: macos-15 | |
- arch_os: linux_amd64 | |
runs-on: ubuntu-20.04 | |
- arch_os: linux_amd64 | |
runs-on: ubuntu-20.04 | |
fips: true | |
- arch_os: linux_arm64 | |
runs-on: ubuntu-20.04 | |
- arch_os: linux_arm64 | |
runs-on: ubuntu-20.04 | |
fips: true | |
with: | |
arch_os: ${{ matrix.arch_os }} | |
runs-on: ${{ matrix.runs-on }} | |
fips: ${{ matrix.fips == true }} | |
save-cache: true | |
secrets: | |
apple_developer_certificate_p12_base64: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_P12_BASE64 }} | |
apple_developer_certificate_password: ${{ secrets.APPLE_DEVELOPER_CERTIFICATE_PASSWORD }} | |
app_store_connect_password: ${{ secrets.AC_PASSWORD }} | |
build-and-test-container-images: | |
name: Build container | |
runs-on: ubuntu-20.04 | |
needs: | |
- build-changed | |
- build | |
if: needs.build-changed.outputs.any_changed == 'true' | |
strategy: | |
matrix: | |
arch_os: [ 'linux_amd64', 'linux_arm64'] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up QEMU | |
uses: docker/[email protected] | |
- name: Set up Buildx | |
id: buildx | |
uses: docker/[email protected] | |
- name: Show Buildx platforms | |
run: echo ${{ steps.buildx.outputs.platforms }} | |
- name: Download binary action artifact from build phase | |
uses: actions/download-artifact@v4 | |
with: | |
name: otelcol-sumo-${{matrix.arch_os}} | |
path: artifacts/ | |
- name: Build the container image | |
run: | | |
cp artifacts/otelcol-sumo-${{matrix.arch_os}} otelcol-sumo | |
make build-container-multiplatform \ | |
PLATFORM=${{ matrix.arch_os }} | |
- name: Test built image | |
run: make test-built-image | |
- name: Download FIPS binary action artifact from build phase | |
if: matrix.arch_os == 'linux_amd64' | |
uses: actions/download-artifact@v4 | |
with: | |
name: otelcol-sumo-fips-${{matrix.arch_os}} | |
path: artifacts/ | |
- name: Build the FIPS container image | |
if: matrix.arch_os == 'linux_amd64' | |
run: | | |
cp artifacts/otelcol-sumo-fips-${{matrix.arch_os}} otelcol-sumo | |
make build-container-multiplatform \ | |
PLATFORM=${{ matrix.arch_os }} BUILD_TYPE_SUFFIX="-fips" | |
- name: Test built FIPS image | |
if: matrix.arch_os == 'linux_amd64' | |
run: make test-built-image BUILD_TAG="latest-fips" | |
build-windows-container: | |
name: Build windows container | |
needs: | |
- build-changed | |
- build | |
if: needs.build-changed.outputs.any_changed == 'true' | |
runs-on: ${{ matrix.runs-on }} | |
strategy: | |
matrix: | |
include: | |
- arch_os: windows_amd64 | |
base_image_tag: ltsc2022 | |
runs-on: windows-2022 | |
- arch_os: windows_amd64 | |
base_image_tag: ltsc2019 | |
runs-on: windows-2019 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download binary action artifact from build phase | |
uses: actions/download-artifact@v4 | |
with: | |
name: otelcol-sumo-${{matrix.arch_os}}.exe | |
path: artifacts/ | |
- name: Build the container image | |
run: | | |
cp artifacts/otelcol-sumo-${{matrix.arch_os}}.exe otelcol-sumo.exe | |
make build-container-windows \ | |
PLATFORM=${{ matrix.arch_os }}_${{ matrix.base_image_tag }} | |
- name: Test built image | |
run: make test-built-image | |
# TODO: build windows FIPS image |