Mise à jour du workflow pour forcer le declenchement à la main si par malheur il ne tourne pas à l'avenir automatiquement

This commit is contained in:
2026-06-17 18:24:18 +02:00
parent 48baa08cfb
commit 7aa174d75a

View File

@@ -22,6 +22,14 @@ name: Desktop installers
on: on:
push: push:
tags: ['v*'] tags: ['v*']
# Declenchement MANUEL depuis l'onglet Actions ("Run workflow"). Utile quand un
# tag a ete pousse AVANT que le workflow existe sur GitHub (ne se redeclenche
# pas tout seul), ou pour rejouer un build. Saisir la version SANS le "v".
workflow_dispatch:
inputs:
version:
description: "Version a builder (doit correspondre a un tag existant, ex: 0.15.0 ou 0.15.0-beta)"
required: true
permissions: permissions:
contents: write # requis pour creer la Release et y attacher le .msi contents: write # requis pour creer la Release et y attacher le .msi
@@ -30,7 +38,12 @@ jobs:
windows: windows:
runs-on: windows-latest runs-on: windows-latest
steps: steps:
# En declenchement manuel, on checkout le TAG correspondant a la version
# saisie (sinon checkout prendrait la branche par defaut). En push de tag,
# on prend la ref poussee.
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with:
ref: ${{ github.event_name == 'workflow_dispatch' && format('v{0}', inputs.version) || github.ref }}
# Apporte jpackage (lanceur d'empaquetage natif) dans le PATH. # Apporte jpackage (lanceur d'empaquetage natif) dans le PATH.
- name: Set up JDK 21 - name: Set up JDK 21
@@ -57,24 +70,37 @@ jobs:
shell: pwsh shell: pwsh
run: choco install wixtoolset -y --no-progress run: choco install wixtoolset -y --no-progress
# Version de l'installeur = version du tag (numerique, sans suffixe -beta). # Version de l'installeur = version du tag (push) OU de l'input (manuel).
- name: Derive version from tag # Sorties : version (numerique X.Y.Z pour le MSI), tag (vX.Y.Z[-beta]),
# isbeta (true/false) — independant du nom de ref (qui est une branche en manuel).
- name: Derive version
id: ver id: ver
shell: pwsh shell: pwsh
run: | run: |
$full = "${{ github.ref_name }}" -replace '^v','' # ex: 0.15.0-beta.1 if ('${{ github.event_name }}' -eq 'workflow_dispatch') {
$num = ($full -split '-')[0] # ex: 0.15.0 $raw = '${{ inputs.version }}'
"version=$num" >> $env:GITHUB_OUTPUT } else {
$raw = '${{ github.ref_name }}'
}
$raw = $raw -replace '^v','' # 0.15.0 ou 0.15.0-beta
$num = ($raw -split '-')[0] # 0.15.0
$isbeta = if ($raw -like '*-beta*') { 'true' } else { 'false' }
"version=$num" >> $env:GITHUB_OUTPUT
"tag=v$raw" >> $env:GITHUB_OUTPUT
"isbeta=$isbeta" >> $env:GITHUB_OUTPUT
- name: Build Windows installer - name: Build Windows installer
shell: pwsh shell: pwsh
run: .\installers\desktop\build-windows.ps1 -Version ${{ steps.ver.outputs.version }} run: .\installers\desktop\build-windows.ps1 -Version ${{ steps.ver.outputs.version }}
# STABLE uniquement : Release GitHub publique avec le .msi. # STABLE uniquement : Release GitHub publique avec le .msi.
# tag_name explicite : en declenchement manuel, github.ref est une branche,
# donc on cible le tag derive (la release est attachee au bon tag).
- name: Publish installer to GitHub Release (stable) - name: Publish installer to GitHub Release (stable)
if: ${{ !contains(github.ref_name, '-beta') }} if: ${{ steps.ver.outputs.isbeta == 'false' }}
uses: softprops/action-gh-release@v2 uses: softprops/action-gh-release@v2
with: with:
tag_name: ${{ steps.ver.outputs.tag }}
files: core/target/dist-out/*.msi files: core/target/dist-out/*.msi
fail_on_unmatched_files: true fail_on_unmatched_files: true
generate_release_notes: true generate_release_notes: true
@@ -82,7 +108,7 @@ jobs:
# BETA uniquement : artefact PRIVE (pas de release publique). A recuperer # BETA uniquement : artefact PRIVE (pas de release publique). A recuperer
# via l'onglet Actions puis a joindre a un post Patreon gate par palier. # via l'onglet Actions puis a joindre a un post Patreon gate par palier.
- name: Upload installer as private artifact (beta) - name: Upload installer as private artifact (beta)
if: ${{ contains(github.ref_name, '-beta') }} if: ${{ steps.ver.outputs.isbeta == 'true' }}
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: loremind-beta-${{ steps.ver.outputs.version }}-msi name: loremind-beta-${{ steps.ver.outputs.version }}-msi