diff --git a/.github/workflows/build-and-test-alpha.yml b/.github/workflows/build-and-test-alpha.yml new file mode 100644 index 000000000..4b6d6d143 --- /dev/null +++ b/.github/workflows/build-and-test-alpha.yml @@ -0,0 +1,119 @@ +name: Build + Test v3 alpha + +on: + push: + branches: [v3-alpha] + workflow_dispatch: + +jobs: + test_go: + name: Run Go Tests + if: github.repository == 'wailsapp/wails' + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + go-version: [1.21] + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Install linux dependencies + if: matrix.os == 'ubuntu-latest' + run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev build-essential pkg-config + + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: ${{ matrix.go-version }} + + - 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 (!mac) + if: matrix.os != 'macos-latest' + working-directory: ./v3 + run: go test -v ./... + + test_js: + name: Run JS Tests + if: github.repository == 'wailsapp/wails' + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [18.x] + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - 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-latest, windows-latest, macos-latest] + 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@v3 + + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: ${{ matrix.go-version }} + + - name: Build Wails3 CLI + run: | + cd ./v3/cmd/wails3 + go install + wails3 -help + + - name: Install linux dependencies + if: matrix.os == 'ubuntu-latest' + run: sudo apt-get update -y && sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev build-essential pkg-config + + - name: Generate template '${{ matrix.template }}' + run: | + go install github.com/go-task/task/v3/cmd/task@latest + mkdir -p ./test-${{ matrix.template }} + cd ./test-${{ matrix.template }} + wails3 init -n ${{ matrix.template }} -t ${{ matrix.template }} -ci + cd ${{ matrix.template }} + wails3 build