chore(deps): bump the go_modules group across 3 directories with 1 update #4568
Workflow file for this run
This file contains hidden or 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] | |
| branches: | |
| - master | |
| paths: | |
| - 'v3/**' | |
| - 'webview2/**' | |
| - 'go.work' | |
| - 'go.work.sum' | |
| - '.github/workflows/build-and-test-v3.yml' | |
| pull_request_review: | |
| types: [submitted] | |
| branches: | |
| - master | |
| jobs: | |
| test_js: | |
| name: Run JS Tests | |
| runs-on: ubuntu-latest | |
| if: github.base_ref == 'master' | |
| 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 Task | |
| uses: arduino/setup-task@v2 | |
| with: | |
| version: 3.x | |
| repo-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Cache npm packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.npm | |
| key: ${{ runner.os }}-npm-runtime-${{ hashFiles('v3/internal/runtime/desktop/@wailsio/runtime/package-lock.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-npm-runtime- | |
| - name: Install dependencies | |
| working-directory: v3/internal/runtime/desktop/@wailsio/runtime | |
| run: | | |
| npm ci | |
| npx --yes esbuild@latest --version | |
| - name: Clean build artifacts | |
| working-directory: v3/internal/runtime/desktop/@wailsio/runtime | |
| run: npm run clean | |
| - name: Type-check runtime | |
| working-directory: v3 | |
| run: task runtime:check | |
| - name: Test runtime | |
| working-directory: v3 | |
| run: task runtime:test | |
| - name: Check that the bundled runtime builds | |
| working-directory: v3 | |
| run: task runtime:build | |
| - name: Check that the npm package builds | |
| working-directory: v3/internal/runtime/desktop/@wailsio/runtime | |
| run: npm run build | |
| - name: Pack runtime for template tests | |
| working-directory: v3/internal/runtime/desktop/@wailsio/runtime | |
| run: npm pack | |
| - name: Store runtime build artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: runtime-build-artifacts | |
| path: | | |
| v3/internal/runtime/desktop/@wailsio/runtime/dist/ | |
| v3/internal/runtime/desktop/@wailsio/runtime/types/ | |
| v3/internal/runtime/desktop/@wailsio/runtime/tsconfig.tsbuildinfo | |
| - name: Store runtime package | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: runtime-package | |
| path: v3/internal/runtime/desktop/@wailsio/runtime/*.tgz | |
| test_go: | |
| name: Run Go Tests v3 | |
| needs: [test_js] | |
| runs-on: ${{ matrix.os }} | |
| if: github.base_ref == 'master' | |
| timeout-minutes: 25 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [windows-latest, ubuntu-latest, macos-latest] | |
| go-version: [1.25] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Install linux dependencies (GTK4 default) | |
| uses: awalsh128/cache-apt-pkgs-action@latest | |
| if: matrix.os == 'ubuntu-latest' | |
| with: | |
| packages: libgtk-4-dev libwebkitgtk-6.0-dev libwayland-dev build-essential pkg-config xvfb x11-xserver-utils at-spi2-core xdg-desktop-portal-gtk | |
| version: 1.0 | |
| - name: Install linux dependencies (GTK3 legacy) | |
| uses: awalsh128/cache-apt-pkgs-action@latest | |
| if: matrix.os == 'ubuntu-latest' | |
| with: | |
| packages: libgtk-3-dev libwebkit2gtk-4.1-dev | |
| version: 1.0 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: ${{ matrix.go-version }} | |
| cache: true | |
| cache-dependency-path: | | |
| v3/go.sum | |
| webview2/go.sum | |
| go.work.sum | |
| - name: Install Task | |
| uses: arduino/setup-task@v2 | |
| with: | |
| version: 3.x | |
| repo-token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Retrieve runtime build artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: runtime-build-artifacts | |
| path: v3/internal/runtime/desktop/@wailsio/runtime/ | |
| - name: Build Examples (GTK4 default) | |
| working-directory: v3 | |
| run: | | |
| echo "Starting example compilation tests (GTK4 default)..." | |
| task test:examples | |
| echo "Example compilation tests (GTK4 default) completed successfully" | |
| - name: Build Examples (GTK3 legacy) | |
| if: matrix.os == 'ubuntu-latest' | |
| working-directory: v3 | |
| run: | | |
| echo "Starting example compilation tests (GTK3 legacy)..." | |
| BUILD_TAGS=gtk3 task test:examples | |
| echo "Example compilation tests (GTK3 legacy) completed successfully" | |
| - 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 -timeout 10m ./... | |
| - name: Run tests (windows) | |
| if: matrix.os == 'windows-latest' | |
| working-directory: v3 | |
| run: go test -v -timeout 10m ./... | |
| - name: Run tests (ubuntu) - GTK4 default | |
| if: matrix.os == 'ubuntu-latest' | |
| working-directory: v3 | |
| # Skip service tests that hang in CI due to GTK4 display requirements | |
| run: dbus-run-session -- xvfb-run --auto-servernum --server-args="-screen 0 1024x768x24" go test -v -timeout 10m -skip "TestService" ./... | |
| - name: Run tests (ubuntu) - GTK3 legacy | |
| if: matrix.os == 'ubuntu-latest' | |
| working-directory: v3 | |
| run: dbus-run-session -- xvfb-run --auto-servernum --server-args="-screen 0 1024x768x24" go test -tags gtk3 -v -timeout 10m ./... | |
| - name: Typecheck binding generator output | |
| working-directory: v3 | |
| run: task generator:test:check | |
| cleanup: | |
| name: Cleanup build artifacts | |
| if: always() | |
| needs: [test_js, test_go, test_templates] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: geekyeggo/delete-artifact@v5 | |
| with: | |
| name: | | |
| runtime-build-artifacts | |
| runtime-package | |
| failOnError: false | |
| test_templates: | |
| name: Test Templates | |
| needs: [test_js, test_go] | |
| runs-on: ${{ matrix.os }} | |
| if: github.base_ref == 'master' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| template: | |
| - vanilla | |
| - vanilla-js | |
| - react | |
| - react-js | |
| - vue | |
| - vue-js | |
| - svelte | |
| - svelte-js | |
| go-version: [1.25] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install linux dependencies (GTK4 default) | |
| uses: awalsh128/cache-apt-pkgs-action@latest | |
| if: matrix.os == 'ubuntu-latest' | |
| with: | |
| packages: libgtk-4-dev libwebkitgtk-6.0-dev libwayland-dev build-essential pkg-config | |
| version: 1.0 | |
| - name: Install linux dependencies (GTK3 legacy) | |
| uses: awalsh128/cache-apt-pkgs-action@latest | |
| if: matrix.os == 'ubuntu-latest' | |
| with: | |
| packages: libgtk-3-dev libwebkit2gtk-4.1-dev | |
| version: 1.0 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: ${{ matrix.go-version }} | |
| cache: true | |
| cache-dependency-path: | | |
| v3/go.sum | |
| webview2/go.sum | |
| go.work.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: Download runtime package | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: runtime-package | |
| path: wails-runtime-temp | |
| - name: Generate template '${{ matrix.template }}' (GTK4 default) | |
| shell: bash | |
| run: | | |
| # Get absolute path - use pwd -W on Windows for native paths, pwd elsewhere | |
| if [[ "$RUNNER_OS" == "Windows" ]]; then | |
| RUNTIME_TGZ="$(cd wails-runtime-temp && pwd -W)/$(ls wails-runtime-temp/*.tgz | xargs basename)" | |
| else | |
| RUNTIME_TGZ="$(cd wails-runtime-temp && pwd)/$(ls wails-runtime-temp/*.tgz | xargs basename)" | |
| fi | |
| mkdir -p ./test-${{ matrix.template }} | |
| cd ./test-${{ matrix.template }} | |
| wails3 init -n ${{ matrix.template }} -t ${{ matrix.template }} | |
| cd ${{ matrix.template }}/frontend | |
| # Replace @wailsio/runtime version with local tarball | |
| npm pkg set dependencies.@wailsio/runtime="file://$RUNTIME_TGZ" | |
| cd .. | |
| # Register the generated project in the workspace so Go 1.25 workspace | |
| # mode does not reject packages in a module not listed in go.work. | |
| go work use . | |
| wails3 build | |
| # GTK3 legacy template builds are covered by the Go example compilation tests above. | |
| build_results: | |
| if: ${{ always() }} | |
| runs-on: ubuntu-latest | |
| name: v3 Build Results | |
| needs: [test_go, test_js, test_templates] | |
| steps: | |
| - run: | | |
| go_result="${{ needs.test_go.result }}" | |
| js_result="${{ needs.test_js.result }}" | |
| templates_result="${{ needs.test_templates.result }}" | |
| if [[ $go_result == "success" || $go_result == "skipped" ]] && \ | |
| [[ $js_result == "success" || $js_result == "skipped" ]] && \ | |
| [[ $templates_result == "success" || $templates_result == "skipped" ]]; then | |
| echo "All required jobs succeeded or were skipped" | |
| exit 0 | |
| else | |
| echo "One or more required jobs failed" | |
| exit 1 | |
| fi |