2 Commits

Author SHA1 Message Date
gitea-actions 5214d042af ci: release v1.1.0 2026-06-14 11:34:03 +00:00
lucasdpt 073f0b2349 ci: build et publie aussi les paquets Linux (AppImage + deb)
- workflow: un seul job build Windows (Wine) + Linux puis publie tout
- publish-gitea.mjs: publie latest-linux.yml, AppImage, deb
- package.json: homepage (requis pour le build deb) + scripts build:all/publish
- publie toujours les 2 plateformes (le script efface tous les assets avant upload)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 13:32:01 +02:00
5 changed files with 33 additions and 15 deletions
+4 -1
View File
@@ -21,7 +21,7 @@ on:
options: [none, patch, minor, major] options: [none, patch, minor, major]
jobs: jobs:
publish-win: publish:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: electronuserland/builder:20-wine image: electronuserland/builder:20-wine
@@ -45,6 +45,9 @@ jobs:
- name: Build Windows installer - name: Build Windows installer
run: npm run build:win run: npm run build:win
- name: Build Linux installers
run: npm run build:linux
- name: Publish to Gitea release - name: Publish to Gitea release
run: node scripts/publish-gitea.mjs run: node scripts/publish-gitea.mjs
env: env:
+11 -8
View File
@@ -113,21 +113,24 @@ Publier une nouvelle version :
```bash ```bash
npm version patch # bump 0.1.0 -> 0.1.1 (la version EST la source de vérité) npm version patch # bump 0.1.0 -> 0.1.1 (la version EST la source de vérité)
export GITEA_TOKEN=xxxxx # token Gitea (scope write:repository) export GITEA_TOKEN=xxxxx # token Gitea (scope write:repository)
npm run publish:win # build l'installeur + upload latest.yml/installeur/.blockmap npm run publish # build Windows + Linux puis upload de tous les artefacts
``` ```
`scripts/publish-gitea.mjs` crée la release `latest` si besoin, supprime les `scripts/publish-gitea.mjs` crée la release `latest` si besoin, supprime **tous**
anciens assets puis uploade les nouveaux. URL/owner/repo/tag sont surchargeables les anciens assets puis uploade les nouveaux (Windows + Linux). C'est pourquoi on
via les variables `GITEA_URL` / `GITEA_OWNER` / `GITEA_REPO` / `GITEA_TAG`. build les deux plateformes avant de publier (`build:all`) : une publication ne
contenant qu'une plateforme effacerait l'autre. URL/owner/repo/tag sont
surchargeables via `GITEA_URL` / `GITEA_OWNER` / `GITEA_REPO` / `GITEA_TAG`.
**Publier via Gitea Actions (CI, déclenchement manuel)** — au lieu de builder en **Publier via Gitea Actions (CI, déclenchement manuel)** — au lieu de builder en
local, tu peux lancer le workflow `.gitea/workflows/publish.yml` depuis l'onglet local, tu peux lancer le workflow `.gitea/workflows/publish.yml` depuis l'onglet
*Actions* du repo (bouton « Run workflow »). Il build l'installeur Windows sous *Actions* du repo (bouton « Run workflow »). Sur un runner Linux (image
Linux via Wine (image `electronuserland/builder`) puis publie sur la release `electronuserland/builder`), il build l'**installeur Windows** (NSIS, via Wine) et
les **paquets Linux** (AppImage + .deb), puis publie le tout sur la release
`latest`. Optionnellement, l'input `bump` (patch/minor/major) incrémente la `latest`. Optionnellement, l'input `bump` (patch/minor/major) incrémente la
version et pousse le commit avant le build. Pré-requis : Gitea Actions activé + version et pousse le commit avant le build. Pré-requis : Gitea Actions activé +
un act_runner enregistré (label `ubuntu-latest`, à adapter) ; le token auto un act_runner enregistré (label `ubuntu-latest`, à adapter) ; un secret repo
`secrets.GITEA_TOKEN` suffit s'il a le droit d'écrire les releases. `RELEASE_TOKEN` (scope `write:repository`) pour publier la release.
> Tester le flux en dev : `dev-app-update.yml` (déjà présent) pointe sur la même > Tester le flux en dev : `dev-app-update.yml` (déjà présent) pointe sur la même
> URL ; avec une version distante > version locale, le bandeau de maj apparaît > URL ; avec une version distante > version locale, le bandeau de maj apparaît
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "oflauncher", "name": "oflauncher",
"version": "1.0.0", "version": "1.1.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "oflauncher", "name": "oflauncher",
"version": "1.0.0", "version": "1.1.0",
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
+4 -2
View File
@@ -1,10 +1,11 @@
{ {
"name": "oflauncher", "name": "oflauncher",
"version": "1.0.0", "version": "1.1.0",
"description": "Launcher Minecraft custom pour le modpack ATM10 (1.21.1 / NeoForge)", "description": "Launcher Minecraft custom pour le modpack ATM10 (1.21.1 / NeoForge)",
"main": "./out/main/index.js", "main": "./out/main/index.js",
"author": "OFLauncher", "author": "OFLauncher",
"license": "MIT", "license": "MIT",
"homepage": "https://gitea.ldpt.fr/zertus/OFLauncher",
"scripts": { "scripts": {
"dev": "electron-vite dev", "dev": "electron-vite dev",
"build": "electron-vite build", "build": "electron-vite build",
@@ -14,7 +15,8 @@
"start": "electron-vite preview", "start": "electron-vite preview",
"build:win": "npm run build && electron-builder --win --config electron-builder.yml", "build:win": "npm run build && electron-builder --win --config electron-builder.yml",
"build:linux": "npm run build && electron-builder --linux --config electron-builder.yml", "build:linux": "npm run build && electron-builder --linux --config electron-builder.yml",
"publish:win": "npm run build:win && node scripts/publish-gitea.mjs", "build:all": "npm run build && electron-builder --win --linux --config electron-builder.yml",
"publish": "npm run build:all && node scripts/publish-gitea.mjs",
"postinstall": "electron-builder install-app-deps" "postinstall": "electron-builder install-app-deps"
}, },
"dependencies": { "dependencies": {
+12 -2
View File
@@ -31,12 +31,22 @@ if (!TOKEN) {
process.exit(1) process.exit(1)
} }
/** Fichiers de dist/ à publier pour l'auto-update Windows. */ /**
* Fichiers de dist/ à publier pour l'auto-update.
* - Windows : latest.yml + l'installeur NSIS (+ .blockmap)
* - Linux : latest-linux.yml + l'AppImage (+ .blockmap) ; le .deb est publié
* pour téléchargement manuel (electron-updater ne l'utilise pas).
* electron-updater choisit le bon latest*.yml selon la plateforme.
*/
function isUpdateArtifact(name) { function isUpdateArtifact(name) {
return ( return (
name === 'latest.yml' || name === 'latest.yml' ||
name === 'latest-linux.yml' ||
name.endsWith('-setup.exe') || name.endsWith('-setup.exe') ||
name.endsWith('-setup.exe.blockmap') name.endsWith('-setup.exe.blockmap') ||
name.endsWith('.AppImage') ||
name.endsWith('.AppImage.blockmap') ||
name.endsWith('.deb')
) )
} }