LF Workflow Dash is your easy solution for monitoring and managing GitHub Actions workflows.
Track workflows across any number of repositories, check status and other relevant metrics, and quickly modify via yaml, all in one customizable dashboard.
Powered by the GitHub REST API, LF Workflow Dash regularly retrieves data on specified GitHub Actions workflow runs and updates the dashboard HTML. This process is managed through scheduled GitHub workflows, and the output can be hosted easily using GitHub Pages.
Click any of the badges at the top of the README to view a dashboard.
Keep reading to learn about modifying an existing dashboard, or how to build your own dashboard.
-
Modify the YAML in this repo
Modify
config/tracked_workflows.yaml
to customize the LF dashboard. Add or remove repositories and workflows as needed. The format to follow is:repos: - repo: REPO_NAME owner: OWNER_NAME # github organization smoke-test: smoke-test.yml build-docs: build-documentation.yml benchmarks: asv-nightly.yml live-build: testing-and-coverage.yml other_workflows: # Add more workflows if necessary
We have columns for these 4 workflows, and the value should be the leaf yaml file name. If you have additional workflows, you can add them as
other_workflows
. -
Or, submit an Issue
If you'd like to suggest changes or need assistance with modifying the YAML, feel free to open an issue in this repository. We'll be happy to help!
-
Fork this Repository
Feel free to delete
rail.html
andrail_tracked_workflows.yaml
right away. -
Modify Your Tracked Workflows
Follow the instructions in Modify the LF Dashboard to make changes to your
tracked_workflows.yaml
file. -
Activate GitHub Actions
Fresh forks require manual activation of GitHub Actions. Visit the "Actions" tab in your repository and enable the workflows.
When enabled, the github workflow
.github/workflows/main.yml
will run every 15 minutes to refresh the status of your dashboard. -
Authorization
GitHub builds: Your personal access token will be automatically generated when running the workflow on GitHub.
Local builds: To build the HTML locally, run the following command in your repository:
python update_dashboard.py PERSONAL_ACCESS_TOKEN ./config/tracked_workflows.yaml index.html
You can generate a personal access token following these GitHub token generation steps.
Feel free to replace
tracked_workflows.yaml
with whatever input yaml you'd like; likewise, replaceindex.html
with your desired output path. -
Page Title, Favicon, and Footer
Remember to customize your
<title>
tag, your favicon, and the footer at the bottom of the page that links to the dashboard's repo.Note that these need to be changed in
templates/dash_template.jinja
, as any changes made to an HTML file will be overwritten. -
GitHub Pages (Optional)
If you want to host your dashboard on GitHub Pages, you'll need to set up your repository for GitHub Pages. The github action for this repository will put the rendered HTML into a
gh-pages
branch, that should be used for hosting your Pages.Alternatively, you can use the GitHub HTML Preview Tool to see your HTML without hosting it yourself.
For example, here's LF dashboard via GitHub HTML Preview.
-
Timezones (Optional)
We specify timezones for both the commit message timestamp and the dashboard times. If you want a different timezone, update it in both
main.yml
andupdate_dashboard.py
.
That's it! You're ready to start monitoring your GitHub Actions workflows with your very own version of the LF dashboard.
Contributions are welcome!
If you have ideas for improvements or bug fixes, please feel free to open an issue or submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.