Simplifying e2e file, disable win for now
This commit is contained in:
		
							
								
								
									
										103
									
								
								.github/workflows/e2e-tests.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										103
									
								
								.github/workflows/e2e-tests.yml
									
									
									
									
										vendored
									
									
								
							@ -39,32 +39,40 @@ jobs:
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        os: [ubuntu-latest-8-cores, windows-16-cores, macos-14-large]
 | 
			
		||||
        # os: [ubuntu-latest-8-cores, windows-16-cores, macos-14-large]
 | 
			
		||||
        os: [ubuntu-latest-8-cores, macos-14-large]
 | 
			
		||||
        shardIndex: [1, 2, 3, 4]
 | 
			
		||||
        shardTotal: [4]
 | 
			
		||||
    runs-on: ${{ matrix.os }}
 | 
			
		||||
    needs: check-rust-changes
 | 
			
		||||
    steps:
 | 
			
		||||
 | 
			
		||||
    - name: Tune GitHub-hosted runner network
 | 
			
		||||
      uses: smorimoto/tune-github-hosted-runner-network@v1
 | 
			
		||||
 | 
			
		||||
    - uses: actions/checkout@v4
 | 
			
		||||
  
 | 
			
		||||
    - uses: actions/setup-node@v4
 | 
			
		||||
      with:
 | 
			
		||||
        node-version-file: '.nvmrc'
 | 
			
		||||
        cache: 'yarn'
 | 
			
		||||
 | 
			
		||||
    - uses: KittyCAD/action-install-cli@main
 | 
			
		||||
    - name: Install dependencies
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: yarn
 | 
			
		||||
 | 
			
		||||
    - name: Cache Playwright Browsers
 | 
			
		||||
      uses: actions/cache@v4
 | 
			
		||||
      with:
 | 
			
		||||
        path: |
 | 
			
		||||
          ~/.cache/ms-playwright/
 | 
			
		||||
        key: ${{ runner.os }}-playwright-${{ hashFiles('yarn.lock') }}
 | 
			
		||||
  
 | 
			
		||||
    - name: Install Playwright Browsers
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: yarn playwright install --with-deps
 | 
			
		||||
 
 | 
			
		||||
    - name: Download Wasm Cache
 | 
			
		||||
      id: download-wasm
 | 
			
		||||
      if: needs.check-rust-changes.outputs.rust-changed == 'false'
 | 
			
		||||
