name: build smoke tests with source on: push: branches: - dev pull_request: paths: - '**/package.json' - '**/Cargo.toml' jobs: node: runs-on: ${{ matrix.platform }} timeout-minutes: 40 strategy: fail-fast: false matrix: platform: [ubuntu-latest, macos-latest, windows-latest] example: - name: GatsbyThemedSite folder: react/gatsby-themed-site executable: gatsby-themed-site-app - name: CRAApp folder: react/create-react-app executable: app - name: NextjsApp folder: react/next.js executable: app - name: VanillajsMonolithApp folder: vanillajs/monolith executable: app - name: quasar-app folder: vue/quasar-app executable: app - name: svelte-app folder: svelte/svelte-app executable: app include: - platform: ubuntu-latest CARGO_HOME: ~/.cargo releaseFolder: target/release/bundle/deb ext: _0.1.0_amd64.deb - platform: macos-latest CARGO_HOME: ~/.cargo releaseFolder: target/release/bundle/osx ext: .app - platform: windows-latest CARGO_HOME: ~/.cargo releaseFolder: target/release ext: .x64.msi steps: - name: checkout tauri uses: actions/checkout@v2 - name: checkout examples uses: actions/checkout@v2 with: repository: tauri-apps/examples ref: master path: examples - name: install rust stable uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal - name: install webkit2gtk (ubuntu only) if: matrix.platform == 'ubuntu-latest' run: | sudo apt-get update sudo apt-get install -y webkit2gtk-4.0 - name: cache rust bin uses: actions/cache@v1 with: path: ${{ format('{0}/bin/', matrix.CARGO_HOME) }} key: ${{ runner.OS }}-build-bin-${{ hashFiles('**/Cargo.toml') }}- - name: cache rust registry/index uses: actions/cache@v1 with: path: ${{ format('{0}/registry/index/', matrix.CARGO_HOME) }} key: ${{ runner.OS }}-build-reg-index-${{ hashFiles('**/Cargo.toml') }}- - name: cache rust registry/cache uses: actions/cache@v1 with: path: ${{ format('{0}/registry/cache/', matrix.CARGO_HOME) }} key: ${{ runner.OS }}-build-reg-cache-${{ hashFiles('**/Cargo.toml') }}- - run: cargo install --path ./cli/tauri-bundler --force - name: install cli deps via yarn working-directory: ./cli/tauri.js run: yarn - name: build cli working-directory: ./cli/tauri.js run: yarn build - name: cache node modules uses: actions/cache@v1 with: path: ${{ format('examples/node/{0}/node_modules', matrix.example.folder) }} key: ${{ runner.OS }}-build-${{ hashFiles(format('examples/node/{0}/yarn.lock', matrix.example.folder)) }} restore-keys: ${{ runner.OS }}-build-${{ env.cache-name }}- - name: install via yarn working-directory: ./examples/node/${{ matrix.example.folder }} run: yarn - name: build example working-directory: ./examples/node/${{ matrix.example.folder }} run: yarn build - name: yarn tauri build working-directory: ./examples/node/${{ matrix.example.folder }} run: yarn tauri:source:build - uses: actions/upload-artifact@v1 if: success() with: name: ${{ matrix.example.name }}(${{ matrix.platform }}) path: ${{ format('./examples/node/{0}/src-tauri/{1}/{2}{3}', matrix.example.folder, matrix.releaseFolder, matrix.example.executable, matrix.ext ) }}