Open Source GitHub Actions for Workflow Automation
Overview
While developing research software, we have on occasion had need to implement tools to automate parts of our workflow, such as repetitive tasks, or parts of our CI/CD pipeline. Since we use GitHub to develop our research software on computational intelligence as open source projects, our choice for CI/CD and other automation is GitHub Actions, which is GitHub's built in workflow automation framework.
The remainder of this website features information on several of our open source GitHub Actions for workflow automation that we have made freely available to the community via the GitHub Marketplace. The page also features tools we have developed to assist in the development of GitHub Actions, such as our template repository for implementing GitHub Actions in Python, as well as Docker containers developed to facilitate developing GitHub Actions.
All tools available on this page are developed by Vincent A. Cicirello (see my GitHub profile as well). We are not affiliated with GitHub.
Our GitHub Actions
Our page features information about several GitHub Actions that we have developed and which are open source. These include the following (each linked to a page with more detail):
- jacoco-badge-generator: Generates coverage badges from JaCoCo reports, and enables pull request coverage checks, such as based on minimum coverage thresholds, as well as based on decreases in coverage.
- user-statistician: Generates detailed summary statistics cards in SVG format suitable to display in your GitHub Profile README or on a personal website.
- generate-sitemap: Generates XML sitemaps for static websites served from a git repository, such as GitHub Pages sites.
- javadoc-cleanup: Creates mobile-friendly documentation sites by post-processing javadocs.
- count-action-users: A meta-action that monitors and reports the number of users of one or more GitHub Actions.
Tools for Developing GitHub Actions
Our page also features information about tools that we've developed to assist in developing GitHub Actions. These are also open source, and we hope that you find them useful. They include the following (each linked to a page with more detail):
- pyaction: The pyaction Docker container is designed to support implementing Github Actions with Python. It is a python slim Docker image, that includes curl, gpg, git, and the GitHub CLI pre-installed.
- gnu-on-alpine: The gnu-on-alpine Docker container is a lightweight container to support shell scripting. It is built atop a base of Alpine Linux to keep the image size small, and then has a single layer with several GNU tools including bash, coreutils, findutils, and gawk.
- alpine-plus-plus: The alpine-plus-plus Docker container is a lightweight container to support shell scripting with git. It is built atop a base of Alpine Linux to keep the image size small, and then has a single layer with git, as well as several GNU tools including bash, coreutils, findutils, and gawk.
Blog Posts About My GitHub Actions
I occasionally post about the GitHub Actions that I've implemented and maintain, as well as other software projects on DEV.to. See my DEV.to profile for a full list of such posts. Below is a selection of blog posts about my GitHub Actions.
- Hacktoberfest 2023 Update from Maintainer of the user-statistician GitHub Action, posted on DEV on October 9, 2023.
- Hacktoberfest 2023 Contributors Wanted: Additional Translations for the user-statistician GitHub Action, posted on DEV on September 30, 2023.
- Celebrating over 2 million pulls of pyaction from the GitHub Container Registry, posted on DEV on September 2, 2023.
- JaCoCo Coverage Badges for Multi-Module Projects in GitHub Actions, posted on DEV on May 25, 2023.
- gnu-on-alpine and alpine-plus-plus: Two Lightweight Containers for Implementing GitHub Container Actions with Shell Scripting, posted on DEV on February 21, 2023.
- pyaction: Over 1 million pulls from the GitHub Container Registry, posted on DEV on February 16, 2023.
- pyaction: A Docker container with Python, git, and the GitHub CLI, posted on DEV on December 28, 2022.
- Deploy a Documentation Website for a Java Library Using GitHub Actions, posted on DEV on November 30, 2022.
- Generate an XML Sitemap for a Static Website in GitHub Actions, posted on DEV on November 23, 2022.
- Post-Process Javadoc-Generated Documentation in GitHub Actions Before Deploying to the Web, posted on DEV on November 16, 2022.
- Using GitHub Actions to Build a Java Project With Pull Request Coverage Commenting and Coverage Badges, posted on DEV on November 9, 2022.
- Hacktoberfest Progress Update: Translation Contributions Still Welcome, posted on DEV on October 12, 2022.
- Hacktoberfest Language Translation Contributors Wanted for the user-statistician GitHub Action, posted on DEV on September 30, 2022.
- Halloween Themes for the user-statistician GitHub Action, posted on DEV on September 28, 2022.
- Configuring GitHub's Linguist to Improve Repository Language Reporting, posted on DEV on August 31, 2022.
- The user-statistician GitHub Action mentioned in Awesome-README, posted on DEV on August 25, 2022.
- The jacoco-badge-generator GitHub Action is now also available as a CLI tool from PyPI, posted on DEV on July 8, 2022.
- JaCoCo coverage badges, PR coverage checks, and PR coverage comments, from GitHub Actions, posted on DEV on November 29, 2021.
- Progress and Lessons Learned Internationalizing the user-statistician GitHub Action, posted on DEV on October 13, 2021.
- Hacktoberfest Participants Help Us Internationalize the user-statistician GitHub Action, posted on DEV on September 29, 2021.
- Generate a GitHub stats SVG for your GitHub Profile README in GitHub Actions, posted on DEV on July 29, 2021.