This repository has been archived by the owner on Aug 29, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add a README with a high-level description (#12)
* add a README with a high-level description * use relative links * add a Usage section to the README * improve description of go-check * fix description of go-test
- Loading branch information
1 parent
bd4fed0
commit e5f9b96
Showing
1 changed file
with
22 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# CI Workflows | ||
|
||
This repository contains GitHub Actions workflows used by various IPLD repositories. | ||
By storing them in a central place (here), and distributing them in an automated way, we solve multiple problems: | ||
1. Consistency: Every participating repository uses the same workflow, ensuring that our code adheres to the same coding standards and is properly tested. | ||
2. Maintainability: Workflows change over time. We need to be able to make changes without manually updating dozens of repositories. | ||
|
||
## Technical Details | ||
|
||
This repository currently defines two workflows for Go repositories: | ||
* [go-check](workflow-templates/go-check.yml): Performs static analysis, style, and formatting checks to help improve the code quality. | ||
* [go-test](workflow-templates/go-test.yml): Runs all tests, using different compiler versions and operating systems. | ||
|
||
Whenever one of these workflows is changed, this repository runs the [copy workflow](.github/workflows/copy-workflow.yml). This workflow creates a pull request in every participating repository to update *go-check* and *go-test*. | ||
In order to help with the distribution of these workflows, this repository defines two additional workflows that are distributed across participating repositories: | ||
* [autorebase](workflow-templates/autorebase.yml): Assume that we update *go-test* here, and this change uncovers a bug in one of the repositories. After this bug has to be fixed in that repo, commenting `@ipldbot rebase` on the pull request will trigger a rebase of that PR, such that we can be sure that the intended fix actually allows this workflow to pass. | ||
* [automerge](workflow-templates/automerge.yml): In most cases, an update to the workflows will not cause CI to fail in most participating repositories. To make our life easier, *automerge* automatically merges the pull request if all checks succeed. | ||
|
||
## Usage | ||
|
||
Workflows are distributed to all repositories listed in [config.json](.github/workflows/config.json). | ||
If you want your project to participle, please send a PR! |