Skip to content

Which GitHub Actions should be includedΒ #4

@lumirlumir

Description

@lumirlumir

I've gone through the entire ESLint repository and identified several workflows that would be valuable to manage in the centralized workflows repository.

Extracting common logic from these workflows will require further investigation, but I believe the following workflows are worth handling centrally.

I've marked the workflows with βœ… for those that are impactful, and ⚠️ for those that are ambiguous.

Any feedback is welcome! πŸ˜„ Here are some of the workflows:

1. renovate.json5 βœ…

I think using automated dependency management could help improve the maintainability of our projects.

Currently, only two repositories are using it, but I believe it would be beneficial to use renovate across all repositories so we can take advantage of automated dependency updates.

Alternative

Another possible alternative is dependabot, which is maintained natively by GitHub. However, I think renovate offers more useful features, so I’m in favor of using renovate.

Used in

2. add-to-triage.yml βœ…

Related Issue: #5

add-to-triage.yml is a workflow that automatically moves issues and PRs to the Triage board, using the add-to-triage GitHub Action.

As mentioned in #5, currently only 5 projects are benefiting from automated project triaging.

Manually moving issues and PRs to the triage board takes time and effort, so I hope this can be included in this repository.

Used in

3. update-readme.yml βœ…

Related Issue: #6

update-readme.yml is a workflow that automatically updates the README.md file and applies the latest sponsorship information.

Maintaining this workflow manually in every repository can cause a few issues:

  • You need to create tools/commit-readme.sh, tools/update-readme.js, and .github/workflows/update-readme.yml in each repository.
  • The got package must be installed just to update the sponsorship badge in the README.md.

Used in

4. bun-test.yml βœ…

I think it's a good practice to test against various runtimes when developing libraries. I'd like to include this workflow in the centralized repository so it can be reused across different library repositories.

Used in

5. ci-build-all-pm.yml βœ…

Just like with bun-test.yml, I think it's a good practice to test against different package managers when developing libraries. I'd like to include this workflow in the centralized repository so it can be reused across various plugin library repositories.

6. release-please.yml ⚠️

The release-please.yml workflow is used in various repositories to manage the release process. However, since this workflow can vary depending on the project, I'm not sure if it makes sense to include it here.

Extracting only the common logicβ€”such as posting release information to various social media platformsβ€”might be a better approach.

Used in

7. ci.yml ⚠️

Just like with the release-please.yml workflow, this workflow can vary depending on the project, so I'm not sure if it makes sense to include it here.

However, since we have a package.json convention, I think extracting the common logic related to the package.json convention could be a good approach.

Since most repositories have lint or fmt scripts available, it might make sense to extract and centralize just these scripts here.

Used in

8. stale.yml ⚠️

Since we maintain a variety of projects, it's easy to lose track of certain issues or PRs. I sometimes miss notifications, issues, or PRs, which can slow down progress on certain tasks.

Personally, I’d like to see this included in the repositories to help remind authors and teams regularly.

However, I’m not completely sure if it’s worth doing πŸ˜„ so I’d like to hear team's thoughts on including this workflow here.

Used in

9. codeql-analysis.yml βœ…

CodeQL Analysis is a workflow that helps detect security vulnerabilities.

Since there have been some security issues across ESLint repositories, I think adding this workflow to our repositories would be helpful for identifying security problems in advance.

There are two ways to set up this workflow on GitHub. One is to use an explicit codeql-analysis.yml workflow, and the other is to use the default setup in the GitHub "Settings" tab.

Alternative (Default setup in GitHub "Settings" tab)

We can set up this workflow without an explicit codeql-analysis.yml file by configuring it in the "Settings" tab on GitHub.

For more details, please refer to this guide: https://docs.github.com/en/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning

Used in


Checklist

I'm using this checklist to make sure all the workflows are set up correctly in the ESLint repository πŸ˜„

  • βœ…: Completed
  • 🚧: In progress
  • ❌: Not started yet
repository add-to-triage stale renovate update-readme bun-test ci-build-all-pm
.github βœ… (pr) 🚧 (pr) ❌ ❌ ❌ ❌
code-explorer βœ… (pr) 🚧 (pr) ❌ ❌ ❌ ❌
create-config βœ… (pr) 🚧 (pr) ❌ ❌ ❌ ❌
css βœ… (automated) 🚧 (pr) ❌ ❌ ❌ ❌
csstree βœ… (pr) 🚧 (pr) ❌ ❌ ❌ ❌
eslint βœ… (automated) 🚧 (pr) ❌ ❌ ❌ ❌
eslint-github-bot βœ… (pr) 🚧 (pr) ❌ ❌ ❌ ❌
eslint-release βœ… (pr) 🚧 (pr) ❌ ❌ ❌ ❌
eslint-transforms βœ… (pr) 🚧 (pr) ❌ ❌ ❌ ❌
eslint.org βœ… (automated) 🚧 (pr) ❌ ❌ ❌ ❌
eslintrc βœ… (pr) 🚧 (pr) ❌ ❌ ❌ ❌
generator-eslint βœ… (pr) 🚧 (pr) ❌ ❌ ❌ ❌
js βœ… (automated) 🚧 (pr) ❌ ❌ ❌ ❌
json βœ… (pr) 🚧 (pr) ❌ ❌ ❌ ❌
markdown βœ… (pr) 🚧 (pr) ❌ ❌ ❌ ❌
rewrite βœ… (automated) 🚧 (pr) ❌ ❌ ❌ ❌
workflows βœ… (issue, pr) βœ… (pr) ❌ ❌ ❌ ❌
zh-hans.docs.eslint.org βœ… (pr) 🚧 (pr) ❌ ❌ ❌ ❌

Metadata

Metadata

Assignees

Labels

acceptedThere is consensus among the team that this change meets the criteria for inclusion

Type

No type

Projects

Status

Ready to Implement

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions