-
Epic
-
Resolution: Done
-
Undefined
-
None
-
None
-
None
-
Containerising and automating the tools that we use for Bug triage and CI health reports.
-
False
-
-
False
-
To Do
-
0% To Do, 0% In Progress, 100% Done
Background
Currently, the ansible-network-triager is manually executed to post an email outlining upstream bugs that need to be triaged. Additionally, a CI script is manually run to verify the success of our nightly scheduled CI runs. Both tools require manual intervention to execute.
User Stories
- Combine Tools into a Single Triager:
- Merge the CI script into the existing triager tool.
- Expose proper CLI options to manage input parameters.
- We should consider renaming the tool to something more generic and not specific to the networking team.
- Centralized Configuration:
- Both tools should rely on a single config.yaml file.
- This file will contain:
- Information about repositories on which to generate reports.
- A section with the list of email recipients.
- A password field for sending emails. If the password is not present, the tool should prompt for it via CLI args or input.
- Publishing on PyPI:
- The combined tool should be packaged and published on PyPI for easy distribution and use.
- GitHub Actions Integration:
- Implement GitHub Actions for automated scheduling.
- Configure two schedules:
- Bug triage emails should be triggered every Wednesday at 2:30 PM IST.
- The CI report tool should run daily at 12:00 PM IST.
- Ensure proper secret management for email credentials using GitHub Actions' secrets feature.
- Store email recipients as environment variables to protect their privacy.
- Docker Integration:
- Create a Dockerfile and utilize Docker Compose to host the tool in a containerized environment.
- This will enable easy consumption of the tool in a containerized setup.
- Template-based Configurations:
- Implement templating capabilities to populate the config.yaml file with necessary information dynamically.
Supporting documentation
<include links to technical docs, diagrams, etc>
https://gist.github.com/KB-perByte/e2e8a83fbbb05b294ebbaea0d10438be Nightly CI tool
https://github.com/ansible-network/ansible-network-triager Network triager
Ready-Ready
https://docs.google.com/document/d/1dBW492UfCR5JxUvcx6efjYP_ibCdiwGONS-sxDb_SPU/edit#
Complete Ready-Ready checklist
Definition of Done
- Tool Integration:
-
- The CI script is successfully merged into the ansible-network-triager tool.
- CLI options are exposed to handle input parameters effectively.
- Configuration Management:
-
- A single config.yaml file is used for both tools, containing repository information, email recipients, and password management.
- The tool prompts for email password if not found in the configuration file.
- PyPI Publishing:
-
- The combined tool is packaged and published on PyPI, available for easy installation.
- GitHub Actions:
-
- Automated schedules are set up in GitHub Actions:
- Bug triage emails are sent every Wednesday at 2:30 PM IST.
- CI report is generated daily at 12:00 PM IST.
- Email credentials and recipients are managed securely using GitHub Actions secrets and environment variables.
- Automated schedules are set up in GitHub Actions:
- Docker Integration:
-
- A Dockerfile and Docker Compose setup are created, allowing the tool to run in a containerized environment.
- Template Support:
-
- Templating functionality is added to dynamically populate the config.yaml file. (needed for other teams to adapt to the tool)
- Secret Management:
-
- All sensitive data, such as email credentials, are securely managed and not exposed in public configurations.