mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 06:19:43 +08:00
67 lines
2.3 KiB
Plaintext
67 lines
2.3 KiB
Plaintext
# Construction cross-plateforme avec Github Actions
|
|
|
|
Pour construire un projet Wails pour toutes les plateformes disponibles, vous devez créer un build de l'application pour chaque système d'exploitation. Une méthode efficace pour y parvenir est d'utiliser GitHub Actions.
|
|
|
|
Une action qui facilite la création d'une application Wails est disponible sur :
|
|
https://github.com/dAppServer/wails-build-action
|
|
|
|
Dans le cas où l'action existante ne répond pas à vos exigences, vous ne pouvez sélectionner que les étapes nécessaires à partir de la source :
|
|
https://github.com/dAppServer/wails-build-action/blob/main/action.yml
|
|
|
|
Voici un exemple complet qui démontre la construction d'une application lors de la création d'une nouvelle balise Git et qui la téléversera ensuite sur les artefacts Actions :
|
|
|
|
```yaml
|
|
name: Wails build
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
# Matche n'importe quel nouveau tag
|
|
- '*'
|
|
|
|
env:
|
|
# Nécessaire pour la plupart des environnement, car des soucis de build peuvent arriver à cause de soucis de mémoire
|
|
NODE_OPTIONS: "--max-old-space-size=4096"
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
# Afin d'éviter que l'échec du build d'une plateforme n'impacte les autres
|
|
fail-fast: false
|
|
matrix:
|
|
build:
|
|
- name: 'App'
|
|
platform: 'linux/amd64'
|
|
os: 'ubuntu-latest'
|
|
- name: 'App'
|
|
platform: 'windows/amd64'
|
|
os: 'windows-latest'
|
|
- name: 'App'
|
|
platform: 'darwin/universal'
|
|
os: 'macos-latest'
|
|
|
|
runs-on: ${{ matrix.build.os }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Build wails
|
|
uses: dAppServer/wails-build-action@v2.2
|
|
id: build
|
|
with:
|
|
build-name: ${{ matrix.build.name }}
|
|
build-platform: ${{ matrix.build.platform }}
|
|
package: false
|
|
go-version: '1.20'
|
|
```
|
|
|
|
Cet exemple offre des opportunités pour diverses améliorations, comprenant :
|
|
|
|
- Mise en cache des dépendances
|
|
- Signature de code
|
|
- Envoi vers des plateformes comme S3, Supbase, etc.
|
|
- Injection de secrets en tant que variables d'environnement
|
|
- Utiliser des variables d'environnement comme variables de compilation (telles que la variable de version extraite de la balise Git actuelle)
|