- Creato workflow Gitea Actions (.gitea/workflows/docker-build.yml) - Documentazione completa setup e configurazione - Aggiornati README.md e copilot-instructions.md - Supporto registry Gitea Container Registry (gitea.com) - Stessa strategia di tagging di GitHub Actions - Build multi-platform (Linux + Windows)
6.5 KiB
Gitea Actions per Data-Coupler
📋 Panoramica
Questo repository utilizza Gitea Actions per automatizzare la build e la pubblicazione delle immagini Docker del progetto Data-Coupler.
🔧 Configurazione
Prerequisiti
Per utilizzare Gitea Actions su questo repository, è necessario:
- Gitea Account: Avere un account su Gitea (gitea.com o istanza self-hosted)
- Repository Settings: Abilitare Gitea Actions nelle impostazioni del repository
- Container Registry: Avere accesso al Gitea Container Registry
- Secret Configuration: Configurare il secret
GITEA_TOKEN
Configurazione del Secret GITEA_TOKEN
Il workflow richiede un token di accesso per pubblicare le immagini Docker sul registry:
- Vai su Settings → Secrets nel repository Gitea
- Crea un nuovo secret chiamato
GITEA_TOKEN - Il valore deve essere un Personal Access Token con i seguenti permessi:
write:packages- Per pubblicare container imagesread:packages- Per leggere images esistenti
Come Creare un Personal Access Token su Gitea
- Vai su Settings → Applications nel tuo profilo Gitea
- Clicca su Generate New Token
- Nome del token:
Data-Coupler Docker Build - Seleziona i seguenti scopes:
write:packagesread:packages
- Clicca su Generate Token
- Copia il token generato (sarà mostrato solo una volta)
Configurazione del Repository Path
Nel file .gitea/workflows/docker-build.yml, modifica la variabile IMAGE_NAME:
env:
REGISTRY: gitea.com
IMAGE_NAME: tuo-username/data-coupler # Modifica con il tuo username/organization
Importante: Sostituisci alessiodalsanto con il tuo username o nome dell'organization su Gitea.
🚀 Workflow
Docker Build Workflow
File: .gitea/workflows/docker-build.yml
Trigger Events
Il workflow si attiva automaticamente su:
- Push sui branch:
main,development,staging - Manual dispatch tramite interfaccia web
Jobs
Il workflow è composto da 3 job principali:
1. build-linux - Build Immagine Linux
- Runner:
ubuntu-latest - Dockerfile:
./Dockerfile - Platform:
linux/amd64 - Tags generati:
latest(per branchmainedevelopment)development-latest(per branchdevelopment)staging-latest(per branchstaging)<branch>-<sha>(per ogni commit)<branch>-<timestamp>(con data/ora)
2. build-windows - Build Immagine Windows
- Runner:
windows-2022 - Dockerfile:
./Dockerfile.windows - Platform: Windows Server 2022
- Tags generati: Come Linux ma con suffisso
-windows
3. create-manifest - Multi-Platform Manifest
- Runner:
ubuntu-latest - Dipendenze:
build-linux,build-windows - Crea manifest multi-piattaforma che combinano le immagini Linux e Windows
Strategia di Tagging
Branch main
latest- Tag condiviso per versione stabilelatest-windows- Versione Windowsmain-<sha>- Tag specifico per commitmain-<timestamp>- Tag con timestamp
Branch development
latest- Tag condiviso per ultime funzionalitàdevelopment-latest- Tag specifico per developmentlatest-windows/development-latest-windows- Versioni Windowsdevelopment-<sha>- Tag specifico per commitdevelopment-<timestamp>- Tag con timestamp
Branch staging
staging-latest- Tag per ambiente di stagingstaging-latest-windows- Versione Windowsstaging-<sha>- Tag specifico per commitstaging-<timestamp>- Tag con timestamp
📦 Utilizzo delle Immagini
Pull delle Immagini
Da Gitea Container Registry
# Ultima versione stabile (main/development)
docker pull gitea.com/alessiodalsanto/data-coupler:latest
# Versione development specifica
docker pull gitea.com/alessiodalsanto/data-coupler:development-latest
# Versione staging
docker pull gitea.com/alessiodalsanto/data-coupler:staging-latest
# Versione Windows
docker pull gitea.com/alessiodalsanto/data-coupler:latest-windows
Docker Compose
Modifica il docker-compose.yml per usare le immagini Gitea:
services:
data-coupler:
image: gitea.com/alessiodalsanto/data-coupler:latest
# ... resto della configurazione
🔍 Monitoraggio
Visualizzare lo Stato dei Workflow
- Vai nella tab Actions del repository Gitea
- Seleziona il workflow Build and Push Docker Images
- Visualizza i dettagli di ogni esecuzione
Log e Debug
- I log di ogni job sono disponibili nell'interfaccia Gitea Actions
- Per debug dettagliato, attiva il manual dispatch con opzione
force_build
🔄 Differenze con GitHub Actions
Principali Differenze
-
Context Variables:
- GitHub:
github.*→ Gitea:gitea.* - Esempio:
github.actor→gitea.actor
- GitHub:
-
Registry:
- GitHub:
ghcr.io→ Gitea:gitea.com
- GitHub:
-
Secret Name:
- GitHub:
GITHUB_TOKEN(automatico) → Gitea:GITEA_TOKEN(configurato manualmente)
- GitHub:
-
Attestation:
- Il job di attestation non è presente su Gitea (feature GitHub specifica)
Compatibilità
Gitea Actions è compatibile con la maggior parte delle GitHub Actions disponibili su GitHub Marketplace, incluse:
actions/checkout@v4docker/setup-buildx-action@v3docker/login-action@v3docker/build-push-action@v5docker/metadata-action@v5
🛠️ Troubleshooting
Errore di Autenticazione
Se ottieni errori di autenticazione:
- Verifica che il secret
GITEA_TOKENsia configurato correttamente - Assicurati che il token abbia i permessi
write:packages - Controlla che il token non sia scaduto
Build Fallita
Se la build fallisce:
- Controlla i log del job specifico
- Verifica che i Dockerfile siano presenti e corretti
- Assicurati che le dipendenze NuGet siano accessibili
Immagini Non Pubblicate
Se le immagini non vengono pubblicate:
- Verifica che
IMAGE_NAMEsia corretto - Controlla che il registry sia accessibile
- Verifica i permessi del token
📚 Risorse
📝 Note
- Le immagini sono private per default; configura le impostazioni del package per renderle pubbliche se necessario
- Il workflow supporta anche l'esecuzione manuale tramite
workflow_dispatch - I manifest multi-platform permettono di usare lo stesso tag per Linux e Windows
Versione: 1.0
Ultimo Aggiornamento: 24 Gennaio 2026
Maintainer: Alessio Dalsanto