Streaming improvements #1 (#19137) #157
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
--- | |
# CI workflow used to regenerate `integrations/integrations.js` and accompanying documentation when relevant source files are changed. | |
name: Generate Integrations | |
on: | |
push: | |
branches: | |
- master | |
paths: # If any of these files change, we need to regenerate integrations.js. | |
- 'src/collectors/**/metadata.yaml' | |
- 'src/go/plugin/**/metadata.yaml' | |
- 'src/exporting/**/metadata.yaml' | |
- 'src/health/notifications/**/metadata.yaml' | |
- 'integrations/templates/**' | |
- 'integrations/categories.yaml' | |
- 'integrations/deploy.yaml' | |
- 'integrations/cloud-notifications/metadata.yaml' | |
- 'integrations/cloud-authentication/metadata.yaml' | |
- 'integrations/gen_integrations.py' | |
workflow_dispatch: null | |
concurrency: # This keeps multiple instances of the job from running concurrently for the same ref. | |
group: integrations-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
generate-integrations: | |
name: Generate Integrations | |
runs-on: ubuntu-latest | |
if: github.repository == 'netdata/netdata' | |
steps: | |
- name: Checkout Agent | |
id: checkout-agent | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
submodules: recursive | |
- name: Prepare Dependencies | |
id: prep-deps | |
run: | | |
sudo apt-get install python3-venv | |
python3 -m venv ./virtualenv | |
source ./virtualenv/bin/activate | |
pip install jsonschema referencing jinja2 ruamel.yaml | |
- name: Generate Integrations | |
id: generate | |
run: | | |
source ./virtualenv/bin/activate | |
python3 integrations/gen_integrations.py | |
- name: Generate Integrations Documentation | |
id: generate-integrations-documentation | |
run: | | |
python3 integrations/gen_docs_integrations.py | |
- name: Generate src/collectors/COLLECTORS.md | |
id: generate-collectors-md | |
run: | | |
python3 integrations/gen_doc_collector_page.py | |
- name: Clean Up Temporary Data | |
id: clean | |
run: rm -rf go.d.plugin virtualenv integrations/integrations.js integrations/integrations.json | |
- name: Create PR | |
id: create-pr | |
uses: peter-evans/create-pull-request@v7 | |
with: | |
token: ${{ secrets.NETDATABOT_GITHUB_TOKEN }} | |
commit-message: Regenerate integrations docs | |
branch: integrations-regen | |
title: Regenerate integrations docs | |
body: | | |
Regenerate the integrations docs based on the | |
latest metadata yaml code. | |
This PR was auto-generated by | |
`.github/workflows/generate-integrations.yml`. | |
- name: Failure Notification | |
uses: rtCamp/action-slack-notify@v2 | |
env: | |
SLACK_COLOR: 'danger' | |
SLACK_FOOTER: '' | |
SLACK_ICON_EMOJI: ':github-actions:' | |
SLACK_TITLE: 'Integrations regeneration failed:' | |
SLACK_USERNAME: 'GitHub Actions' | |
SLACK_MESSAGE: |- | |
${{ github.repository }}: Failed to create PR rebuilding integrations.js | |
Checkout Agent: ${{ steps.checkout-agent.outcome }} | |
Prep python env and deps: ${{ steps.prep-deps.outcome }} | |
Generate Integrations: ${{ steps.generate.outcome }} | |
Generate Integrations Documentation: ${{ steps.generate-integrations-documentation.outcome }} | |
Generate src/collectors/COLLECTORS.md: ${{ steps.generate-collectors-md.outcome }} | |
Clean Up Temporary Data: ${{ steps.clean.outcome }} | |
Create PR: ${{ steps.create-pr.outcome }} | |
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }} | |
if: >- | |
${{ | |
failure() | |
&& startsWith(github.ref, 'refs/heads/master') | |
&& github.repository == 'netdata/netdata' | |
}} |