[v3] Built-in service standardisation and enhancement #236
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build + Test v3 | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened, ready_for_review] | |
pull_request_review: | |
types: [submitted] | |
jobs: | |
check_approval: | |
name: Check PR Approval | |
runs-on: ubuntu-latest | |
outputs: | |
approved: ${{ steps.check.outputs.approved }} | |
steps: | |
- name: Check if PR is approved | |
id: check | |
run: | | |
if [[ "${{ github.event.review.state }}" == "approved" || "${{ github.event.pull_request.approved }}" == "true" ]]; then | |
echo "approved=true" >> $GITHUB_OUTPUT | |
else | |
echo "approved=false" >> $GITHUB_OUTPUT | |
fi | |
test_go: | |
name: Run Go Tests | |
needs: check_approval | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, macos-latest, ubuntu-latest] | |
go-version: [1.24] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install linux dependencies | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
if: matrix.os == 'ubuntu-latest' | |
with: | |
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config xvfb x11-xserver-utils at-spi2-core xdg-desktop-portal-gtk | |
version: 1.0 | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go-version }} | |
cache-dependency-path: "v3/go.sum" | |
- name: Install Task | |
uses: arduino/setup-task@v2 | |
with: | |
version: 3.x | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build Examples | |
working-directory: ./v3 | |
run: task test:examples | |
- name: Run tests (mac) | |
if: matrix.os == 'macos-latest' | |
env: | |
CGO_LDFLAGS: -framework UniformTypeIdentifiers -mmacosx-version-min=10.13 | |
working-directory: ./v3 | |
run: go test -v ./... | |
- name: Run tests (windows) | |
if: matrix.os == 'windows-latest' | |
working-directory: ./v3 | |
run: go test -v ./... | |
- name: Run tests (ubuntu) | |
if: matrix.os == 'ubuntu-latest' | |
working-directory: ./v3 | |
run: > | |
xvfb-run --auto-servernum | |
sh -c ' | |
dbus-update-activation-environment --systemd --all && | |
go test -v ./... | |
' | |
- name: Typecheck binding generator output | |
working-directory: ./v3 | |
run: task generator:test:check | |
test_js: | |
name: Run JS Tests | |
needs: check_approval | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node-version: [20.x] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: Install dependencies | |
run: npm install | |
working-directory: v2/internal/frontend/runtime | |
- name: Run tests | |
run: npm test | |
working-directory: v2/internal/frontend/runtime | |
test_templates: | |
name: Test Templates | |
needs: test_go | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
template: | |
- svelte | |
- svelte-ts | |
- vue | |
- vue-ts | |
- react | |
- react-ts | |
- preact | |
- preact-ts | |
- lit | |
- lit-ts | |
- vanilla | |
- vanilla-ts | |
go-version: [1.24] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install linux dependencies | |
uses: awalsh128/cache-apt-pkgs-action@latest | |
if: matrix.os == 'ubuntu-latest' | |
with: | |
packages: libgtk-3-dev libwebkit2gtk-4.1-dev build-essential pkg-config | |
version: 1.0 | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go-version }} | |
cache-dependency-path: "v3/go.sum" | |
- name: Install Task | |
uses: arduino/setup-task@v2 | |
with: | |
version: 3.x | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build Wails3 CLI | |
working-directory: ./v3 | |
run: | | |
task install | |
wails3 doctor | |
- name: Generate template '${{ matrix.template }}' | |
run: | | |
mkdir -p ./test-${{ matrix.template }} | |
cd ./test-${{ matrix.template }} | |
wails3 init -n ${{ matrix.template }} -t ${{ matrix.template }} | |
cd ${{ matrix.template }} | |
wails3 build |