summaryrefslogtreecommitdiffstats
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/add-to-project.yml26
-rw-r--r--.github/workflows/build.yml59
-rw-r--r--.github/workflows/cloud_regression.yml1
-rw-r--r--.github/workflows/docker.yml88
-rw-r--r--.github/workflows/packagecloud.yml36
-rw-r--r--.github/workflows/packaging.yml50
-rw-r--r--.github/workflows/release.yml9
-rw-r--r--.github/workflows/repoconfig-packages.yml43
8 files changed, 270 insertions, 42 deletions
diff --git a/.github/workflows/add-to-project.yml b/.github/workflows/add-to-project.yml
new file mode 100644
index 00000000..ae58cfce
--- /dev/null
+++ b/.github/workflows/add-to-project.yml
@@ -0,0 +1,26 @@
+name: Add issues to Agent Board
+
+on:
+ issues:
+ types:
+ - opened
+ - transferred
+
+jobs:
+ add-to-project:
+ name: Add issue to project
+ if: github.repository == 'netdata/netdata'
+ runs-on: ubuntu-latest
+ steps:
+ - name: Add issues to Agent project board
+ uses: actions/add-to-project@v0.3.0
+ with:
+ project-url: https://github.com/orgs/netdata/projects/32
+ github-token: ${{ secrets.NETDATABOT_ORG_GITHUB_TOKEN }}
+
+ - name: Add issues to Product Bug project board
+ uses: actions/add-to-project@v0.3.0
+ with:
+ project-url: https://github.com/orgs/netdata/projects/45
+ github-token: ${{ secrets.NETDATABOT_ORG_GITHUB_TOKEN }}
+ labeled: bug
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 16196342..2b31cc26 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -32,6 +32,11 @@ jobs:
with:
fetch-depth: 0
submodules: recursive
+ - name: Fix tags
+ id: fix-tags
+ if: github.event_name != 'push'
+ run: |
+ git fetch -f origin ${{ github.ref }}:${{ github.ref }}
- name: Mark Stable
id: channel
if: github.event_name == 'workflow_dispatch' && github.event.inputs.type != 'nightly'
@@ -40,6 +45,7 @@ jobs:
- name: Build
id: build
run: |
+ git describe
mkdir -p artifacts
./packaging/installer/install-required-packages.sh --dont-wait --non-interactive netdata
autoreconf -ivf
@@ -71,6 +77,7 @@ jobs:
SLACK_MESSAGE: |-
${{ github.repository }}: Failed to create source tarball for distribution.
Checkout: ${{ steps.checkout.outcome }}
+ Fix Tags: ${{ steps.fix-tags.outcome }}
Mark stable: ${{ steps.channel.outcome }}
Build: ${{ steps.build.outcome }}
Store: ${{ steps.store.outcome }}
@@ -80,6 +87,7 @@ jobs:
failure()
&& startsWith(github.ref, 'refs/heads/master')
&& github.event_name != 'pull_request'
+ && github.repository == 'netdata/netdata'
}}
build-static: # Build the static binary archives, and store them as artifacts.
@@ -99,6 +107,11 @@ jobs:
with:
fetch-depth: 0
submodules: recursive
+ - name: Fix tags
+ id: fix-tags
+ if: github.event_name != 'push'
+ run: |
+ git fetch -f origin ${{ github.ref }}:${{ github.ref }}
- name: Mark Stable
id: channel
if: github.event_name == 'workflow_dispatch' && github.event.inputs.type != 'nightly'
@@ -142,6 +155,7 @@ jobs:
SLACK_MESSAGE: |-
${{ github.repository }}: Failed to create static installer archive for ${{ matrix.arch }}.
Checkout: ${{ steps.checkout.outcome }}
+ Fix Tags: ${{ steps.fix-tags.outcome }}
Mark stable: ${{ steps.channel.outcome }}
Build: ${{ steps.build.outcome }}
Store: ${{ steps.store.outcome }}
@@ -151,6 +165,7 @@ jobs:
failure()
&& startsWith(github.ref, 'refs/heads/master')
&& github.event_name != 'pull_request'
+ && github.repository == 'netdata/netdata'
}}
matrix: # Generate the shared build matrix for our build tests.
@@ -173,19 +188,32 @@ jobs:
from ruamel.yaml import YAML
import json
yaml = YAML(typ='safe')
+ entries = list()
+
with open('.github/data/distros.yml') as f:
data = yaml.load(f)
- del data['platform_map']
+
for i, v in enumerate(data['include']):
- data['include'][i]['artifact_key'] = data['include'][i]['distro'] + str(data['include'][i]['version']).replace('.', '')
- if 'packages' in data['include'][i]:
- del data['include'][i]['packages']
- if 'base_image' in data['include'][i]:
- data['include'][i]['distro'] = data['include'][i]['base_image']
- del data['include'][i]['base_image']
- data['include'][i]['distro'] = ':'.join([data['include'][i]['distro'], str(data['include'][i]['version'])])
- del data['include'][i]['version']
- matrix = json.dumps(data, sort_keys=True)
+ e = {
+ 'artifact_key': v['distro'] + str(v['version']).replace('.', ''),
+ 'version': v['version'],
+ }
+
+ if 'base_image' in v:
+ e['distro'] = ':'.join([v['base_image'], str(v['version'])])
+ else:
+ e['distro'] = ':'.join([v['distro'], str(v['version'])])
+
+ if 'env_prep' in v:
+ e['env_prep'] = v['env_prep']
+
+ if 'jsonc_removal' in v:
+ e['jsonc_removal'] = v['jsonc_removal']
+
+ entries.append(e)
+
+ entries.sort(key=lambda k: k['distro'])
+ matrix = json.dumps({'include': entries}, sort_keys=True)
print('Generated Matrix: ' + matrix)
print('::set-output name=matrix::' + matrix)
- name: Failure Notification
@@ -207,6 +235,7 @@ jobs:
failure()
&& startsWith(github.ref, 'refs/heads/master')
&& github.event_name != 'pull_request'
+ && github.repository == 'netdata/netdata'
}}
prepare-test-images: # Prepare the test environments for our build checks. This also checks dependency handling code for each tested environment.
@@ -306,6 +335,7 @@ jobs:
failure()
&& startsWith(github.ref, 'refs/heads/master')
&& github.event_name != 'pull_request'
+ && github.repository == 'netdata/netdata'
}}
source-build: # Test various source build arrangements.
@@ -378,6 +408,7 @@ jobs:
failure()
&& startsWith(github.ref, 'refs/heads/master')
&& github.event_name != 'pull_request'
+ && github.repository == 'netdata/netdata'
}}
updater-check: # Test the generated dist archive using the updater code.
@@ -455,6 +486,7 @@ jobs:
failure()
&& startsWith(github.ref, 'refs/heads/master')
&& github.event_name != 'pull_request'
+ && github.repository == 'netdata/netdata'
}}
prepare-upload: # Consolidate the artifacts for uploading or releasing.
@@ -521,6 +553,7 @@ jobs:
failure()
&& startsWith(github.ref, 'refs/heads/master')
&& github.event_name != 'pull_request'
+ && github.repository == 'netdata/netdata'
}}
artifact-verification-dist: # Verify the regular installer works with the consolidated artifacts.
@@ -569,6 +602,7 @@ jobs:
failure()
&& startsWith(github.ref, 'refs/heads/master')
&& github.event_name != 'pull_request'
+ && github.repository == 'netdata/netdata'
}}
artifact-verification-static: # Verify the static installer works with the consolidated artifacts.
@@ -617,12 +651,13 @@ jobs:
failure()
&& startsWith(github.ref, 'refs/heads/master')
&& github.event_name != 'pull_request'
+ && github.repository == 'netdata/netdata'
}}
upload-nightly: # Upload the nightly build artifacts to GCS.
name: Upload Nightly Artifacts
runs-on: ubuntu-latest
- if: github.event_name == 'workflow_dispatch' && github.event.inputs.type == 'nightly'
+ if: github.event_name == 'workflow_dispatch' && github.event.inputs.type == 'nightly' && github.repository == 'netdata/netdata'
needs:
- updater-check
- source-build
@@ -690,7 +725,7 @@ jobs:
upload-release: # Create the draft release and upload the build artifacts.
name: Create Release Draft
runs-on: ubuntu-latest
- if: github.event_name == 'workflow_dispatch' && github.event.inputs.type == 'release'
+ if: github.event_name == 'workflow_dispatch' && github.event.inputs.type == 'release' && github.repository == 'netdata/netdata'
needs:
- updater-check
- source-build
diff --git a/.github/workflows/cloud_regression.yml b/.github/workflows/cloud_regression.yml
index 03b12c15..b6e321fe 100644
--- a/.github/workflows/cloud_regression.yml
+++ b/.github/workflows/cloud_regression.yml
@@ -13,6 +13,7 @@ on:
jobs:
trigger_cloud_regression_tests:
runs-on: ubuntu-latest
+ if: github.repository == 'netdata/netdata'
steps:
- name: Evaluate workflow dispatch parameters
env:
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index b1df95c3..b7eb53c8 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -59,6 +59,7 @@ jobs:
failure()
&& github.event_name != 'pull_request'
&& startsWith(github.ref, 'refs/heads/master')
+ && github.repository == 'netdata/netdata'
}}
docker-ci:
@@ -114,6 +115,7 @@ jobs:
failure()
&& github.event_name != 'pull_request'
&& startsWith(github.ref, 'refs/heads/master')
+ && github.repository == 'netdata/netdata'
}}
normalize-tag: # Fix the release tag if needed
@@ -149,7 +151,7 @@ jobs:
id: release-tags
if: github.event.inputs.version != 'nightly'
run: |
- echo "tags=netdata/netdata:latest,netdata/netdata:stable,$(.github/scripts/gen-docker-tags.py ${{ needs.normalize-tag.outputs.tag }})" \
+ echo "tags=netdata/netdata:latest,netdata/netdata:stable,$(.github/scripts/gen-docker-tags.py ${{ needs.normalize-tag.outputs.tag }} '')" \
>> "${GITHUB_ENV}"
- name: Determine which tags to use
id: nightly-tags
@@ -168,6 +170,7 @@ jobs:
uses: docker/setup-buildx-action@v2
- name: Docker Hub Login
id: login
+ if: github.repository == 'netdata/netdata'
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
@@ -177,7 +180,7 @@ jobs:
uses: docker/build-push-action@v3
with:
platforms: linux/amd64,linux/i386,linux/arm/v7,linux/arm64,linux/ppc64le
- push: true
+ push: ${{ github.repository == 'netdata/netdata' }}
tags: ${{ env.tags }}
build-args: OFFICIAL_IMAGE=${{ env.OFFICIAL_IMAGE }}
- name: Failure Notification
@@ -204,9 +207,10 @@ jobs:
failure()
&& github.event_name != 'pull_request'
&& startsWith(github.ref, 'refs/heads/master')
+ && github.repository == 'netdata/netdata'
}}
- name: Trigger Helmchart PR
- if: github.event_name == 'workflow_dispatch' && github.event.inputs.version != 'nightly'
+ if: github.event_name == 'workflow_dispatch' && github.event.inputs.version != 'nightly' && github.repository == 'netdata/netdata'
uses: benc-uk/workflow-dispatch@v1
with:
token: ${{ secrets.NETDATABOT_GITHUB_TOKEN }}
@@ -214,3 +218,81 @@ jobs:
workflow: Agent Version PR
ref: refs/heads/master
inputs: '{"agent_version": "${{ needs.normalize-tag.outputs.tag }}"}'
+
+ docker-dbg-publish:
+ if: github.event_name == 'workflow_dispatch'
+ name: Docker Build and Publish (Debuging Image)
+ needs:
+ - docker-test
+ - normalize-tag
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ id: checkout
+ uses: actions/checkout@v3
+ with:
+ submodules: recursive
+ - name: Determine which tags to use
+ id: release-tags
+ if: github.event.inputs.version != 'nightly'
+ run: |
+ echo "tags=netdata/netdata-debug:latest,netdata/netdata-debug:stable,$(.github/scripts/gen-docker-tags.py ${{ needs.normalize-tag.outputs.tag }} '-debug')" \
+ >> "${GITHUB_ENV}"
+ - name: Determine which tags to use
+ id: nightly-tags
+ if: github.event.inputs.version == 'nightly'
+ run: |
+ echo "tags=netdata/netdata-debug:latest,netdata/netdata-debug:edge" >> "${GITHUB_ENV}"
+ - name: Mark image as official
+ id: env
+ if: github.repository == 'netdata/netdata'
+ run: echo "OFFICIAL_IMAGE=true" >> "${GITHUB_ENV}"
+ - name: Setup QEMU
+ id: qemu
+ uses: docker/setup-qemu-action@v2
+ - name: Setup Buildx
+ id: buildx
+ uses: docker/setup-buildx-action@v2
+ - name: Docker Hub Login
+ id: login
+ if: github.repository == 'netdata/netdata'
+ 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@v3
+ with:
+ platforms: linux/amd64,linux/i386,linux/arm/v7,linux/arm64,linux/ppc64le
+ push: ${{ github.repository == 'netdata/netdata' }}
+ tags: ${{ env.tags }}
+ build-args: |
+ OFFICIAL_IMAGE=${{ env.OFFICIAL_IMAGE }}
+ DEBUG_BUILD=1
+ - name: Failure Notification
+ uses: rtCamp/action-slack-notify@v2
+ env:
+ SLACK_COLOR: 'danger'
+ SLACK_FOOTER: ''
+ SLACK_ICON_EMOJI: ':github-actions:'
+ SLACK_TITLE: 'Docker Debug Build failed:'
+ SLACK_USERNAME: 'GitHub Actions'
+ SLACK_MESSAGE: |-
+ ${{ github.repository }}: Failed to build or publish Docker debug images.
+ CHeckout: ${{ steps.checkout.outcome }}
+ Generate release tags: ${{ steps.release-tags.outcome }}
+ Generate nightly tags: ${{ steps.nightly-tags.outcome }}
+ Setup environment: ${{ steps.env.outcome }}
+ Setup QEMU: ${{ steps.qemu.outcome }}
+ Setup buildx: ${{ steps.buildx.outcome }}
+ Authenticate against DockerHub: ${{ steps.login.outcome }}
+ Build and publish images: ${{ steps.build.outcome }}
+ SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
+ if: >-
+ ${{
+ failure()
+ && github.event_name != 'pull_request'
+ && startsWith(github.ref, 'refs/heads/master')
+ && github.repository == 'netdata/netdata'
+ }}
diff --git a/.github/workflows/packagecloud.yml b/.github/workflows/packagecloud.yml
new file mode 100644
index 00000000..ba70c177
--- /dev/null
+++ b/.github/workflows/packagecloud.yml
@@ -0,0 +1,36 @@
+---
+# Runs PackageCloud cleanup every day at 9pm
+name: PackageCloud Cleanup
+on:
+ schedule:
+ - cron: '0 21 * * *'
+ workflow_dispatch: null
+
+jobs:
+ cleanup:
+ name: PackageCloud Cleanup
+ runs-on: ubuntu-latest
+ if: github.repository == 'netdata/netdata'
+ strategy:
+ fail-fast: false
+ matrix:
+ repos:
+ - stable
+ - edge
+ - devel
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ id: checkout
+ with:
+ submodules: recursive
+ - name: Prepare environment
+ id: prepare
+ run: |
+ pip3 install requests python-dateutil
+ - name: Run PackageCloud Cleanup
+ id: cleanup
+ env:
+ PKGCLOUD_TOKEN: ${{ secrets.PACKAGE_CLOUD_API_KEY }}
+ run: |
+ python3 .github/scripts/netdata-pkgcloud-cleanup.py -r ${{ matrix.repos }}
diff --git a/.github/workflows/packaging.yml b/.github/workflows/packaging.yml
index d793d48a..ec4e42c0 100644
--- a/.github/workflows/packaging.yml
+++ b/.github/workflows/packaging.yml
@@ -46,7 +46,7 @@ jobs:
import json
import re
FULL_CI_REGEX = '/actions run full ci'
- ALWAYS_RUN_ARCHES = ["amd64"]
+ ALWAYS_RUN_ARCHES = ["amd64", "x86_64"]
PR_BODY = """${{ github.event.pull_request.body }}"""
yaml = YAML(typ='safe')
entries = list()
@@ -65,14 +65,14 @@ jobs:
entries.append({
'distro': data['include'][i]['distro'],
'version': data['include'][i]['version'],
- 'pkgclouddistro': data['include'][i]['packages']['repo_distro'],
+ 'repo_distro': data['include'][i]['packages']['repo_distro'],
'format': data['include'][i]['packages']['type'],
'base_image': data['include'][i]['base_image'] if 'base_image' in data['include'][i] else data['include'][i]['distro'],
'platform': data['platform_map'][arch],
'arch': arch
})
- entries.sort(key=lambda k: (k['arch'], k['distro'], k['version']))
+ entries.sort(key=lambda k: (data['arch_order'].index(k['arch']), k['distro'], k['version']))
matrix = json.dumps({'include': entries}, sort_keys=True)
print('Generated Matrix: ' + matrix)
print('::set-output name=matrix::' + matrix)
@@ -94,6 +94,7 @@ jobs:
failure()
&& github.event_name != 'pull_request'
&& startsWith(github.ref, 'refs/heads/master')
+ && github.repository == 'netdata/netdata'
}}
version-check:
@@ -149,6 +150,7 @@ jobs:
failure()
&& github.event_name != 'pull_request'
&& startsWith(github.ref, 'refs/heads/master')
+ && github.repository == 'netdata/netdata'
}}
build:
@@ -214,28 +216,38 @@ 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: SSH setup
+ id: ssh-setup
+ if: github.event_name == 'workflow_dispatch' && github.repository == 'netdata/netdata'
+ continue-on-error: true
+ uses: shimataro/ssh-key-action@v2
+ with:
+ key: ${{ secrets.NETDATABOT_PACKAGES_SSH_KEY }}
+ name: id_ecdsa
+ known_hosts: ${{ secrets.PACKAGES_KNOWN_HOSTS }}
+ - name: Upload to packages.netdata.cloud
+ id: package-upload
+ continue-on-error: true
+ if: github.event_name == 'workflow_dispatch' && github.repository == 'netdata/netdata'
+ run: |
+ .github/scripts/package-upload.sh \
+ ${{ matrix.repo_distro }} \
+ ${{ matrix.arch }} \
+ ${{ matrix.format }} \
+ ${{ needs.version-check.outputs.repo }}
- name: Upload to PackageCloud
id: upload
- if: github.event_name == 'workflow_dispatch'
+ if: github.event_name == 'workflow_dispatch' && github.repository == 'netdata/netdata'
shell: bash
env:
PKG_CLOUD_TOKEN: ${{ secrets.PACKAGE_CLOUD_API_KEY }}
run: |
printf "Packages to upload:\n%s" "$(ls artifacts/*.${{ matrix.format }})"
for pkgfile in artifacts/*.${{ matrix.format }} ; do
- .github/scripts/package_cloud_wrapper.sh yank ${{ needs.version-check.outputs.repo }}/${{ matrix.pkgclouddistro }} \
+ .github/scripts/package_cloud_wrapper.sh yank ${{ needs.version-check.outputs.repo }}/${{ matrix.repo_distro }} \
"$(basename "${pkgfile}")" || true
- .github/scripts/package_cloud_wrapper.sh push ${{ needs.version-check.outputs.repo }}/${{ matrix.pkgclouddistro }} "${pkgfile}"
+ .github/scripts/package_cloud_wrapper.sh push ${{ needs.version-check.outputs.repo }}/${{ matrix.repo_distro }} "${pkgfile}"
done
- - name: Clean
- id: cleanup
- if: github.event_name == 'workflow_dispatch'
- shell: bash
- env:
- REPO: ${{ needs.version-check.outputs.repo }}
- PKG_CLOUD_TOKEN: ${{ secrets.PACKAGE_CLOUD_API_KEY }}
- PACKAGE_CLOUD_RETENTION_DAYS: ${{ needs.version-check.outputs.retention }}
- run: .github/scripts/old_package_purging.sh
- name: Failure Notification
uses: rtCamp/action-slack-notify@v2
env:
@@ -244,19 +256,21 @@ jobs:
SLACK_TITLE: 'Package Build failed:'
SLACK_USERNAME: 'GitHub Actions'
SLACK_MESSAGE: |-
- ${{ github.repository }}: ${{ matrix.pkgclouddistro }} ${{ matrix.version }} package build for ${{ matrix.arch }} failed.
+ ${{ github.repository }}: ${{ matrix.repo_distro }} ${{ matrix.version }} package build for ${{ matrix.arch }} failed.
Checkout: ${{ steps.checkout.outcome }}
Setup QEMU: ${{ steps.qemu.outcome }}
Setup Docker: ${{ steps.docker-config.outcome }}
Fetch images: ${{ steps.fetch-images.outcome }}
Build: ${{ steps.build.outcome }}
Test: ${{ steps.test.outcome }}
- Publish: ${{ steps.upload.outcome }}
- Cleanup: ${{ steps.cleanup.outcome }}
+ Import SSH Key: ${{ steps.ssh-setup.outcome }}
+ Publish to packages.netdata.cloud: ${{ steps.package-upload.outcome }}
+ Publish to PackageCloud: ${{ steps.upload.outcome }}
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
if: >-
${{
failure()
&& github.event_name != 'pull_request'
&& startsWith(github.ref, 'refs/heads/master')
+ && github.repository == 'netdata/netdata'
}}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index ae28c001..e16ecaba 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -41,7 +41,8 @@ jobs:
${{ github.repository }} \
${{ github.event_name }} \
${{ github.event.inputs.type }} \
- ${{ github.event.inputs.version }}
+ ${{ github.event.inputs.version }} \
+ ${{ secrets.NETDATA_RELEASE_TEST }}
- name: Generate Nightly Changleog
id: nightly-changelog
if: steps.target.outputs.run == 'true' && steps.target.outputs.type == 'nightly'
@@ -111,7 +112,7 @@ jobs:
name: Trigger artifact builds
runs-on: ubuntu-latest
needs: update-changelogs
- if: ${{ needs.update-changelogs.outputs.run }} == 'true'
+ if: needs.update-changelogs.outputs.run == 'true'
steps:
- name: Checkout
id: checkout
@@ -146,7 +147,7 @@ jobs:
name: Trigger docker builds
runs-on: ubuntu-latest
needs: update-changelogs
- if: ${{ needs.update-changelogs.outputs.run }} == 'true'
+ if: needs.update-changelogs.outputs.run == 'true'
steps:
- name: Checkout
id: checkout
@@ -181,7 +182,7 @@ jobs:
name: Trigger package builds
runs-on: ubuntu-latest
needs: update-changelogs
- if: ${{ needs.update-changelogs.outputs.run }} == 'true'
+ if: needs.update-changelogs.outputs.run == 'true'
steps:
- name: Checkout
id: checkout
diff --git a/.github/workflows/repoconfig-packages.yml b/.github/workflows/repoconfig-packages.yml
index b0600cc0..824ddd34 100644
--- a/.github/workflows/repoconfig-packages.yml
+++ b/.github/workflows/repoconfig-packages.yml
@@ -7,12 +7,14 @@ on:
paths:
- packaging/repoconfig/**
- .github/workflows/repoconfig-packages.yml
+ - .github/data/distros.yml
push:
branches:
- master
paths:
- packaging/repoconfig/**
- .github/workflows/repoconfig-packages.yml
+ - .github/data/distros.yml
env:
DISABLE_TELEMETRY: 1
REPO_PREFIX: netdata/netdata
@@ -50,11 +52,10 @@ jobs:
'pkgclouddistro': data['include'][i]['packages']['repo_distro'],
'format': data['include'][i]['packages']['type'],
'base_image': data['include'][i]['base_image'] if 'base_image' in data['include'][i] else data['include'][i]['distro'],
- 'platform': data['platform_map']['amd64'],
- 'arch': 'amd64'
+ 'platform': data['platform_map']['amd64']
})
- entries.sort(key=lambda k: (k['arch'], k['distro'], k['version']))
+ entries.sort(key=lambda k: (k['distro'], k['version']))
matrix = json.dumps({'include': entries}, sort_keys=True)
print('Generated Matrix: ' + matrix)
print('::set-output name=matrix::' + matrix)
@@ -76,6 +77,7 @@ jobs:
failure()
&& github.event_name != 'pull_request'
&& startsWith(github.ref, 'refs/heads/master')
+ && github.repository == 'netdata/netdata'
}}
build:
@@ -113,6 +115,35 @@ jobs:
docker run --security-opt seccomp=unconfined -e DISABLE_TELEMETRY=1 --platform ${{ matrix.platform }} \
-v "$PWD":/netdata ${{ matrix.base_image }}:${{ matrix.version }} \
/netdata/packaging/repoconfig/build-${{ matrix.format }}.sh
+ - name: SSH setup
+ id: ssh-setup
+ if: github.event_name == 'workflow_dispatch'
+ continue-on-error: true
+ uses: shimataro/ssh-key-action@v2
+ with:
+ key: ${{ secrets.NETDATABOT_PACKAGES_SSH_KEY }}
+ name: id_ecdsa
+ known_hosts: ${{ secrets.PACKAGES_KNOWN_HOSTS }}
+ - name: Upload to packages.netdata.cloud
+ id: package-upload
+ continue-on-error: true
+ if: github.event_name == 'workflow_dispatch'
+ run: |
+ .github/scripts/package-upload.sh \
+ ${{ matrix.repo_distro }} \
+ ${{ matrix.arch }} \
+ ${{ matrix.format }} \
+ netdata/netdata
+ .github/scripts/package-upload.sh \
+ ${{ matrix.repo_distro }} \
+ ${{ matrix.arch }} \
+ ${{ matrix.format }} \
+ netdata/netdata-edge
+ .github/scripts/package-upload.sh \
+ ${{ matrix.repo_distro }} \
+ ${{ matrix.arch }} \
+ ${{ matrix.format }} \
+ netdata/netdata-repoconfig
- name: Upload Packages
id: publish
if: github.event_name != 'pull_request' && github.repository == 'netdata/netdata'
@@ -133,7 +164,7 @@ jobs:
.github/scripts/package_cloud_wrapper.sh push "${REPO_PREFIX}-repoconfig/${{ matrix.pkgclouddistro }}" "${pkgfile}"
done
- name: Failure Notification
- if: ${{ failure() }}
+ if: ${{ failure() && github.repository == 'netdata/netdata' }}
uses: rtCamp/action-slack-notify@v2
env:
SLACK_COLOR: 'danger'
@@ -146,5 +177,7 @@ jobs:
Checkout: ${{ steps.checkout.outcome }}
Fetch images: ${{ steps.fetch-images.outcome }}
Build: ${{ steps.build.outcome }}
- Publish: ${{ steps.publish.outcome }}
+ Import SSH Key: ${{ steps.ssh-setup.outcome }}
+ Publish to packages.netdata.cloud: ${{ steps.package-upload.outcome }}
+ Publish to PackageCloud: ${{ steps.publish.outcome }}
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}