Skip to content

Commit b3574be

Browse files
committed
architecture: stop describing Azure Pipelines' individual tasks
We no longer use Azure Pipelines (having traded their flexibility for the increased transparency of GitHub workflows). In other words, the exact steps can be inspected by everyone now, in https://github.com/gitgitgadget-workflows/gitgitgadget-workflows. Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 48d699e commit b3574be

File tree

1 file changed

+0
-55
lines changed

1 file changed

+0
-55
lines changed

content/architecture.md

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -43,61 +43,6 @@ A secondary benefit of mirroring the `gitster/git` branches is that PRs at `gitg
4343

4444
While the workflow that synchronizes with `gitster/git` is a scheduled workflow that is runs once per day, the workflow that synchronizes with `git/git` is triggered immediately (via `push` events, thanks to a read-only version of GitGitGadget's GitHub App being installed on the latter repository).
4545

46-
### What do the pipelines do, exactly?
47-
48-
The pipeline that mirrors gitster/git into gitgitgadget/git (the pipeline names cannot contain slashes, that's why the `/` was replaced by a `.`) has two tasks:
49-
50-
1. Synchronize branch:
51-
```bash
52-
case "$(Build.SourceBranch)" in
53-
refs/heads/*)
54-
refspec="+HEAD:$(Build.SourceBranch)"
55-
;;
56-
refs/tags/*)
57-
refspec="$(Build.SourceBranch)"
58-
;;
59-
*)
60-
echo "Cannot handle '$(Build.SourceBranch)'" >&2
61-
exit 1
62-
;;
63-
esac
64-
65-
git -c http."https://github.com/gitgitgadget/git".extraheader="Authorization: Basic $(gitgitgadget.push.token.base64)" \
66-
push https://github.com/gitgitgadget/git "$refspec"
67-
```
68-
2. Synchronize tags (if necessary):
69-
```bash
70-
die () {
71-
echo "$*" >&2
72-
exit 1
73-
}
74-
75-
for d in git gitgitgadget
76-
do
77-
git ls-remote --tags https://github.com/$d/git | grep -v '\^{}$' | sort >tags.$d ||
78-
die "Could not enumerate tags in $d"
79-
done
80-
81-
refspec="$(comm -23 tags.git tags.gitgitgadget | tr '\t' :)" ||
82-
die "Could figure out missing tags"
83-
84-
if test -z "$refspec"
85-
then
86-
echo "##vso[task.complete result=Skipped]No tags to synchronize!"
87-
else
88-
git -c http."https://github.com/gitgitgadget/git".extraheader="Authorization: Basic $(gitgitgadget.push.token.base64)" \
89-
push https://github.com/gitgitgadget/git $refspec
90-
fi
91-
```
92-
93-
That second task is necessary because there is currently no way to trigger non-YAML Azure Pipelines from tag updates. Of course this means that new tags are only synchronized together with branch updates, but in practice that's okay because the Git maintainer always pushes out the tags with corresponding branches.
94-
95-
This task mirrors tags from the git/git repository, even if the pipeline purports to mirror `gitster/git` to `gitgitgadget/git`; This is a deliberate decision, to make sure that we only mirror the "official tags" from the authoritative repository.
96-
97-
The two pipelines are identical except for these aspects:
98-
- The `gitster/git` repository contains substantially more branches. The only `git/git` branch that is missing from `gitster/git` is `todo`, which [we might parse at some stage to provided concise excerpts from the "What's cooking" mails](https://github.com/gitgitgadget/gitgitgadget/issues/152).
99-
- For technical reasons, the `git/git` pipeline does not need to poll.
100-
10146
### Git GUI's branches
10247

10348
As GitGitGadget can also be used to contribute Git GUI patches and patch series, there is also the [Synchronize git-gui.git (branches only) to GitGitGadget](https://dev.azure.com/gitgitgadget/git/_build?definitionId=10) pipeline. It mirrors the branches of Pratyush Yadav's repository (i.e. the former Git GUI maintainer's authoritative repository) into the `git-gui/*` namespace on `gitgitgadget/git`.

0 commit comments

Comments
 (0)