Add a manual App Store publishing workflow
Build package / php-lint (8.5) (push) Successful in 1m51s
Build package / xml-lint (push) Successful in 49s
Build package / unit-tests (push) Successful in 1m51s
Build package / php-lint (8.4) (push) Successful in 1m47s
Build package / package (push) Successful in 2m39s
Build package / php-lint (8.5) (push) Successful in 1m51s
Build package / xml-lint (push) Successful in 49s
Build package / unit-tests (push) Successful in 1m51s
Build package / php-lint (8.4) (push) Successful in 1m47s
Build package / package (push) Successful in 2m39s
appstore.yml signs the tarball of an existing v* release and registers its Gitea download URL with the App Store; it only runs on workflow_dispatch. Also adds the AGPL LICENSE and points website, bugs and repository in info.xml at the Gitea repository.
This commit is contained in:
1 parent
7612344726
commit
5bd3181f10
5 files changed
+768
-5
No files matched your search
+15
-1
@@ -71,7 +71,7 @@ php occ background-job:execute <id> --force-execute
|
||||
|
||||
`make appstore` erzeugt `build/artifacts/appstore/workflow_deck_automation.tar.gz`.
|
||||
|
||||
Die einzige Pipeline ist [`.gitea/workflows/build-main.yml`](.gitea/workflows/build-main.yml):
|
||||
Gebaut und veröffentlicht wird in [`.gitea/workflows/build-main.yml`](.gitea/workflows/build-main.yml):
|
||||
|
||||
| Job | Zweck |
|
||||
| --- | --- |
|
||||
@@ -91,6 +91,20 @@ Ablauf für ein Release:
|
||||
1. Version in `appinfo/info.xml` und `package.json` gleich anheben.
|
||||
2. Auf `main` pushen und warten, bis die Pipeline grün ist.
|
||||
3. `git tag -a vX.Y.Z -m "…" && git push origin vX.Y.Z`.
|
||||
4. Optional in den App Store: in Gitea unter *Actions* den Workflow „Publish to App Store“ von Hand starten und den Tag angeben.
|
||||
|
||||
### App Store
|
||||
|
||||
[`.gitea/workflows/appstore.yml`](.gitea/workflows/appstore.yml) läuft nur von Hand (`workflow_dispatch`). Er baut nichts selbst. Er lädt den Tarball eines vorhandenen `vX.Y.Z`-Release ohne Anmeldung herunter und prüft, ob die Version in `info.xml` zum Tag passt. Dann signiert er das Archiv (SHA-512) und meldet die Download-URL samt Signatur an die App-Store-API. Der Store lädt den Tarball danach selbst von Gitea. Die Releases müssen deshalb öffentlich erreichbar sein, und ein Tag darf nach dem Store-Upload nicht mehr verschoben werden.
|
||||
|
||||
Benötigte Repository-Secrets:
|
||||
|
||||
| Secret | Inhalt |
|
||||
| --- | --- |
|
||||
| `APPSTORE_PRIVATE_KEY` | privater Schlüssel (PEM), zu dem Nextcloud das App-Zertifikat ausgestellt hat |
|
||||
| `APPSTORE_TOKEN` | API-Token von <https://apps.nextcloud.com/account/token> |
|
||||
|
||||
Einmalig vorher: Zertifikat über [nextcloud/app-certificate-requests](https://github.com/nextcloud/app-certificate-requests) beantragen und die App auf apps.nextcloud.com registrieren. Die App wird nicht per Code-Signing (`appinfo/signature.json`) signiert. Nextcloud prüft Apps, die nicht zum Core gehören, nur dann, wenn diese Datei vorhanden ist.
|
||||
|
||||
Einzelheiten, etwa zum Verschieben eines Tags nach einem fehlgeschlagenen Build, stehen in [CLAUDE.md](CLAUDE.md).
|
||||
|
||||
|
||||
Reference in new issue
Block a user