|
1 | | -[](https://GitHub.com/pyTooling/SynchronizeForks/actions/workflows/Verification.yml) |
| 1 | +[](https://GitHub.com/pyTooling/SynchronizeForks/actions/workflows/Pipeline.yml) |
2 | 2 | [](LICENSE.md) |
3 | 3 |
|
4 | 4 | # Synchronize Forks |
@@ -288,6 +288,25 @@ fields are worth a look while converting: `<upstream>` is reported in the progre |
288 | 288 | placeholder there makes the log name the wrong repository, and adding tag patterns is what stops the fork from drifting |
289 | 289 | behind in releases. |
290 | 290 |
|
| 291 | +## Pipeline |
| 292 | +
|
| 293 | +[`Pipeline.yml`](.github/workflows/Pipeline.yml) runs the action against the fixtures in `tests/` in dry-run mode — |
| 294 | +three jobs, no token, no repository touched. Beyond that it releases itself, with reusable workflows from |
| 295 | +[pyTooling/Actions](https://github.com/pyTooling/Actions): |
| 296 | +
|
| 297 | +* **`PrepareJob.yml`** classifies the run — which branch or tag, a regular or a merge commit, a release commit or a |
| 298 | + release tag — so the two jobs below know whether they apply. |
| 299 | +* **`TagReleaseCommit.yml`** turns a merge commit on `main` into a tag named after the release pull-request's title |
| 300 | + (`v1.0.0`), and starts this pipeline again on that tag. A tag pushed with the automatic `GITHUB_TOKEN` doesn't |
| 301 | + trigger a workflow, which is why the pipeline is dispatched explicitly — and why this file has to be called |
| 302 | + `Pipeline.yml`. |
| 303 | +* **`PublishReleaseNotes.yml`** runs on the tagged pipeline, once the same three jobs pass, and publishes the release |
| 304 | + page. Its description is the body of the pull-request that produced the tagged merge commit; the workflow finds that |
| 305 | + pull-request from the merge commit itself. |
| 306 | +
|
| 307 | +So a release is one merge: open a `dev` → `main` pull-request titled `vMM.mm.pp`, write the release notes in its |
| 308 | +description, and merge it. |
| 309 | +
|
291 | 310 | ## Dependencies |
292 | 311 |
|
293 | 312 | * [GitHub CLI (`gh`)](https://cli.github.com/), pre-installed on GitHub-hosted runners. |
|
0 commit comments