Ci sono diversi modi per far partire un workflow di deployment. Sicuramente la strada giusta sarebbe quella di avere una pipeline di continuous deployment configurata, certo, ma non sempre è realizzabile, specie quando abbiamo più ambienti sulla quale dover fare test. Supponiamo di avere un flow di sviluppo basato su ChatOps, in cui la comunicazione avviene tramite commenti su issue e/o label: potremmo voler usare determinate label come 'dev', 'staging', 'prod' per far partire il deployment sugli ambienti corrispondenti.
Il workflow, dovrà prima di tutto essere configurato con gli eventi corretti. Poichè stiamo parlando di issue e label, probabilmente siamo nel contesto di una pull request:
on: pull_request: types: [labeled]
Il workflow verrà quindi eseguito all'aggiunta di una label sulla PR. Possiamo quindi eseguire un workflow unico, con step di deployment differenziati in base alla label:
steps: - name: Deploy (DEV) if: contains(github.event.pull_request.labels.*.name, 'stage') run: echo 'Deploying in development environment...' - name: Deploy (STAGING) if: contains(github.event.pull_request.labels.*.name, 'staging') run: echo 'Deploying in staging environment...' - name: Deploy (PROD) if: contains(github.event.pull_request.labels.*.name, 'prod') run: echo 'Deploying in production environment...'
Possiamo usare il costrutto '*' per recuperare, con uno statement di if in linea, tutte le label associate alla pull request che ha invocato il workflow. Tramite la keyword contains, andiamo poi a verificare che la nostra chiave sia contenuta all'interno della lista. Lo step che ha la corrispondenza con la label verrà quindi eseguito e il deploy completato.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Integrare un servizio esterno con .NET Aspire
Creare una libreria CSS universale: Cards
Escludere alcuni file da GitHub Secret Scanning
Configurare automaticamente un webhook in Azure DevOps
Migliorare l'organizzazione delle risorse con Azure Policy
Rendere le variabili read-only in una pipeline di Azure DevOps
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Recuperare App Service cancellati su Azure
Supportare la crittografia di ASP.NET Core con Azure Container App
Ottenere un token di accesso per una GitHub App
Il nuovo controllo Range di Blazor 9
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
I più letti di oggi
- Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
- .NET Conference Italia 2025 - Milano
- Usare i servizi REST di BING per ottenere informazioni sulla posizione dell'utente
- The Agentic Day - Milano
- Lavorare con la cache distribuita di ASP.NET Core in fase di sviluppo
- Gestione ciclo di vita in .NET Aspire
- Creare una libreria CSS universale: Immagini