Move SealShare from GitHub to Gitea only
docker / test (8.5) (push) Successful in 2m13s
linter / quality (push) Successful in 1m8s
tests / ci (8.5) (push) Successful in 2m7s
docker / build-and-push (push) Failing after 9m54s
docker / release (push) Has been skipped

The workflows live in .gitea/workflows. The Docker workflow logs in to
the Gitea container registry with REGISTRY_TOKEN (Gitea's job token cannot
publish packages yet), publishes gitea.nonameweb.ch/nonameweb/sealshare
with a registry build cache, and makes the release on Gitea with the
version's section of the changelog as its notes.

The README, the website's quick start, both compose files and the image
label point to Gitea; the changelog announces the new image name and
links Gitea. GiteaOnlyTest keeps GitHub and ghcr.io out.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V9NnLxnPp8vaaurb3Z1MFy
This commit is contained in:
Andreas Reinhold / reini
2026-09-13 13:59:07 +02:00
co-authored by Claude Opus 5
parent 606cc766f2
commit d860a16551
12 changed files with 82 additions and 33 deletions
+44
View File
@@ -0,0 +1,44 @@
<?php
/*
* SealShare lives on Gitea only: the source at gitea.nonameweb.ch/noNameWEB/SealShare and the image
* at gitea.nonameweb.ch/nonameweb/sealshare. The changelog keeps its history, and the website's
* comparison sources link other projects' repositories, so neither is checked.
*/
test('the project points to Gitea, not GitHub, for its source, image and workflows', function () {
$files = [
'README.md',
'Dockerfile',
'.dockerignore',
'.gitattributes',
'docker-compose.yml',
'docker-compose.example.yml',
...array_map(fn (string $path): string => str($path)->after(base_path().'/')->toString(), glob(base_path('.gitea/workflows/*.yml'))),
];
foreach ($files as $file) {
expect(file_get_contents(base_path($file)))->not->toMatch('/github|ghcr\.io/i', "{$file} still refers to GitHub");
}
expect(base_path('.github'))->not->toBeDirectory()
->and(glob(base_path('.gitea/workflows/*.yml')))->not->toBeEmpty();
});
test('the website installs SealShare from Gitea', function () {
preg_match('/<section[^>]*id="install".*?<\/section>/s', file_get_contents(base_path('website/index.html')), $install);
expect($install[0])->not->toMatch('/github|ghcr\.io/i')
->toContain('gitea.nonameweb.ch/nonameweb/sealshare:latest')
->toContain('https://gitea.nonameweb.ch/noNameWEB/SealShare/raw/branch/main/docker-compose.example.yml');
});
test('images are published to the Gitea registry and releases are made on Gitea', function () {
$workflow = file_get_contents(base_path('.gitea/workflows/docker.yml'));
expect($workflow)
->toContain('registry: gitea.nonameweb.ch')
->toContain('images: gitea.nonameweb.ch/nonameweb/sealshare')
->toContain('password: ${{ secrets.REGISTRY_TOKEN }}')
->toContain('uses: https://gitea.com/actions/gitea-release-action@v1');
});