# 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)