You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
GitHub Action
Wails Build Action
v2.1
GitHub action to build Wails.io, the action will install GoLang, NodeJS and run a build. this is to be used on a Wails.io v2 project.
By default, the action will build and upload the results to github, on a tagged build it will also upload to the release.
- uses: dAppServer/[email protected]
with:
build-name: wailsApp
build-platform: linux/amd64
- uses: dAppServer/[email protected]
with:
build-name: wailsApp
build-platform: linux/amd64
package: false
Name | Default | Description |
---|---|---|
build-name |
none, required input | The name of the binary |
build |
true |
Runs wails build on your source |
nsis |
true |
Runs wails build with ot without -nsis |
sign |
false |
After build, signs and creates signed installers |
package |
true |
Upload workflow artifacts & publish release on tag |
build-platform |
darwin/universal |
Platform to build for |
wails-version |
latest |
Wails version to use |
wails-build-webview2 |
download |
Webview2 installing [download,embed,browser,error] |
go-version |
1.18 |
Version of Go to use |
node-version |
16.x |
Node js version |
deno-build |
`` | Deno compile command |
deno-working-directory |
. |
Working directory of your Deno server |
deno-version |
v1.20.x |
Deno version to use |
sign-macos-app-id |
'' | ID of the app signing cert |
sign-macos-apple-password |
'' | MacOS Apple password |
sign-macos-app-cert |
'' | MacOS Application Certificate |
sign-macos-app-cert-password |
'' | MacOS Application Certificate Password |
sign-macos-installer-id |
'' | MacOS Installer Certificate id |
sign-macos-installer-cert |
'' | MacOS Installer Certificate |
sign-macos-installer-cert-password |
'' | MacOS Installer Certificate Password |
sign-windows-cert |
'' | Windows Signing Certificate |
sign-windows-cert-passowrd |
'' | Windows Signing Certificate Password |
name: Wails build
on: [push, pull_request]
jobs:
build:
strategy:
fail-fast: false
matrix:
build: [
{name: wailsTest, platform: linux/amd64, os: ubuntu-latest},
{name: wailsTest, platform: windows/amd64, os: windows-latest},
{name: wailsTest, platform: darwin/universal, os: macos-latest}
]
runs-on: ${{ matrix.build.os }}
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- uses: dAppServer/[email protected]
with:
build-name: ${{ matrix.build.name }}
build-platform: ${{ matrix.build.platform }}
You need to make two gon configuration files, this is because we need to sign and notarize the .app before making an installer with it.
- uses: dAppServer/[email protected]
with:
build-name: wailsApp
sign: true
build-platform: darwin/universal
sign-macos-apple-password: ${{ secrets.APPLE_PASSWORD }}
sign-macos-app-id: ${{ secrets.MACOS_DEVELOPER_CERT_ID }}
sign-macos-app-cert: ${{ secrets.MACOS_DEVELOPER_CERT }}
sign-macos-app-cert-password: ${{ secrets.MACOS_DEVELOPER_CERT_PASSWORD }}
sign-macos-installer-id: ${{ secrets.MACOS_INSTALLER_CERT_ID }}
sign-macos-installer-cert: ${{ secrets.MACOS_INSTALLER_CERT }}
sign-macos-installer-cert-password: ${{ secrets.MACOS_INSTALLER_CERT_PASSWORD }}
build/darwin/gon-sign.json
{
"source" : ["./build/bin/wailsApp.app"],
"bundle_id" : "com.wails.app",
"apple_id": {
"username": "username",
"password": "@env:APPLE_PASSWORD"
},
"sign" :{
"application_identity" : "Developer ID Application: XXXXXXXX (XXXXXX)",
"entitlements_file": "./build/darwin/entitlements.plist"
},
"dmg" :{
"output_path": "./build/bin/wailsApp.dmg",
"volume_name": "Lethean"
}
}
build/darwin/gon-notarize.json
{
"notarize": [{
"path": "./build/bin/wailsApp.pkg",
"bundle_id": "com.wails.app",
"staple": true
},{
"path": "./build/bin/wailsApp.app.zip",
"bundle_id": "com.wails.app",
"staple": false
}],
"apple_id": {
"username": "USER name",
"password": "@env:APPLE_PASSWORD"
}
}
build/darwin/entitlements.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
</dict>
</plist>