adoptium / aqa-tests

Home of test infrastructure for Adoptium builds
https://adoptium.net/aqavit
Apache License 2.0
128 stars 308 forks source link

Add GitHub Actions to openjdk-tests project #1766

Open sophia-guo opened 4 years ago

sophia-guo commented 4 years ago

To automate and improve efficiency of the project we are thinking to enable a set of GitHub Actions. GitHub Actions allow unlimited minutes for workflows on open sourced projects, which could automate common tasks easily.

Examples:

  1. Mark/Close Stale Issues/PRs It is in the interest of the project to keep the number of issues down, and to have a healthy pipeline of pull requests getting merged and not languishing.

Close Stale Issues and PRs uses a cron job to look through all issues/PRs in the repository and if the issue/PR has not been modified for a period of time, it adds a stale label (configurable) to the issue/PR and optionally comments on the issue.

If the stale label is present for an additional amount of time, the issue/PR is eventually closed.

This Action helps to maintain the number of issues/PRs on the repository which can easily get out of hand. The common scenario is someone opening up a WIP: PR and never completing it, but not closing the PR off. Or for example opening up an issue to ask a question and then not closing the issue once the answer is posted. Such issues clutter the queue needlessly and give the appearance of "too many problems" or "too big of a queue to get something contributed" on the repository.

The automation can be overridden by either a committer removing the stale label, or any contributor simply commenting on the issue/PR.

  1. Pull Request Labeler Committers spend a non-trivial amount of time looking through pull request changes and adding appropriate labels so that other committers can use label filters to identify commits which they may want to review. This task can be almost completely automated, thus saving effort for the committer team. The contributor can also remove the label manually.

Pull Request Labeler triages PRs based on the paths that are modified in the PR.

Examples: https://github.com/sophia-guo/openjdk-tests/pull/1

We could also create our own actions to fit the specific requirement. This is open discussion and could be a general discussion in the AdoptOpenJDK community.

sophia-guo commented 4 years ago

@karianna notice that you did a quick and great job of labelling. Are you using any other mechanism?

smlambert commented 4 years ago

@sophia-guo - I believe some of the labeling you are noticing is done via project automation that @karianna setup (when new issues are opened, they are automatically added to the TODO column of our openjdk-tests project).

Screen Shot 2020-06-09 at 7 55 06 PM
karianna commented 4 years ago

It's partly that and I do a daily sweep of all open items as well :-). One of the challenges is that GitHub's support for this improved over time but you can't migrate projects to the 'newer' automation process :-(.

smlambert commented 4 years ago

We do appreciate your daily custodial sweep, thanks @karianna !

sophia-guo commented 4 years ago

I see it's project boards. Good to learn that!

smlambert commented 3 years ago

I think we are in agreement that the 2 suggested 'helper' workflows would be of benefit, especially the stale issues one... given I am manually reviewing older issues to see if I can close them. We should either include these or close this issue as won't fix.