@ -76,57 +84,68 @@ jobs:
 | 
			
		||||
        workflow: build-and-store-wasm.yml
 | 
			
		||||
        branch: main
 | 
			
		||||
        path: src/wasm-lib/pkg
 | 
			
		||||
 | 
			
		||||
    - name: copy wasm blob
 | 
			
		||||
      if: needs.check-rust-changes.outputs.rust-changed == 'false'
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: cp src/wasm-lib/pkg/wasm_lib_bg.wasm public
 | 
			
		||||
      continue-on-error: true
 | 
			
		||||
 | 
			
		||||
    - name: Setup Rust
 | 
			
		||||
      uses: dtolnay/rust-toolchain@stable
 | 
			
		||||
    - name: Cache Wasm (because rust diff)
 | 
			
		||||
      if: needs.check-rust-changes.outputs.rust-changed == 'true'
 | 
			
		||||
      uses: Swatinem/rust-cache@v2
 | 
			
		||||
      with:
 | 
			
		||||
        workspaces: './src/wasm-lib'
 | 
			
		||||
    - name: OR Cache Wasm (because wasm cache failed)
 | 
			
		||||
      if: steps.download-wasm.outcome == 'failure'
 | 
			
		||||
      uses: Swatinem/rust-cache@v2
 | 
			
		||||
      with:
 | 
			
		||||
        workspaces: './src/wasm-lib'
 | 
			
		||||
 | 
			
		||||
    # - name: Cache Wasm (because rust diff)
 | 
			
		||||
    #   if: needs.check-rust-changes.outputs.rust-changed == 'true'
 | 
			
		||||
    #   uses: Swatinem/rust-cache@v2
 | 
			
		||||
    #   with:
 | 
			
		||||
    #     workspaces: './src/wasm-lib'
 | 
			
		||||
 | 
			
		||||
    # - name: OR Cache Wasm (because wasm cache failed)
 | 
			
		||||
    #   if: steps.download-wasm.outcome == 'failure'
 | 
			
		||||
    #   uses: Swatinem/rust-cache@v2
 | 
			
		||||
    #   with:
 | 
			
		||||
    #     workspaces: './src/wasm-lib'
 | 
			
		||||
 | 
			
		||||
    - name: install good sed
 | 
			
		||||
      if:  ${{ startsWith(matrix.os, 'macos') }}
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: |
 | 
			
		||||
        brew install gnu-sed
 | 
			
		||||
        echo "/opt/homebrew/opt/gnu-sed/libexec/gnubin" >> $GITHUB_PATH
 | 
			
		||||
    - name: Install vector
 | 
			
		||||
      shell: bash
 | 
			
		||||
      if:  ${{ !startsWith(matrix.os, 'windows') }}
 | 
			
		||||
      run: |
 | 
			
		||||
        curl --proto '=https' --tlsv1.2 -sSfL https://sh.vector.dev > /tmp/vector.sh
 | 
			
		||||
        chmod +x /tmp/vector.sh
 | 
			
		||||
        /tmp/vector.sh -y -no-modify-path
 | 
			
		||||
        mkdir -p /tmp/vector
 | 
			
		||||
        cp .github/workflows/vector.toml /tmp/vector.toml
 | 
			
		||||
        sed -i "s#GITHUB_WORKFLOW#${GITHUB_WORKFLOW}#g" /tmp/vector.toml
 | 
			
		||||
        sed -i "s#GITHUB_REPOSITORY#${GITHUB_REPOSITORY}#g" /tmp/vector.toml
 | 
			
		||||
        sed -i "s#GITHUB_SHA#${GITHUB_SHA}#g" /tmp/vector.toml
 | 
			
		||||
        sed -i "s#GITHUB_REF_NAME#${GITHUB_REF_NAME}#g" /tmp/vector.toml
 | 
			
		||||
        sed -i "s#GH_ACTIONS_AXIOM_TOKEN#${{secrets.GH_ACTIONS_AXIOM_TOKEN}}#g" /tmp/vector.toml
 | 
			
		||||
        cat /tmp/vector.toml
 | 
			
		||||
        ${HOME}/.vector/bin/vector --config /tmp/vector.toml &
 | 
			
		||||
 | 
			
		||||
    # - name: Install vector
 | 
			
		||||
    #   shell: bash
 | 
			
		||||
    #   if:  ${{ !startsWith(matrix.os, 'windows') }}
 | 
			
		||||
    #   run: |
 | 
			
		||||
    #     curl --proto '=https' --tlsv1.2 -sSfL https://sh.vector.dev > /tmp/vector.sh
 | 
			
		||||
    #     chmod +x /tmp/vector.sh
 | 
			
		||||
    #     /tmp/vector.sh -y -no-modify-path
 | 
			
		||||
    #     mkdir -p /tmp/vector
 | 
			
		||||
    #     cp .github/workflows/vector.toml /tmp/vector.toml
 | 
			
		||||
    #     sed -i "s#GITHUB_WORKFLOW#${GITHUB_WORKFLOW}#g" /tmp/vector.toml
 | 
			
		||||
    #     sed -i "s#GITHUB_REPOSITORY#${GITHUB_REPOSITORY}#g" /tmp/vector.toml
 | 
			
		||||
    #     sed -i "s#GITHUB_SHA#${GITHUB_SHA}#g" /tmp/vector.toml
 | 
			
		||||
    #     sed -i "s#GITHUB_REF_NAME#${GITHUB_REF_NAME}#g" /tmp/vector.toml
 | 
			
		||||
    #     sed -i "s#GH_ACTIONS_AXIOM_TOKEN#${{secrets.GH_ACTIONS_AXIOM_TOKEN}}#g" /tmp/vector.toml
 | 
			
		||||
    #     cat /tmp/vector.toml
 | 
			
		||||
    #     ${HOME}/.vector/bin/vector --config /tmp/vector.toml &
 | 
			
		||||
 | 
			
		||||
    - name: Build Wasm (because rust diff)
 | 
			
		||||
      if: needs.check-rust-changes.outputs.rust-changed == 'true'
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: yarn build:wasm
 | 
			
		||||
    - name: OR Build Wasm (because wasm cache failed)
 | 
			
		||||
      if: steps.download-wasm.outcome == 'failure'
 | 
			
		||||
      # if: needs.check-rust-changes.outputs.rust-changed == 'true'
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: yarn build:wasm
 | 
			
		||||
 | 
			
		||||
    # - name: OR Build Wasm (because wasm cache failed)
 | 
			
		||||
    #   if: steps.download-wasm.outcome == 'failure'
 | 
			
		||||
    #   shell: bash
 | 
			
		||||
    #   run: yarn build:wasm
 | 
			
		||||
 | 
			
		||||
    - name: build electron
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: yarn tron:package
 | 
			
		||||
 
 | 
			
		||||
    - name: Run ubuntu/chrome snapshots
 | 
			
		||||
      if: ${{ startsWith(matrix.os, 'ubuntu') }}
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: |
 | 
			
		||||
        PLATFORM=web yarn playwright test --config=playwright.config.ts --retries="3" --update-snapshots --grep=@snapshot  --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }}
 | 
			
		||||
