Author SHA1 Message Date
Michael e759a1a7d5 prepare v1.1.0 release 2026-05-31 10:53:40 +02:00
LogiFlowandClaude 3b5ede5872 Robustesse release : accepte les tags V*/v* et normalise la version (#3)
* Passe la version à 1.1.0 et publie automatiquement les releases

- Monte la version à 1.1.0 (tauri.conf.json, Cargo.toml, package.json)
  pour générer un nouvel installeur via la CI.
- Met releaseDraft à false dans le workflow : les releases étaient
  créées en brouillon, donc invisibles et jamais marquées 'Latest' sur
  la page GitHub. Elles sont désormais publiées et présentées comme la
  dernière version.

* Durcit le déclenchement de la release (tags V*/v*) et normalise la version

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-05-31 10:41:18 +02:00
2 changed files with 29 additions and 17 deletions

No files matched your search

+28 -16
View File
@@ -3,8 +3,7 @@ name: Release Tauri App
on:
push:
tags:
# Accepte les tags en minuscule (v1.1.0) comme en majuscule (V1.1.0),
# pour éviter qu'une faute de casse empêche le déclenchement du build.
# Accept lowercase and uppercase tags, for example v1.1.0.0 or V1.1.0.0.
- 'v*'
- 'V*'
workflow_dispatch:
@@ -41,22 +40,37 @@ jobs:
cd widget
npm install
- name: Update version in tauri.conf.json
- name: Update app version from tag
shell: bash
run: |
# Retire un préfixe v/V puis ne garde que les 3 premiers segments
# (ex. "V1.1.0.0" -> "1.1.0") afin de produire une version semver valide.
TAG_VERSION=$(echo "${{ github.ref_name }}" | sed 's/^[vV]//' | cut -d. -f1-3)
if [[ ! "$TAG_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
TAG_VERSION="1.0.0"
# Keep Tauri/Cargo on valid SemVer while allowing release tags like V1.1.0.0.
RAW_VERSION=$(echo "${{ github.ref_name }}" | sed 's/^[vV]//')
APP_VERSION="1.1.0"
if [[ "$RAW_VERSION" =~ ^([0-9]+\.[0-9]+\.[0-9]+)(\.[0-9]+)?$ ]]; then
APP_VERSION="${BASH_REMATCH[1]}"
fi
echo "Updating tauri.conf.json version to $TAG_VERSION"
echo "Updating app version to $APP_VERSION"
node -e "
const fs = require('fs');
const file = './widget/src-tauri/tauri.conf.json';
const config = JSON.parse(fs.readFileSync(file, 'utf8'));
config.package.version = '$TAG_VERSION';
fs.writeFileSync(file, JSON.stringify(config, null, 2), 'utf8');
const updateJson = (file, update) => {
const data = JSON.parse(fs.readFileSync(file, 'utf8'));
update(data);
fs.writeFileSync(file, JSON.stringify(data, null, 2) + '\n', 'utf8');
};
updateJson('./widget/package.json', (pkg) => {
pkg.version = '$APP_VERSION';
});
updateJson('./widget/src-tauri/tauri.conf.json', (config) => {
config.package.version = '$APP_VERSION';
});
const cargoFile = './widget/src-tauri/Cargo.toml';
const cargo = fs.readFileSync(cargoFile, 'utf8')
.replace(/^version = \".*\"$/m, 'version = \"$APP_VERSION\"');
fs.writeFileSync(cargoFile, cargo, 'utf8');
"
- name: Build the Tauri app
@@ -69,9 +83,7 @@ jobs:
releaseBody: |
Installeur Windows de TodoFlow ${{ github.ref_name }}.
Téléchargez le fichier `.exe` (NSIS) ou `.msi` ci-dessous pour installer l'application.
# Publier directement la release (et non en brouillon) afin qu'elle soit visible
# publiquement et marquée automatiquement comme "Latest" sur la page GitHub.
Telechargez le fichier `.exe` (NSIS) ou `.msi` ci-dessous pour installer l'application.
releaseDraft: false
prerelease: false
projectPath: './widget'
+1 -1
View File
@@ -43,7 +43,7 @@ async def lifespan(app: FastAPI):
app = FastAPI(
title="TodoFlow API",
description="API centralisée pour la Todo list, connectée au widget de bureau et pilotable par Agent IA.",
version="1.0.0",
version="1.1.0",
lifespan=lifespan
)