name: Build + Test v2 on: push: branches: [release/*, master, bugfix/*] workflow_dispatch: jobs: test_go: name: Run Go Tests if: github.repository == 'wailsapp/wails' runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-22.04, ubuntu-24.04, windows-latest, macos-latest, macos-11] go-version: ['1.21'] steps: - name: Checkout code uses: actions/checkout@v4 - uses: awalsh128/cache-apt-pkgs-action@latest if: matrix.os == 'ubuntu-22.04' with: packages: libgtk-3-dev libwebkit2gtk-4.0-dev build-essential pkg-config version: 1.0 - uses: awalsh128/cache-apt-pkgs-action@latest if: matrix.os == 'ubuntu-24.04' with: packages: libgtk-3-dev libwebkit2gtk-4.1-dev libwayland-dev build-essential pkg-config version: 1.0 - name: Setup Go uses: actions/setup-go@v4 with: go-version: ${{ matrix.go-version }} cache-dependency-path: ./v2/go.sum - name: Run tests (mac) if: matrix.os == 'macos-latest' || matrix.os == 'macos-11' env: CGO_LDFLAGS: -framework UniformTypeIdentifiers -mmacosx-version-min=10.13 working-directory: ./v2 run: go test -v ./... - name: Run tests (!mac) if: matrix.os != 'macos-latest' && matrix.os != 'macos-11' && matrix.os != 'ubuntu-24.04' working-directory: ./v2 run: go test -v ./... - name: Run tests (Ubuntu 24.04) if: matrix.os == 'ubuntu-24.04' working-directory: ./v2 run: go test -v -tags webkit2_41 ./... test_js: name: Run JS Tests if: github.repository == 'wailsapp/wails' 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@v3 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: true matrix: os: [ubuntu-22.04, windows-latest, macos-latest, ubuntu-24.04, macos-11] template: [ svelte, svelte-ts, vue, vue-ts, react, react-ts, preact, preact-ts, lit, lit-ts, vanilla, vanilla-ts, plain, ] go-version: ['1.21'] steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v4 with: go-version: ${{ matrix.go-version }} cache-dependency-path: ./v2/go.sum - name: Build Wails CLI run: | cd ./v2/cmd/wails go install wails -help - name: Install linux dependencies ( 22.04 ) if: matrix.os == 'ubuntu-22.04' run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev build-essential pkg-config - name: Install linux dependencies ( 24.04 ) if: matrix.os == 'ubuntu-24.04' run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libwayland-dev build-essential pkg-config - name: Generate & Build template '${{ matrix.template }}' if: matrix.os != 'ubuntu-24.04' run: | mkdir -p ./test-${{ matrix.template }} cd ./test-${{ matrix.template }} wails init -n ${{ matrix.template }} -t ${{ matrix.template }} -ci cd ${{ matrix.template }} wails build -v 2 - name: Generate & Build template '${{ matrix.template }}' (ubuntu-24.04) if: matrix.os == 'ubuntu-24.04' run: | mkdir -p ./test-${{ matrix.template }} cd ./test-${{ matrix.template }} wails init -n ${{ matrix.template }} -t ${{ matrix.template }} -ci cd ${{ matrix.template }} wails build -v 2 -tags webkit2_41