waveterm/.github/workflows/testdriver-build.yml
Evan Simkowitz db3de47def
Use Zig for Windows and ARM64 Linux (#1713)
I'm making steps to simplify our build dependencies, consolidating our C
compiler requirements so we only depend on Zig.

Before, we used Zig for x64 but not for arm64. This meant that users
using an ARM dev machine would need to install `build-essentials` and
Zig. We also required MinGW-w64 on Windows, which is a pain to install
since it can be provided by a bunch of different tools, the smallest of
which is like a 2GB install.
2025-01-10 15:23:56 -08:00

76 lines
2.3 KiB
YAML

name: TestDriver.ai Build
on:
push:
branches:
- main
tags:
- "v[0-9]+.[0-9]+.[0-9]+*"
pull_request:
# branches:
# - main
# paths-ignore:
# - "docs/**"
# - ".storybook/**"
# - ".vscode/**"
# - ".editorconfig"
# - ".gitignore"
# - ".prettierrc"
# - ".eslintrc.js"
# - "**/*.md"
schedule:
- cron: 0 21 * * *
workflow_dispatch: null
env:
GO_VERSION: "1.23"
NODE_VERSION: 22
permissions:
contents: read # To allow the action to read repository contents
pull-requests: write # To allow the action to create/update pull request comments
jobs:
build_and_upload:
name: Build for TestDriver.ai
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
# General build dependencies
- uses: actions/setup-go@v5
with:
go-version: ${{env.GO_VERSION}}
- uses: actions/setup-node@v4
with:
node-version: ${{env.NODE_VERSION}}
- name: Install Yarn
uses: nick-fields/retry@v3
with:
command: |
corepack enable
yarn install
timeout_minutes: 5
max_attempts: 3
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install Zig
uses: mlugg/setup-zig@v1
- name: Build
run: task package
env:
USE_SYSTEM_FPM: true # Ensure that the installed version of FPM is used rather than the bundled one.
CSC_IDENTITY_AUTO_DISCOVERY: false # disable codesign
shell: powershell # electron-builder's Windows code signing package has some compatibility issues with pwsh, so we need to use Windows Powershell
# Upload .exe as an artifact
- name: Upload .exe artifact
id: upload
uses: actions/upload-artifact@v4
with:
name: windows-exe
path: make/*.exe