clean-destination input to optionally clear destination folder during IIS deployment
- Introduces a new input to allow cleanup of destination folder while retaining specific files and folders (`appsettings.json`, `web.config`, and `store`). - Updates error handling for IIS site and app pool stop commands to continue execution on failure.
Gitea Actions
Repository contenente action Gitea Actions centralizzate utilizzabili da altri repository del workspace.
Action disponibili
install-opencode
Installa OpenCode globalmente via npm. Verifica la presenza di Node.js e npm, installando npm automaticamente su Alpine se mancante.
- uses: https://<host>/<owner>/Actions/install-opencode@<ref>
# with:
# version: "1.15.0" # fissa una versione specifica
opencode-prompt
Esegue un prompt OpenCode sul codice del repository. Richiede che install-opencode
sia eseguito prima, oppure che OpenCode sia già presente sul runner.
- id: ai
uses: https://<host>/<owner>/Actions/opencode-prompt@<ref>
with:
prompt: "Analizza il codice e trova potenziali bug"
api-key: ${{ secrets.OPENCODE_API_KEY }}
# opzionali:
model: "deepseek/deepseek-v4-flash" # default
agent: "" # agente opencode
working-directory: "" # default: radice repo
L'output result contiene la risposta di OpenCode e viene salvato anche in
$GITHUB_WORKSPACE/opencode-output.txt.
triage-issue
Analizza automaticamente le issue in apertura con OpenCode: classifica come bug o richiesta, produce un riassunto, una gap analisi rispetto al codice sorgente, domande aperte e un report tecnico dettagliato in formato Markdown caricato come asset.
Utilizzo
- uses: https://<host>/<owner>/Actions/triage-issue@<ref>
with:
issue-title: ${{ github.event.issue.title }}
issue-body: ${{ github.event.issue.body }}
issue-number: ${{ github.event.issue.number }}
repository: ${{ github.repository }}
api-token: ${{ secrets.TOKEN }}
api-key: ${{ secrets.OPENCODE_API_KEY }}
# opzionali:
model: "deepseek/deepseek-v4-flash" # default
gitea-host: "https://git.incloud.ovh" # default
Prerequisiti nel repository target
- Secrets:
TOKEN(API Gitea),OPENCODE_API_KEY(API AI) - Label:
bug(rossodc3545) erichiesta(blu007bff) - Workflow (esempio
.gitea/workflows/triage.yml):
name: Triage Issue
on:
issues:
types: [opened]
jobs:
triage:
runs-on: linux_amd64
steps:
- uses: actions/checkout@v4
- uses: https://git.incloud.ovh/anuti/Actions/install-opencode@main
- uses: https://git.incloud.ovh/anuti/Actions/triage-issue@main
with:
issue-title: ${{ github.event.issue.title }}
issue-body: ${{ github.event.issue.body }}
issue-number: ${{ github.event.issue.number }}
repository: ${{ github.repository }}
api-token: ${{ secrets.TOKEN }}
api-key: ${{ secrets.OPENCODE_API_KEY }}
Output
- Label
bugorichiestaapplicata sull'issue - Commento con riassunto, gap analisi e domande aperte
- Asset Markdown (
triage-issue-N.md) con analisi tecnica completa, linkato nel commento
version-from-tag
Estrae la versione da un tag (formato v1.2.3.4[-suffix]) e produce le variabili
appver, fullver, suffix e version.
- name: Calcola versione
uses: https://<host>/<owner>/Actions/version-from-tag@<ref>
with:
ref-name: ${{ github.ref_name }}
publish-dotnet
Compila (restore + publish) un progetto .NET e sincronizza l'output su un path
locale via rsync.
- name: Publish
uses: https://<host>/<owner>/Actions/publish-dotnet@<ref>
with:
project: src/MyApp/MyApp.csproj
output-path: /var/publish/myapp
version: ${{ steps.versione.outputs.appver }}
# opzionali:
configuration: Release
subpath: "wwwroot"
exclude-dirs: store
exclude-files: appsettings.json
deploy-iis
Esegue il deploy su IIS: ferma sito/application pool, copia i file via robocopy,
riavvia i servizi.
- name: Deploy IIS
uses: https://<host>/<owner>/Actions/deploy-iis@<ref>
with:
source-path: /var/publish/myapp
destination-path: C:\inetpub\wwwroot\myapp
site-name: MySite
app-pool-name: MyAppPool
exclude-dirs: store
exclude-files: appsettings.json
Versionamento delle action
Per puntare a una versione stabile, crea un tag su questo repository
(es. v1.0.0) e usalo nel riferimento:
uses: https://<host>/<owner>/Actions/publish-dotnet@v1.0.0
Oppure punta a un branch (@main) per avere sempre l'ultima versione.