Skip to content

Commit 8557972

Browse files
JordanAtDownclaude
andcommitted
ci: add GitHub Actions release workflow + document release process
Workflow triggers on tag v*.*.* — builds launcher.exe via cross-compilation (ubuntu-latest + mingw-w64), packages it with config.toml into launcher-vX.Y.Z.zip and publishes a GitHub Release with auto changelog. README and CLAUDE.md updated with the full release process. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 670c502 commit 8557972

3 files changed

Lines changed: 115 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*.*.*'
7+
8+
jobs:
9+
build:
10+
runs-on: ubuntu-latest
11+
permissions:
12+
contents: write
13+
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
18+
- name: Install Rust + Windows target
19+
uses: dtolnay/rust-toolchain@stable
20+
with:
21+
targets: x86_64-pc-windows-gnu
22+
23+
- name: Install mingw-w64
24+
run: sudo apt-get install -y gcc-mingw-w64-x86-64
25+
26+
- name: Build
27+
run: cargo build --release
28+
29+
- name: Package zip
30+
run: |
31+
VERSION=${{ github.ref_name }}
32+
zip launcher-${VERSION}.zip \
33+
target/x86_64-pc-windows-gnu/release/launcher.exe \
34+
config.toml
35+
36+
- name: Create GitHub Release
37+
uses: softprops/action-gh-release@v2
38+
with:
39+
files: launcher-${{ github.ref_name }}.zip
40+
generate_release_notes: true

CLAUDE.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,3 +101,29 @@ source ~/.cargo/env
101101
cargo build --release
102102
# binaire : target/x86_64-pc-windows-gnu/release/launcher.exe
103103
```
104+
105+
---
106+
107+
## Release (GitHub Actions)
108+
109+
Le workflow `.github/workflows/release.yml` se déclenche sur un tag `v*.*.*` et produit automatiquement un zip `launcher-vX.Y.Z.zip` (contient `launcher.exe` + `config.toml`) publié en release GitHub.
110+
111+
### Processus de release
112+
113+
```bash
114+
# 1. Bumper version dans Cargo.toml → version = "0.2.0"
115+
git add Cargo.toml Cargo.lock
116+
git commit -m "chore: bump version to 0.2.0"
117+
git push
118+
119+
# 2. Tagger et pousser
120+
git tag v0.2.0
121+
git push origin v0.2.0
122+
# → GitHub Actions build + publie la release automatiquement (~2-3 min)
123+
```
124+
125+
### Ce que fait le workflow
126+
127+
1. `ubuntu-latest` + `mingw-w64` → cross-compile `launcher.exe`
128+
2. `zip launcher-vX.Y.Z.zip launcher.exe config.toml`
129+
3. `softprops/action-gh-release` → publie la release avec changelog auto

README.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,3 +338,52 @@ cd /mnt/d/developpement.code/launcher
338338
source ~/.cargo/env
339339
cargo build --release
340340
```
341+
342+
---
343+
344+
## Publier une release
345+
346+
Le projet utilise GitHub Actions pour builder et publier automatiquement une release quand un tag est poussé.
347+
348+
### Processus complet
349+
350+
**1. Modifier le code** puis commiter :
351+
```bash
352+
git add .
353+
git commit -m "feat: description de la modification"
354+
git push
355+
```
356+
357+
**2. Bumper la version** dans `Cargo.toml` :
358+
```toml
359+
[package]
360+
version = "0.2.0" # ← incrémenter ici
361+
```
362+
363+
**3. Commiter la nouvelle version :**
364+
```bash
365+
git add Cargo.toml Cargo.lock
366+
git commit -m "chore: bump version to 0.2.0"
367+
git push
368+
```
369+
370+
**4. Créer et pousser le tag :**
371+
```bash
372+
git tag v0.2.0
373+
git push origin v0.2.0
374+
```
375+
376+
GitHub Actions se déclenche automatiquement et :
377+
- Build `launcher.exe` via cross-compilation Windows (ubuntu + mingw-w64)
378+
- Package `launcher.exe` + `config.toml` dans `launcher-v0.2.0.zip`
379+
- Publie la release sur GitHub avec le changelog automatique
380+
381+
### Suivre le build
382+
383+
Onglet **Actions** du dépôt GitHub → workflow **Release** → vérifier que le job passe en vert (~2-3 min).
384+
385+
### Télécharger la release
386+
387+
Onglet **Releases** → dernière release → télécharger `launcher-vX.Y.Z.zip`.
388+
389+
> Le zip contient `launcher.exe` et `config.toml`. Extraire les deux dans le même dossier.

0 commit comments

Comments
 (0)