-
-
Notifications
You must be signed in to change notification settings - Fork 2
Description
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
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
- https://github.com/eslint/rewrite/blob/main/.github/renovate.json5
- https://github.com/eslint/eslint/blob/main/.github/renovate.json5
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
- https://github.com/eslint/markdown/blob/main/.github/workflows/add-to-triage.yml
- https://github.com/eslint/create-config/blob/main/.github/workflows/add-to-triage.yml
- https://github.com/eslint/generator-eslint/blob/main/.github/workflows/add-to-triage.yml
- https://github.com/eslint/zh-hans.docs.eslint.org/blob/latest/.github/workflows/add-to-triage.yml
- https://github.com/eslint/eslint-github-bot/blob/main/.github/workflows/add-to-triage.yml
- https://github.com/eslint/eslint-release/blob/main/.github/workflows/add-to-triage.yml
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 theREADME.md
.
Used in
- https://github.com/eslint/markdown/blob/main/.github/workflows/update-readme.yml
- https://github.com/eslint/json/blob/main/.github/workflows/update-readme.yml
- https://github.com/eslint/css/blob/main/.github/workflows/update-readme.yml
- https://github.com/eslint/rewrite/blob/main/.github/workflows/update-readme.yml
- https://github.com/eslint/eslint/blob/main/.github/workflows/update-readme.yml
- https://github.com/eslint/js/blob/main/.github/workflows/update-readme.yml
- https://github.com/eslint/code-explorer/blob/main/.github/workflows/update-readme.yml
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
- https://github.com/eslint/markdown/blob/main/.github/workflows/bun-test.yml
- https://github.com/eslint/json/blob/main/.github/workflows/bun-test.yml
- https://github.com/eslint/css/blob/main/.github/workflows/bun-test.yml
- https://github.com/eslint/rewrite/blob/main/.github/workflows/bun-test.yml
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.
- https://github.com/eslint/markdown/blob/main/.github/workflows/ci-build-all-pm.yml
- https://github.com/eslint/json/blob/main/.github/workflows/ci-build-all-pm.yml
- https://github.com/eslint/css/blob/main/.github/workflows/ci-build-all-pm.yml
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
- https://github.com/eslint/markdown/blob/main/.github/workflows/release-please.yml
- https://github.com/eslint/json/blob/main/.github/workflows/release-please.yml
- https://github.com/eslint/css/blob/main/.github/workflows/release-please.yml
- https://github.com/eslint/rewrite/blob/main/.github/workflows/release-please.yml
- https://github.com/eslint/create-config/blob/main/.github/workflows/release-please.yml
- https://github.com/eslint/generator-eslint/blob/main/.github/workflows/release-please.yml
- https://github.com/eslint/csstree/blob/main/.github/workflows/release-please.yml
- https://github.com/eslint/js/blob/main/.github/workflows/release-please.yml
- https://github.com/eslint/config-inspector/blob/main/.github/workflows/release-please.yml
- https://github.com/eslint/eslint-transforms/blob/main/.github/workflows/release-please.yml
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
- https://github.com/eslint/eslint.org/blob/main/.github/workflows/ci.yml
- https://github.com/eslint/markdown/blob/main/.github/workflows/ci.yml
- https://github.com/eslint/json/blob/main/.github/workflows/ci.yml
- https://github.com/eslint/css/blob/main/.github/workflows/ci.yml
- https://github.com/eslint/rewrite/blob/main/.github/workflows/ci.yml
- https://github.com/eslint/create-config/blob/main/.github/workflows/ci.yml
- https://github.com/eslint/generator-eslint/blob/main/.github/workflows/ci.yml
- https://github.com/eslint/tsc-meetings/blob/main/.github/workflows/ci.yml
- https://github.com/eslint/js/blob/main/.github/workflows/ci.yml
- https://github.com/eslint/code-explorer/blob/main/.github/workflows/ci.yml
- https://github.com/eslint/eslint-github-bot/blob/main/.github/workflows/ci.yml
- https://github.com/eslint/eslint-transforms/blob/main/.github/workflows/ci.yml
- https://github.com/eslint/eslint-release/blob/main/.github/workflows/ci.yml
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
- https://github.com/eslint/create-config/blob/main/.github/workflows/stale.yml
- https://github.com/eslint/eslint/blob/main/.github/workflows/stale.yml
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
Type
Projects
Status