eslint / eslint

Find and fix problems in your JavaScript code.
https://eslint.org
MIT License
24.55k stars 4.43k forks source link

Implementing a centralized repository for our GitHub Actions configurations #17856

Open aladdin-add opened 6 months ago

aladdin-add commented 6 months ago

ESLint version

HEAD

What problem do you want to solve?

Currently, our main ESLint repository benefits from the automation provided by Renovate for dependency management. However, this practice has not been uniformly adopted across all our repositories. To address this, I propose the creation of a centralized repository within our ESLint organization. This repository will not only contain configurations for Renovate but also other common GitHub Actions workflows.

Advantages of this Approach:

refs:

What do you think is the correct solution?

Creation of a Central Repository: Establish a new repository, possibly named eslint-gha-configs, to house our GitHub Actions configurations:

Participation

Additional comments

I'm sure Renovate config can be reused in this way, but I'm not sure if others (like release-please) are also feasible. help wanted!🙌

kecrily commented 6 months ago

This is definitely a good idea. No more repetitive work

voxpelli commented 6 months ago

Some prior art to this:

When it comes to renovate config, that's best stored in its own eslint/renovate-config repo, like eg voxpelli/renovate-config, as then renovate automatically adds that config in new repos, see: https://docs.renovatebot.com/config-presets/#grouporganization-level-presets

Edit:

Here are some of my reusable workflows that might be of particular inspiration:

nzakas commented 5 months ago

Sorry I missed this. This seems like a good idea to me. Let's get a few more eyes on this @eslint/eslint-team

JoshuaKGoldberg commented 5 months ago

This sounds very useful. Both for standardizing and for bringing the best of each repo's configurations to the rest of them.

It would be nice to have tooling to sync any changes from the template to downstream repositories - or vice-versa. It can easily happen that shared workflows fall out of sync when they have many downstream repos. Especially if this is to be used in both the eslint and eslint-community organizations.

https://github.com/JoshuaKGoldberg/create-typescript-app acts as a template repo with my personal workflows and a script to migrate existing repos to the workflows. I'm hoping to split a general engine out of it later this year that could be used to power script syncing useful for this scenario.

aladdin-add commented 5 months ago

as a start, I've made a repo: https://github.com/aladdin-add/eslint-gha-configs. I will try to:

nzakas commented 5 months ago

Yeah, we should just do a new repo from scratch to avoid any licensing issues. @mdjermanovic any thoughts before creating a workflows repo?

github-actions[bot] commented 4 months ago

Oops! It looks like we lost track of this issue. What do we want to do here? This issue will auto-close in 7 days without an update.

nzakas commented 4 months ago

Ping @mdjermanovic