docs: Windows notification test checklist + GPG signing steps

This commit is contained in:
2026-08-14 11:05:59 -04:00
parent 35c6b98aec
commit 4289d2d0ba
2 changed files with 69 additions and 1 deletions
+7
View File
@@ -107,9 +107,16 @@ jobs:
- name: Sign artifacts
if: ${{ secrets.GPG_PRIVATE_KEY != '' }}
env:
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
run: |
for f in artifacts/*/clip-sync-*; do
if [ -n "$GPG_PASSPHRASE" ]; then
gpg --batch --yes --pinentry-mode loopback \
--passphrase "$GPG_PASSPHRASE" --armor --detach-sign "$f"
else
gpg --batch --yes --armor --detach-sign "$f"
fi
done
- name: Create release
+61
View File
@@ -369,6 +369,67 @@ make sign # signer les binaires de release avec GPG
make test-race # tests avec détecteur de race
```
## Validation manuelle — notifications Windows
Le code des notifications Windows (bulle via `Shell_NotifyIconW`) compile, mais
n'a pas été validé sur un vrai poste. Voici exactement quoi tester :
1. **Installer et lancer** : sur Windows, `irm …/install.ps1 | iex`, ou `go build`
puis exécuter `clip-sync`.
2. **Activer les notifications** dans `~/.config/clip-sync/peers.toml` :
```toml
[daemon]
notify = true
```
3. **Envoyer un clip** depuis une autre machine du LAN, ou en local :
```powershell
curl -X POST http://127.0.0.1:9137/clip -H "Content-Type: application/json" `
-d '{"text":"test notification","ts":1700000000000000000,"origin":"autre-machine"}'
```
4. **Vérifier** qu'une bulle intitulée `clip-sync` apparaît dans la zone de
notification (coin bas-droit), avec le message « Clip reçu de autre-machine ».
5. **Tester une image** : activer `sync_images = true`, envoyer une image
(copier/coller d'une autre machine), vérifier la bulle « Image reçue de … ».
6. **Vérifier l'icône** : une icône clip-sync doit rester dans la barre des
tâches pendant que le daemon tourne (comportement attendu de `Shell_NotifyIcon`).
7. **Robustesse** : envoyer plusieurs clips rapprochés — pas de crash, bulles successives.
8. **Noter la différence Windows 10 vs 11** : bulle classique vs conversion en toast
(selon les réglages système), et signaler tout écart observé.
## Signer les releases (GPG)
La CI signe automatiquement les binaires si une clé est configurée. Étapes :
1. **Générer une clé** (si absente) :
```bash
gpg --full-generate-key
# choisir RSA/RSA 4096, saisir nom + email, et une passphrase
```
2. **Récupérer l'ID de la clé** (la partie après `rsa4096/`) :
```bash
gpg --list-secret-keys --keyid-format LONG
# sec rsa4096/AAAAAAAAAAAAAAAA 2026-08-14 [SC]
```
3. **Exporter la clé privée** (bloc armoré) :
```bash
gpg --armor --export-secret-keys AAAAAAAAAAAAAAAA
```
4. **Ajouter les secrets Gitea** : dépôt → *Settings* → *Actions* → *Secrets* :
- `GPG_PRIVATE_KEY` = le contenu exporté (le bloc `BEGIN PGP PRIVATE KEY BLOCK`)
- `GPG_PASSPHRASE` = la passphrase (seulement si la clé en a une)
5. **Publier une release** :
```bash
git tag v0.2.0
git push origin v0.2.0
```
La CI importe la clé, signe chaque binaire et attache les fichiers `.asc`.
6. **Vérifier** une signature :
```bash
gpg --verify clip-sync-linux-amd64.asc
```
(nécessite la clé publique : `gpg --recv-keys AAAAAAAAAAAAAAAA`, ou publiez-la
sur un serveur de clés / dans le README).
## Licence
MIT © 2026