diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/CODEOWNERS | 14 | ||||
-rw-r--r-- | .github/data/distros.yml | 26 | ||||
-rw-r--r-- | .github/labeler.yml | 8 | ||||
-rwxr-xr-x | .github/scripts/build-artifacts.sh | 1 | ||||
-rwxr-xr-x | .github/scripts/build-dist.sh | 1 | ||||
-rwxr-xr-x | .github/scripts/get-static-cache-key.sh | 15 | ||||
-rwxr-xr-x | .github/scripts/pkg-test.sh | 10 | ||||
-rwxr-xr-x | .github/scripts/run-updater-check.sh | 3 | ||||
-rwxr-xr-x | .github/scripts/run_install_with_dist_file.sh | 2 | ||||
-rw-r--r-- | .github/workflows/build.yml | 53 | ||||
-rw-r--r-- | .github/workflows/checks.yml | 4 | ||||
-rw-r--r-- | .github/workflows/docker.yml | 18 | ||||
-rw-r--r-- | .github/workflows/packaging.yml | 16 | ||||
-rw-r--r-- | .github/workflows/tests.yml | 2 |
14 files changed, 106 insertions, 67 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index fb371e4f..b0a6db16 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -10,19 +10,17 @@ aclk/ @stelfrag @underhood build/ @Ferroin @iigorkarpov @maneamarius contrib/debian @Ferroin @iigorkarpov @maneamarius -collectors/ @vlvkobal @surajnpn +collectors/ @vlvkobal collectors/ebpf.plugin/ @thiagoftsm @vlvkobal -collectors/charts.d.plugin/ @ilyam8 @surajnpn @Ferroin -collectors/freebsd.plugin/ @vlvkobal @thiagoftsm @surajnpn -collectors/macos.plugin/ @vlvkobal @thiagoftsm @surajnpn -collectors/node.d.plugin/ @jacekkolasa -collectors/node.d.plugin/snmp/ @jacekkolasa +collectors/charts.d.plugin/ @ilyam8 @Ferroin +collectors/freebsd.plugin/ @vlvkobal @thiagoftsm +collectors/macos.plugin/ @vlvkobal @thiagoftsm collectors/python.d.plugin/ @ilyam8 collectors/cups.plugin/ @simonnagl @vlvkobal @thiagoftsm exporting/ @vlvkobal @thiagoftsm daemon/ @thiagoftsm @vkalintiris database/ @thiagoftsm @vkalintiris -docs/ @DShreve2 @kickoke +docs/ @DShreve2 health/ @thiagoftsm @vlvkobal @vkalintiris health/health.d/ @thiagoftsm @vlvkobal health/notifications/ @Ferroin @thiagoftsm @@ -38,7 +36,7 @@ web/gui/ @jacekkolasa # Ownership by filetype (overwrites ownership by directory) *.am @Ferroin @iigorkarpov @maneamarius -*.md @DShreve2 @kickoke +*.md @DShreve2 Dockerfile* @Ferroin @iigorkarpov @maneamarius # Ownership of specific files diff --git a/.github/data/distros.yml b/.github/data/distros.yml index 8d58f4d2..133cdbd1 100644 --- a/.github/data/distros.yml +++ b/.github/data/distros.yml @@ -14,30 +14,37 @@ include: jsonc_removal: | apk del json-c-dev - <<: *alpine + version: "3.16" + - <<: *alpine version: "3.15" - <<: *alpine version: "3.14" - <<: *alpine version: "3.13" - - <<: *alpine - version: "3.12" - distro: archlinux version: latest env_prep: | pacman --noconfirm -Syu && pacman --noconfirm -Sy grep libffi - - distro: rockylinux - version: "8" - base_image: rockylinux/rockylinux + - &alma + distro: almalinux + version: "9" + base_image: almalinux jsonc_removal: | dnf remove -y json-c-devel - packages: + packages: &alma_packages type: rpm - repo_distro: el/8 + repo_distro: el/9 arches: - amd64 - arm64 + - <<: *alma + version: "8" + packages: + <<: *alma_packages + repo_distro: el/8 + - distro: centos version: "7" packages: @@ -89,11 +96,6 @@ include: packages: <<: *fedora_packages repo_distro: fedora/35 - - <<: *fedora - version: "34" - packages: - <<: *fedora_packages - repo_distro: fedora/34 - &opensuse distro: opensuse diff --git a/.github/labeler.yml b/.github/labeler.yml index d576b937..c7232507 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -10,9 +10,10 @@ # # Please keep the labels sorted and deduplicated. -ACLK: +area/ACLK: - aclk/* - aclk/**/* + - database/sqlite/sqlite_aclk* - mqtt_websockets area/claim: @@ -47,6 +48,7 @@ area/database: - database/**/* area/docs: + - "*.md" - "**/*.md" - "**/*.mdx" - diagrams/* @@ -114,10 +116,6 @@ collectors/nfacct: - collectors/nfacct.plugin/* - collectors/nfacct.plugin/**/* -collectors/node.d: - - collectors/node.d.plugin/* - - collectors/node.d.plugin/**/* - collectors/perf: - collectors/perf.plugin/* - collectors/perf.plugin/**/* diff --git a/.github/scripts/build-artifacts.sh b/.github/scripts/build-artifacts.sh index e635765b..569c79a5 100755 --- a/.github/scripts/build-artifacts.sh +++ b/.github/scripts/build-artifacts.sh @@ -33,6 +33,7 @@ build_dist() { --with-zlib \ --with-math \ --with-user=netdata \ + --disable-dependency-tracking \ CFLAGS=-O2 make dist mv "${BASENAME}.tar.gz" artifacts/ diff --git a/.github/scripts/build-dist.sh b/.github/scripts/build-dist.sh index f7e27324..027b6214 100755 --- a/.github/scripts/build-dist.sh +++ b/.github/scripts/build-dist.sh @@ -32,6 +32,7 @@ build_dist() { --with-zlib \ --with-math \ --with-user=netdata \ + --disable-dependency-tracking \ CFLAGS=-O2 make dist mv "${BASENAME}.tar.gz" artifacts/ diff --git a/.github/scripts/get-static-cache-key.sh b/.github/scripts/get-static-cache-key.sh new file mode 100755 index 00000000..d9fa2859 --- /dev/null +++ b/.github/scripts/get-static-cache-key.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +arch="${1}" +platform="$(packaging/makeself/uname2platform.sh "${arch}")" + +docker pull --platform "${platform}" netdata/static-builder + +# shellcheck disable=SC2046 +cat $(find packaging/makeself/jobs -type f ! -regex '.*\(netdata\|-makeself\).*') > /tmp/static-cache-key-data + +docker run -it --rm --platform "${platform}" netdata/static-builder sh -c 'apk list -I 2>/dev/null' >> /tmp/static-cache-key-data + +h="$(sha256sum /tmp/static-cache-key-data | cut -f 1 -d ' ')" + +echo "::set-output name=key::static-${arch}-${h}" diff --git a/.github/scripts/pkg-test.sh b/.github/scripts/pkg-test.sh index 148ecd62..179c0c41 100755 --- a/.github/scripts/pkg-test.sh +++ b/.github/scripts/pkg-test.sh @@ -7,7 +7,7 @@ install_debian_like() { apt-get update # Install Netdata - apt-get install -y /netdata/artifacts/netdata_"${VERSION}"_*.deb || exit 1 + apt-get install -y /netdata/artifacts/netdata_"${VERSION}"*_*.deb || exit 1 # Install testing tools apt-get install -y --no-install-recommends curl netcat jq || exit 1 @@ -36,6 +36,10 @@ install_centos() { pkg_version="$(echo "${VERSION}" | tr - .)" + if [ "${PKGMGR}" = "dnf" ]; then + opts="--allowerasing" + fi + # Install EPEL (needed for `jq` "$PKGMGR" install -y epel-release || exit 1 @@ -43,7 +47,7 @@ install_centos() { "$PKGMGR" install -y /netdata/artifacts/netdata-"${pkg_version}"-*.rpm # Install testing tools - "$PKGMGR" install -y curl nc jq || exit 1 + "$PKGMGR" install -y ${opts} curl nc jq || exit 1 } install_suse_like() { @@ -101,7 +105,7 @@ case "${DISTRO}" in fedora | oraclelinux) install_fedora_like ;; - centos | rockylinux) + centos | rockylinux | almalinux) install_centos ;; opensuse) diff --git a/.github/scripts/run-updater-check.sh b/.github/scripts/run-updater-check.sh index 264ed616..d8961f8b 100755 --- a/.github/scripts/run-updater-check.sh +++ b/.github/scripts/run-updater-check.sh @@ -2,6 +2,9 @@ echo ">>> Installing Netdata..." /netdata/packaging/installer/kickstart.sh --dont-wait --build-only --disable-telemetry || exit 1 +echo "::group::Environment File Contents" +cat /etc/netdata/.environment +echo "::endgroup::" echo ">>> Updating Netdata..." export NETDATA_NIGHTLIES_BASEURL="http://localhost:8080/artifacts/" # Pull the tarball from the local web server. /netdata/packaging/installer/netdata-updater.sh --not-running-from-cron --no-updater-self-update || exit 1 diff --git a/.github/scripts/run_install_with_dist_file.sh b/.github/scripts/run_install_with_dist_file.sh index 83559f26..d59e8b13 100755 --- a/.github/scripts/run_install_with_dist_file.sh +++ b/.github/scripts/run_install_with_dist_file.sh @@ -33,7 +33,7 @@ docker run \ -v "${PWD}:/netdata" \ -w /netdata \ "ubuntu:latest" \ - /bin/bash -c "./install-required-packages.sh --dont-wait --non-interactive netdata && apt install wget && ./netdata-installer.sh --dont-wait --require-cloud --disable-telemetry --install /tmp && echo \"Validating netdata instance is running\" && wget -O - 'http://127.0.0.1:19999/api/v1/info' | grep version" + /bin/bash -c "./install-required-packages.sh --dont-wait --non-interactive netdata && apt install wget && ./netdata-installer.sh --dont-wait --require-cloud --disable-telemetry --install /tmp --one-time-build && echo \"Validating netdata instance is running\" && wget -O - 'http://127.0.0.1:19999/api/v1/info' | grep version" popd || exit 1 echo "All Done!" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a50f9df5..16196342 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -88,10 +88,10 @@ jobs: strategy: matrix: arch: - - 'x86_64' - - 'armv7l' - - 'aarch64' - - 'ppc64le' + - x86_64 + - armv7l + - aarch64 + - ppc64le steps: - name: Checkout id: checkout @@ -104,9 +104,26 @@ jobs: if: github.event_name == 'workflow_dispatch' && github.event.inputs.type != 'nightly' run: | sed -i 's/^RELEASE_CHANNEL="nightly" *#/RELEASE_CHANNEL="stable" #/' netdata-installer.sh packaging/makeself/install-or-update.sh + - name: Get Cache Key + id: cache-key + run: .github/scripts/get-static-cache-key.sh ${{ matrix.arch }} + - name: Cache + id: cache + uses: actions/cache@v3 + with: + path: artifacts/cache + key: ${{ steps.cache-key.outputs.key }} - name: Build - id: build + if: github.event_name != 'workflow_dispatch' # Don’t use retries on PRs. run: .github/scripts/build-static.sh ${{ matrix.arch }} + - name: Build + if: github.event_name == 'workflow_dispatch' + id: build + uses: nick-fields/retry@v2 + with: + timeout_minutes: 180 + retries: 3 + command: .github/scripts/build-static.sh ${{ matrix.arch }} - name: Store id: store uses: actions/upload-artifact@v3 @@ -210,10 +227,10 @@ jobs: uses: actions/checkout@v3 - name: Setup Buildx id: buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Build test environment id: build1 - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 continue-on-error: true # We retry 3 times at 5 minute intervals if there is a failure here. with: push: false @@ -226,12 +243,12 @@ jobs: outputs: type=oci,dest=/tmp/image.tar tags: test:${{ matrix.artifact_key }} - name: Retry delay - if: ${{ steps.build1.outcome }} == 'failure' + if: ${{ steps.build1.outcome == 'failure' }} run: sleep "${RETRY_DELAY}" - name: Build test environment (attempt 2) - if: ${{ steps.build1.outcome }} == 'failure' + if: ${{ steps.build1.outcome == 'failure' }} id: build2 - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 continue-on-error: true # We retry 3 times at 5 minute intervals if there is a failure here. with: push: false @@ -244,12 +261,12 @@ jobs: outputs: type=oci,dest=/tmp/image.tar tags: test:${{ matrix.artifact_key }} - name: Retry delay - if: ${{ steps.build1.outcome }} == 'failure' && ${{ steps.build2.outcome }} == 'failure' + if: ${{ steps.build1.outcome == 'failure' && steps.build2.outcome == 'failure' }} run: sleep "${RETRY_DELAY}" - name: Build test environment (attempt 3) - if: ${{ steps.build1.outcome }} == 'failure' && ${{ steps.build2.outcome }} == 'failure' + if: ${{ steps.build1.outcome == 'failure' && steps.build2.outcome == 'failure' }} id: build3 - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: push: false load: false @@ -321,23 +338,23 @@ jobs: id: build-basic run: | docker run --security-opt seccomp=unconfined -w /netdata sha256:${{ steps.load.outputs.image }} \ - /bin/sh -c 'autoreconf -ivf && ./configure && make -j2' + /bin/sh -c 'autoreconf -ivf && ./configure --disable-dependency-tracking && make -j2' - name: netdata-installer on ${{ matrix.distro }}, disable cloud id: build-no-cloud run: | docker run --security-opt seccomp=unconfined -w /netdata sha256:${{ steps.load.outputs.image }} \ - /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --disable-cloud' + /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --disable-cloud --one-time-build' - name: netdata-installer on ${{ matrix.distro }}, require cloud id: build-cloud run: | docker run --security-opt seccomp=unconfined -w /netdata sha256:${{ steps.load.outputs.image }} \ - /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --require-cloud' + /bin/sh -c './netdata-installer.sh --dont-wait --dont-start-it --require-cloud --one-time-build' - name: netdata-installer on ${{ matrix.distro }}, require cloud, no JSON-C id: build-no-jsonc if: matrix.jsonc_removal != '' run: | docker run --security-opt seccomp=unconfined -w /netdata sha256:${{ steps.load.outputs.image }} \ - /bin/sh -c '/rmjsonc.sh && ./netdata-installer.sh --dont-wait --dont-start-it --require-cloud' + /bin/sh -c '/rmjsonc.sh && ./netdata-installer.sh --dont-wait --dont-start-it --require-cloud --one-time-build' - name: Failure Notification uses: rtCamp/action-slack-notify@v2 env: @@ -627,7 +644,7 @@ jobs: export_default_credentials: true - name: Upload Artifacts id: upload - uses: google-github-actions/upload-cloud-storage@v0.9.0 + uses: google-github-actions/upload-cloud-storage@v0.10.2 with: destination: ${{ secrets.GCP_NIGHTLY_STORAGE_BUCKET }} gzip: false diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 5f9a9c8c..65ad6acb 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -27,7 +27,7 @@ jobs: apk del openssl openssl-dev; apk add libressl libressl-dev; autoreconf -ivf; - ./configure; + ./configure --disable-dependency-tracking; make;' clang-checks: name: Clang @@ -51,7 +51,7 @@ jobs: - name: Prepare environment run: ./packaging/installer/install-required-packages.sh --dont-wait --non-interactive netdata - name: Build netdata - run: ./netdata-installer.sh --dont-start-it --disable-telemetry --dont-wait --install /tmp/install + run: ./netdata-installer.sh --dont-start-it --disable-telemetry --dont-wait --install /tmp/install --one-time-build - name: Check that repo is clean run: | git status --porcelain=v1 > /tmp/porcelain diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 10d7093a..b1df95c3 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -28,10 +28,10 @@ jobs: submodules: recursive - name: Setup Buildx id: prepare - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Test Build id: build - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: load: true push: false @@ -82,13 +82,13 @@ jobs: - name: Setup QEMU id: qemu if: matrix.platforms != 'linux/i386' - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Setup Buildx id: buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Build id: build - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: platforms: ${{ matrix.platforms }} load: false @@ -162,19 +162,19 @@ jobs: run: echo "OFFICIAL_IMAGE=true" >> "${GITHUB_ENV}" - name: Setup QEMU id: qemu - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Setup Buildx id: buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Docker Hub Login id: login - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_PASSWORD }} - name: Docker Build id: build - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3 with: platforms: linux/amd64,linux/i386,linux/arm/v7,linux/arm64,linux/ppc64le push: true diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml index dbf334d5..d793d48a 100644 --- a/.github/workflows/packaging.yml +++ b/.github/workflows/packaging.yml @@ -176,7 +176,7 @@ jobs: - name: Setup QEMU id: qemu if: matrix.platform != 'linux/amd64' && matrix.platform != 'linux/i386' - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Prepare Docker Environment id: docker-config shell: bash @@ -199,6 +199,13 @@ jobs: run: | docker run --security-opt seccomp=unconfined -e DISABLE_TELEMETRY=1 -e VERSION=${{ needs.version-check.outputs.version }} \ --platform=${{ matrix.platform }} -v "$PWD":/netdata netdata/package-builders:${{ matrix.distro }}${{ matrix.version }} + - name: Save Packages + id: artifacts + continue-on-error: true + uses: actions/upload-artifact@v3 + with: + name: ${{ matrix.distro }}-${{ matrix.version }}-${{ matrix.arch }}-packages + path: ${{ github.workspace }}/artifacts/* - name: Test Packages id: test shell: bash @@ -207,13 +214,6 @@ jobs: -e VERSION=${{ needs.version-check.outputs.version }} -e DISTRO_VERSION=${{ matrix.version }} \ --platform=${{ matrix.platform }} -v "$PWD":/netdata ${{ matrix.base_image }}:${{ matrix.version }} \ /netdata/.github/scripts/pkg-test.sh - - name: Save Packages - id: artifacts - continue-on-error: true - uses: actions/upload-artifact@v3 - with: - name: ${{ matrix.distro }}-${{ matrix.version }}-${{ matrix.arch }}-packages - path: ${{ github.workspace }}/artifacts/* - name: Upload to PackageCloud id: upload if: github.event_name == 'workflow_dispatch' diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 7e53c497..6272a6d6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -57,7 +57,7 @@ jobs: - name: Configure run: | autoreconf -ivf - ./configure --disable-ml + ./configure --disable-ml --disable-dependency-tracking # XXX: Work-around for bug with libbson-1.0 in Ubuntu 18.04 # See: https://bugs.launchpad.net/ubuntu/+source/libmongoc/+bug/1790771 # https://jira.mongodb.org/browse/CDRIVER-2818 |