@ -137,19 +156,23 @@ jobs:
 | 
			
		||||
        VITE_KC_SKIP_AUTH: true
 | 
			
		||||
        token: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
 | 
			
		||||
        snapshottoken: ${{ secrets.KITTYCAD_API_TOKEN }}
 | 
			
		||||
 | 
			
		||||
    - uses: actions/upload-artifact@v4
 | 
			
		||||
      if: ${{ !cancelled() && (success() || failure()) }}
 | 
			
		||||
      if: ${{ startsWith(matrix.os, 'ubuntu') }}
 | 
			
		||||
      with:
 | 
			
		||||
        name: playwright-report-${{ matrix.os }}-snapshot-${{ matrix.shardIndex }}-${{ github.sha }}
 | 
			
		||||
        path: playwright-report/
 | 
			
		||||
        include-hidden-files: true
 | 
			
		||||
        retention-days: 30
 | 
			
		||||
        overwrite: true
 | 
			
		||||
 | 
			
		||||
    - name: Clean up test-results
 | 
			
		||||
      if: ${{ !cancelled() && (success() || failure()) }}
 | 
			
		||||
      if: ${{ startsWith(matrix.os, 'ubuntu') }}
 | 
			
		||||
      continue-on-error: true
 | 
			
		||||
      run: rm -r test-results
 | 
			
		||||
 | 
			
		||||
    - name: check for changes
 | 
			
		||||
      if: ${{ startsWith(matrix.os, 'ubuntu') }}
 | 
			
		||||
      shell: bash
 | 
			
		||||
      id: git-check
 | 
			
		||||
      run: |
 | 
			
		||||
@ -158,6 +181,7 @@ jobs:
 | 
			
		||||
          then echo "modified=true" >> $GITHUB_OUTPUT
 | 
			
		||||
          else echo "modified=false" >> $GITHUB_OUTPUT
 | 
			
		||||
          fi
 | 
			
		||||
 | 
			
		||||
    - name: Commit changes, if any
 | 
			
		||||
      if: steps.git-check.outputs.modified == 'true'
 | 
			
		||||
      shell: bash
 | 
			
		||||
@ -172,6 +196,7 @@ jobs:
 | 
			
		||||
        git commit -am "A snapshot a day keeps the bugs away! 📷🐛 (OS: ${{matrix.os}})" || true
 | 
			
		||||
        git push
 | 
			
		||||
        git push origin ${{ github.head_ref }}
 | 
			
		||||
 | 
			
		||||
    # only upload artifacts if there's actually changes
 | 
			
		||||
    - uses: actions/upload-artifact@v4
 | 
			
		||||
      if: steps.git-check.outputs.modified == 'true'
 | 
			
		||||
@ -180,15 +205,16 @@ jobs:
 | 
			
		||||
        path: playwright-report/
 | 
			
		||||
        include-hidden-files: true
 | 
			
		||||
        retention-days: 30
 | 
			
		||||
 | 
			
		||||
    - uses: actions/download-artifact@v4
 | 
			
		||||
      if: ${{ !cancelled() && (success() || failure()) }}
 | 
			
		||||
      if: ${{ startsWith(matrix.os, 'linux') }}
 | 
			
		||||
      continue-on-error: true
 | 
			
		||||
      with:
 | 
			
		||||
        name: test-results-${{ matrix.os }}-${{ matrix.shardIndex }}-${{ github.sha }}
 | 
			
		||||
        path: test-results/
 | 
			
		||||
 | 
			
		||||
    - name: Run playwright/electron flow (with retries)
 | 
			
		||||
      id: retry
 | 
			
		||||
      if: ${{ !cancelled() && (success() || failure()) }}
 | 
			
		||||
      shell: bash
 | 
			
		||||
      run: |
 | 
			
		||||
        .github/ci-cd-scripts/playwright-electron.sh ${{matrix.shardIndex}} ${{matrix.shardTotal}} ${{matrix.os}}
 | 
			
		||||
@ -199,20 +225,19 @@ jobs:
 | 
			
		||||
        VITE_KC_DEV_TOKEN: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
 | 
			
		||||
        VITE_KC_SKIP_AUTH: true
 | 
			
		||||
        token: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
 | 
			
		||||
 | 
			
		||||
    - uses: actions/upload-artifact@v4
 | 
			
		||||
      if: always()
 | 
			
		||||
      with:
 | 
			
		||||
        name: test-results-${{ matrix.os }}-${{ matrix.shardIndex }}-${{ github.sha }}
 | 
			
		||||
        path: test-results/
 | 
			
		||||
        include-hidden-files: true
 | 
			
		||||
        retention-days: 30
 | 
			
		||||
        overwrite: true
 | 
			
		||||
 | 
			
		||||
    - uses: actions/upload-artifact@v4
 | 
			
		||||
      if: always()
 | 
			
		||||
      with:
 | 
			
		||||
        name: playwright-report-${{ matrix.os }}-${{ matrix.shardIndex }}-${{ github.sha }}
 | 
			
		||||
        path: playwright-report/
 | 
			
		||||
        include-hidden-files: true
 | 
			
		||||
        retention-days: 30
 | 
			
		||||
        overwrite: true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user