CI: tests obligatoires avant push, abandon du tag :latest sur master #14

Merged
jcabillot merged 3 commits from fix/workflow-test-before-push into master 2026-06-13 14:28:59 -04:00
Owner

Changements

main.yaml (push sur master)

  • Adieu Docker push — plus de login/metadata/build-push vers DockerHub sur master
  • Renommage build-pushbuild (simple docker build pour valider la compilation)
  • Le push Docker est désormais uniquement géré par le workflow tag.yaml
  • Le job tag (git semver) continue de tourner après le build
  • needs: [test] déjà présent — les tests restent obligatoires avant le build

cron.yaml (nightly rebuild)

  • Ajout d'un job test avant build-push — plus de push sans tests vérifiés
  • Suppression du tag :latest — abandonné
  • Conservation du tag $TAG-latest (tag de la dernière release + -latest)

tag.yaml (push de tag)

  • Ajout d'un job test avant build-push — les tests doivent passer avant de pusher une release sur DockerHub

Résumé des flux après changement

Workflow Déclencheur Jobs Push Docker
main.yaml push master hadolint → test → build → tag (git tag only)
cron.yaml nightly 0 0 * * * hadolint → test → build-push $TAG-latest only
tag.yaml push v* tag hadolint → test → build-push vX.Y.Z + vX.Y.Z-latest
pr.yaml pull request hadolint → build-test

Closes les runs #1475 (tests manquants), #1474 (latest sur master), #1386 (latest sur cron)

## Changements ### main.yaml (push sur master) - **Adieu Docker push** — plus de login/metadata/build-push vers DockerHub sur master - Renommage `build-push` → `build` (simple `docker build` pour valider la compilation) - Le push Docker est désormais uniquement géré par le workflow `tag.yaml` - Le job `tag` (git semver) continue de tourner après le build - `needs: [test]` déjà présent — les tests restent obligatoires avant le build ### cron.yaml (nightly rebuild) - **Ajout d'un job `test`** avant `build-push` — plus de push sans tests vérifiés - **Suppression du tag `:latest`** — abandonné - Conservation du tag `$TAG-latest` (tag de la dernière release + -latest) ### tag.yaml (push de tag) - **Ajout d'un job `test`** avant `build-push` — les tests doivent passer avant de pusher une release sur DockerHub ## Résumé des flux après changement | Workflow | Déclencheur | Jobs | Push Docker | |---|---|---|---| | **main.yaml** | push master | hadolint → test → build → tag | ❌ (git tag only) | | **cron.yaml** | nightly `0 0 * * *` | hadolint → test → build-push | ✅ `$TAG-latest` only | | **tag.yaml** | push `v*` tag | hadolint → test → build-push | ✅ `vX.Y.Z` + `vX.Y.Z-latest` | | **pr.yaml** | pull request | hadolint → build-test | ❌ | Closes les runs #1475 (tests manquants), #1474 (latest sur master), #1386 (latest sur cron)
cloudix_mcp_server added 3 commits 2026-06-13 14:26:06 -04:00
- Remove docker/login-action, docker/metadata-action, docker/build-push-action
- Rename build-push to build (just docker build, no push)
- Tag job now depends on build
- Push to DockerHub is handled solely by tag.yaml now
- Add test job (build + run tests)
- build-push now needs: [test]
- Remove type=raw,value=latest tag
- Keep type=raw,value=$TAG-latest for the latest versioned tag
tag: add test job before build-push
PR Checks / hadolint (pull_request) Successful in 7s
PR Checks / build-test (pull_request) Successful in 13s
88cac8d90c
- Add test job (build + run tests)
- build-push now needs: [test]
- Tests must pass before pushing tagged release to DockerHub
jcabillot merged commit 7d37ef7bcb into master 2026-06-13 14:28:59 -04:00
jcabillot deleted branch fix/workflow-test-before-push 2026-06-13 14:29:02 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: perso/offlineimap#14