Sono state aggiunte azioni per estrarre la versione da un tag, pubblicare un progetto .NET e distribuire su IIS. Queste azioni semplificano il processo di build e deploy per i progetti .NET, migliorando l'integrazione con Gitea Actions.
66 lines
1.6 KiB
Markdown
66 lines
1.6 KiB
Markdown
# Gitea Actions
|
|
|
|
Repository contenente action [Gitea Actions](https://docs.gitea.com/usage/actions/overview) centralizzate
|
|
utilizzabili da altri repository del workspace.
|
|
|
|
## Action disponibili
|
|
|
|
### `version-from-tag`
|
|
|
|
Estrae la versione da un tag (formato `v1.2.3.4[-suffix]`) e produce le variabili
|
|
`appver`, `fullver`, `suffix` e `version`.
|
|
|
|
```yaml
|
|
- 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`.
|
|
|
|
```yaml
|
|
- 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.
|
|
|
|
```yaml
|
|
- 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:
|
|
|
|
```yaml
|
|
uses: https://<host>/<owner>/Actions/publish-dotnet@v1.0.0
|
|
```
|
|
|
|
Oppure punta a un branch (`@main`) per avere sempre l'ultima versione.
|