disable other playwright temp

This commit is contained in:
Kurt Hutten Irev-Dev
2024-08-13 17:19:57 +10:00
parent ff9c0f7cbc
commit dd253626cc

View File

@ -33,205 +33,205 @@ jobs:
rust: rust:
- 'src/wasm-lib/**' - 'src/wasm-lib/**'
playwright-ubuntu: # playwright-ubuntu:
timeout-minutes: 30 # timeout-minutes: 30
runs-on: ubuntu-latest # runs-on: ubuntu-latest
strategy: # strategy:
fail-fast: false # fail-fast: false
matrix: # matrix:
shardIndex: [1, 2, 3, 4] # shardIndex: [1, 2, 3, 4]
shardTotal: [4] # shardTotal: [4]
needs: check-rust-changes # needs: check-rust-changes
steps: # steps:
- name: Tune GitHub-hosted runner network # - name: Tune GitHub-hosted runner network
uses: smorimoto/tune-github-hosted-runner-network@v1 # uses: smorimoto/tune-github-hosted-runner-network@v1
- uses: actions/checkout@v4 # - uses: actions/checkout@v4
- uses: actions/setup-node@v4 # - uses: actions/setup-node@v4
with: # with:
node-version-file: '.nvmrc' # node-version-file: '.nvmrc'
cache: 'yarn' # cache: 'yarn'
- uses: KittyCAD/action-install-cli@main # - uses: KittyCAD/action-install-cli@main
- name: Install dependencies # - name: Install dependencies
run: yarn # run: yarn
- name: Cache Playwright Browsers # - name: Cache Playwright Browsers
uses: actions/cache@v4 # uses: actions/cache@v4
with: # with:
path: | # path: |
~/.cache/ms-playwright/ # ~/.cache/ms-playwright/
key: ${{ runner.os }}-playwright-${{ hashFiles('yarn.lock') }} # key: ${{ runner.os }}-playwright-${{ hashFiles('yarn.lock') }}
- name: Install Playwright Browsers # - name: Install Playwright Browsers
run: yarn playwright install --with-deps # run: yarn playwright install --with-deps
- name: Download Wasm Cache # - name: Download Wasm Cache
id: download-wasm # id: download-wasm
if: needs.check-rust-changes.outputs.rust-changed == 'false' # if: needs.check-rust-changes.outputs.rust-changed == 'false'
uses: dawidd6/action-download-artifact@v6 # uses: dawidd6/action-download-artifact@v6
continue-on-error: true # continue-on-error: true
with: # with:
github_token: ${{secrets.GITHUB_TOKEN}} # github_token: ${{secrets.GITHUB_TOKEN}}
name: wasm-bundle # name: wasm-bundle
workflow: build-and-store-wasm.yml # workflow: build-and-store-wasm.yml
branch: main # branch: main
path: src/wasm-lib/pkg # path: src/wasm-lib/pkg
- name: copy wasm blob # - name: copy wasm blob
if: needs.check-rust-changes.outputs.rust-changed == 'false' # if: needs.check-rust-changes.outputs.rust-changed == 'false'
run: cp src/wasm-lib/pkg/wasm_lib_bg.wasm public # run: cp src/wasm-lib/pkg/wasm_lib_bg.wasm public
continue-on-error: true # continue-on-error: true
- name: Setup Rust # - name: Setup Rust
uses: dtolnay/rust-toolchain@stable # uses: dtolnay/rust-toolchain@stable
- name: Cache Wasm (because rust diff) # - name: Cache Wasm (because rust diff)
if: needs.check-rust-changes.outputs.rust-changed == 'true' # if: needs.check-rust-changes.outputs.rust-changed == 'true'
uses: Swatinem/rust-cache@v2 # uses: Swatinem/rust-cache@v2
with: # with:
workspaces: './src/wasm-lib' # workspaces: './src/wasm-lib'
- name: OR Cache Wasm (because wasm cache failed) # - name: OR Cache Wasm (because wasm cache failed)
if: steps.download-wasm.outcome == 'failure' # if: steps.download-wasm.outcome == 'failure'
uses: Swatinem/rust-cache@v2 # uses: Swatinem/rust-cache@v2
with: # with:
workspaces: './src/wasm-lib' # workspaces: './src/wasm-lib'
- name: Install vector # - name: Install vector
run: | # run: |
curl --proto '=https' --tlsv1.2 -sSfL https://sh.vector.dev > /tmp/vector.sh # curl --proto '=https' --tlsv1.2 -sSfL https://sh.vector.dev > /tmp/vector.sh
chmod +x /tmp/vector.sh # chmod +x /tmp/vector.sh
/tmp/vector.sh -y -no-modify-path # /tmp/vector.sh -y -no-modify-path
mkdir -p /tmp/vector # mkdir -p /tmp/vector
cp .github/workflows/vector.toml /tmp/vector.toml # cp .github/workflows/vector.toml /tmp/vector.toml
sed -i "s#GITHUB_WORKFLOW#${GITHUB_WORKFLOW}#g" /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_REPOSITORY#${GITHUB_REPOSITORY}#g" /tmp/vector.toml
sed -i "s#GITHUB_SHA#${GITHUB_SHA}#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#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 # sed -i "s#GH_ACTIONS_AXIOM_TOKEN#${{secrets.GH_ACTIONS_AXIOM_TOKEN}}#g" /tmp/vector.toml
cat /tmp/vector.toml # cat /tmp/vector.toml
${HOME}/.vector/bin/vector --config /tmp/vector.toml & # ${HOME}/.vector/bin/vector --config /tmp/vector.toml &
- name: Build Wasm (because rust diff) # - name: Build Wasm (because rust diff)
if: needs.check-rust-changes.outputs.rust-changed == 'true' # if: needs.check-rust-changes.outputs.rust-changed == 'true'
run: yarn build:wasm # run: yarn build:wasm
- name: OR Build Wasm (because wasm cache failed) # - name: OR Build Wasm (because wasm cache failed)
if: steps.download-wasm.outcome == 'failure' # if: steps.download-wasm.outcome == 'failure'
run: yarn build:wasm # run: yarn build:wasm
- name: build web # - name: build web
run: yarn build:local # run: yarn build:local
- name: Run ubuntu/chrome snapshots # - name: Run ubuntu/chrome snapshots
run: | # run: |
yarn playwright test --project="Google Chrome" --retries="3" --update-snapshots --grep=@snapshot --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }} # yarn playwright test --project="Google Chrome" --retries="3" --update-snapshots --grep=@snapshot --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }}
env: # env:
CI: true # CI: true
token: ${{ secrets.KITTYCAD_API_TOKEN_DEV }} # token: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
snapshottoken: ${{ secrets.KITTYCAD_API_TOKEN }} # snapshottoken: ${{ secrets.KITTYCAD_API_TOKEN }}
- uses: actions/upload-artifact@v4 # - uses: actions/upload-artifact@v4
if: always() # if: always()
with: # with:
name: playwright-report-ubuntu-snapshot-${{ matrix.shardIndex }}-${{ github.sha }} # name: playwright-report-ubuntu-snapshot-${{ matrix.shardIndex }}-${{ github.sha }}
path: playwright-report/ # path: playwright-report/
retention-days: 30 # retention-days: 30
overwrite: true # overwrite: true
- name: Clean up test-results # - name: Clean up test-results
if: always() # if: always()
continue-on-error: true # continue-on-error: true
run: rm -r test-results # run: rm -r test-results
- name: check for changes # - name: check for changes
id: git-check # id: git-check
run: | # run: |
git add . # git add .
if git status | grep -q "Changes to be committed" # if git status | grep -q "Changes to be committed"
then echo "modified=true" >> $GITHUB_OUTPUT # then echo "modified=true" >> $GITHUB_OUTPUT
else echo "modified=false" >> $GITHUB_OUTPUT # else echo "modified=false" >> $GITHUB_OUTPUT
fi # fi
- name: Commit changes, if any # - name: Commit changes, if any
if: steps.git-check.outputs.modified == 'true' # if: steps.git-check.outputs.modified == 'true'
run: | # run: |
git add . # git add .
git config --local user.email "github-actions[bot]@users.noreply.github.com" # git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]" # git config --local user.name "github-actions[bot]"
git remote set-url origin https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git # git remote set-url origin https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git
git fetch origin # git fetch origin
echo ${{ github.head_ref }} # echo ${{ github.head_ref }}
git checkout ${{ github.head_ref }} # git checkout ${{ github.head_ref }}
# TODO when webkit works on ubuntu remove the os part of the commit message # # TODO when webkit works on ubuntu remove the os part of the commit message
git commit -am "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)" || true # git commit -am "A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu)" || true
git push # git push
git push origin ${{ github.head_ref }} # git push origin ${{ github.head_ref }}
# only upload artifacts if there's actually changes # # only upload artifacts if there's actually changes
- uses: actions/upload-artifact@v4 # - uses: actions/upload-artifact@v4
if: steps.git-check.outputs.modified == 'true' # if: steps.git-check.outputs.modified == 'true'
with: # with:
name: playwright-report-ubuntu-${{ matrix.shardIndex }}-${{ github.sha }} # name: playwright-report-ubuntu-${{ matrix.shardIndex }}-${{ github.sha }}
path: playwright-report/ # path: playwright-report/
retention-days: 30 # retention-days: 30
# if have previous run results, use them # # if have previous run results, use them
- uses: actions/download-artifact@v4 # - uses: actions/download-artifact@v4
if: always() # if: always()
continue-on-error: true # continue-on-error: true
with: # with:
name: test-results-ubuntu-${{ matrix.shardIndex }}-${{ github.sha }} # name: test-results-ubuntu-${{ matrix.shardIndex }}-${{ github.sha }}
path: test-results/ # path: test-results/
- name: Run ubuntu/chrome flow (with retries) # - name: Run ubuntu/chrome flow (with retries)
id: retry # id: retry
if: always() # if: always()
run: | # run: |
if [[ ! -f "test-results/.last-run.json" ]]; then # if [[ ! -f "test-results/.last-run.json" ]]; then
# if no last run artifact, than run plawright normally # # if no last run artifact, than run plawright normally
echo "run playwright normally" # echo "run playwright normally"
yarn playwright test --project="Google Chrome" --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }} --grep-invert='@(snapshot|electron)' || true # yarn playwright test --project="Google Chrome" --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }} --grep-invert='@(snapshot|electron)' || true
# # # send to axiom
# node playwrightProcess.mjs | tee /tmp/github-actions.log > /dev/null 2>&1
# fi
# retry=1
# max_retrys=4
# # retry failed tests, doing our own retries because using inbuilt playwright retries causes connection issues
# while [[ $retry -le $max_retrys ]]; do
# if [[ -f "test-results/.last-run.json" ]]; then
# failed_tests=$(jq '.failedTests | length' test-results/.last-run.json)
# if [[ $failed_tests -gt 0 ]]; then
# echo "retried=true" >>$GITHUB_OUTPUT
# echo "run playwright with last failed tests and retry $retry"
# yarn playwright test --project="Google Chrome" --last-failed --grep-invert='@(snapshot|electron)' || true
# # send to axiom # # send to axiom
node playwrightProcess.mjs | tee /tmp/github-actions.log > /dev/null 2>&1 # node playwrightProcess.mjs | tee /tmp/github-actions.log > /dev/null 2>&1
fi # retry=$((retry + 1))
# else
# echo "retried=false" >>$GITHUB_OUTPUT
# exit 0
# fi
# else
# echo "retried=false" >>$GITHUB_OUTPUT
# exit 0
# fi
# done
retry=1 # echo "retried=false" >>$GITHUB_OUTPUT
max_retrys=4
# retry failed tests, doing our own retries because using inbuilt playwright retries causes connection issues # if [[ -f "test-results/.last-run.json" ]]; then
while [[ $retry -le $max_retrys ]]; do # failed_tests=$(jq '.failedTests | length' test-results/.last-run.json)
if [[ -f "test-results/.last-run.json" ]]; then # if [[ $failed_tests -gt 0 ]]; then
failed_tests=$(jq '.failedTests | length' test-results/.last-run.json) # # if it still fails after 3 retrys, then fail the job
if [[ $failed_tests -gt 0 ]]; then # exit 1
echo "retried=true" >>$GITHUB_OUTPUT # fi
echo "run playwright with last failed tests and retry $retry" # fi
yarn playwright test --project="Google Chrome" --last-failed --grep-invert='@(snapshot|electron)' || true # exit 0
# send to axiom # env:
node playwrightProcess.mjs | tee /tmp/github-actions.log > /dev/null 2>&1 # CI: true
retry=$((retry + 1)) # token: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
else # - name: send to axiom
echo "retried=false" >>$GITHUB_OUTPUT # if: always()
exit 0 # shell: bash
fi # run: |
else # node playwrightProcess.mjs | tee /tmp/github-actions.log
echo "retried=false" >>$GITHUB_OUTPUT # - uses: actions/upload-artifact@v4
exit 0 # if: always()
fi # with:
done # name: test-results-ubuntu-${{ matrix.shardIndex }}-${{ github.sha }}
# path: test-results/
echo "retried=false" >>$GITHUB_OUTPUT # retention-days: 30
# overwrite: true
if [[ -f "test-results/.last-run.json" ]]; then # - uses: actions/upload-artifact@v4
failed_tests=$(jq '.failedTests | length' test-results/.last-run.json) # if: always()
if [[ $failed_tests -gt 0 ]]; then # with:
# if it still fails after 3 retrys, then fail the job # name: playwright-report-ubuntu-${{ matrix.shardIndex }}-${{ github.sha }}
exit 1 # path: playwright-report/
fi # retention-days: 30
fi # overwrite: true
exit 0
env:
CI: true
token: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
- name: send to axiom
if: always()
shell: bash
run: |
node playwrightProcess.mjs | tee /tmp/github-actions.log
- uses: actions/upload-artifact@v4
if: always()
with:
name: test-results-ubuntu-${{ matrix.shardIndex }}-${{ github.sha }}
path: test-results/
retention-days: 30
overwrite: true
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report-ubuntu-${{ matrix.shardIndex }}-${{ github.sha }}
path: playwright-report/
retention-days: 30
overwrite: true
playwright-electron: playwright-electron:
timeout-minutes: 30 timeout-minutes: 30
@ -388,151 +388,151 @@ jobs:
retention-days: 30 retention-days: 30
overwrite: true overwrite: true
playwright-macos: # playwright-macos:
timeout-minutes: 30 # timeout-minutes: 30
runs-on: macos-14 # runs-on: macos-14
strategy: # strategy:
fail-fast: false # fail-fast: false
matrix: # matrix:
shardIndex: [1, 2, 3, 4] # shardIndex: [1, 2, 3, 4]
shardTotal: [4] # shardTotal: [4]
needs: check-rust-changes # needs: check-rust-changes
steps: # steps:
- name: Tune GitHub-hosted runner network # - name: Tune GitHub-hosted runner network
uses: smorimoto/tune-github-hosted-runner-network@v1 # uses: smorimoto/tune-github-hosted-runner-network@v1
- uses: actions/checkout@v4 # - uses: actions/checkout@v4
- uses: actions/setup-node@v4 # - uses: actions/setup-node@v4
with: # with:
node-version-file: '.nvmrc' # node-version-file: '.nvmrc'
cache: 'yarn' # cache: 'yarn'
- name: Install dependencies # - name: Install dependencies
run: yarn # run: yarn
- name: Cache Playwright Browsers # - name: Cache Playwright Browsers
uses: actions/cache@v4 # uses: actions/cache@v4
with: # with:
path: | # path: |
~/.cache/ms-playwright # ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ hashFiles('**/package-lock.json') }} # key: ${{ runner.os }}-playwright-${{ hashFiles('**/package-lock.json') }}
restore-keys: | # restore-keys: |
${{ runner.os }}-playwright- # ${{ runner.os }}-playwright-
- name: Install Playwright Browsers # - name: Install Playwright Browsers
run: yarn playwright install --with-deps # run: yarn playwright install --with-deps
- name: Download Wasm Cache # - name: Download Wasm Cache
id: download-wasm # id: download-wasm
if: needs.check-rust-changes.outputs.rust-changed == 'false' # if: needs.check-rust-changes.outputs.rust-changed == 'false'
uses: dawidd6/action-download-artifact@v6 # uses: dawidd6/action-download-artifact@v6
continue-on-error: true # continue-on-error: true
with: # with:
github_token: ${{secrets.GITHUB_TOKEN}} # github_token: ${{secrets.GITHUB_TOKEN}}
name: wasm-bundle # name: wasm-bundle
workflow: build-and-store-wasm.yml # workflow: build-and-store-wasm.yml
branch: main # branch: main
path: src/wasm-lib/pkg # path: src/wasm-lib/pkg
- name: copy wasm blob # - name: copy wasm blob
if: needs.check-rust-changes.outputs.rust-changed == 'false' # if: needs.check-rust-changes.outputs.rust-changed == 'false'
run: cp src/wasm-lib/pkg/wasm_lib_bg.wasm public # run: cp src/wasm-lib/pkg/wasm_lib_bg.wasm public
continue-on-error: true # continue-on-error: true
- name: Setup Rust # - name: Setup Rust
uses: dtolnay/rust-toolchain@stable # uses: dtolnay/rust-toolchain@stable
- name: Cache Wasm (because rust diff) # - name: Cache Wasm (because rust diff)
if: needs.check-rust-changes.outputs.rust-changed == 'true' # if: needs.check-rust-changes.outputs.rust-changed == 'true'
uses: Swatinem/rust-cache@v2 # uses: Swatinem/rust-cache@v2
with: # with:
workspaces: './src/wasm-lib' # workspaces: './src/wasm-lib'
- name: OR Cache Wasm (because wasm cache failed) # - name: OR Cache Wasm (because wasm cache failed)
if: steps.download-wasm.outcome == 'failure' # if: steps.download-wasm.outcome == 'failure'
uses: Swatinem/rust-cache@v2 # uses: Swatinem/rust-cache@v2
with: # with:
workspaces: './src/wasm-lib' # workspaces: './src/wasm-lib'
- name: Install vector # - name: Install vector
run: | # run: |
curl --proto '=https' --tlsv1.2 -sSfL https://sh.vector.dev > /tmp/vector.sh # curl --proto '=https' --tlsv1.2 -sSfL https://sh.vector.dev > /tmp/vector.sh
chmod +x /tmp/vector.sh # chmod +x /tmp/vector.sh
/tmp/vector.sh -y -no-modify-path # /tmp/vector.sh -y -no-modify-path
mkdir -p /tmp/vector # mkdir -p /tmp/vector
cp .github/workflows/vector.toml /tmp/vector.toml # cp .github/workflows/vector.toml /tmp/vector.toml
sed -i "" "s#GITHUB_WORKFLOW#${GITHUB_WORKFLOW}#g" /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_REPOSITORY#${GITHUB_REPOSITORY}#g" /tmp/vector.toml
sed -i "" "s#GITHUB_SHA#${GITHUB_SHA}#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#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 # sed -i "" "s#GH_ACTIONS_AXIOM_TOKEN#${{secrets.GH_ACTIONS_AXIOM_TOKEN}}#g" /tmp/vector.toml
cat /tmp/vector.toml # cat /tmp/vector.toml
${HOME}/.vector/bin/vector --config /tmp/vector.toml & # ${HOME}/.vector/bin/vector --config /tmp/vector.toml &
- name: Build Wasm (because rust diff) # - name: Build Wasm (because rust diff)
if: needs.check-rust-changes.outputs.rust-changed == 'true' # if: needs.check-rust-changes.outputs.rust-changed == 'true'
run: yarn build:wasm # run: yarn build:wasm
- name: OR Build Wasm (because wasm cache failed) # - name: OR Build Wasm (because wasm cache failed)
if: steps.download-wasm.outcome == 'failure' # if: steps.download-wasm.outcome == 'failure'
run: yarn build:wasm # run: yarn build:wasm
- name: build web # - name: build web
run: yarn build:local # run: yarn build:local
# if have previous run results, use them # # if have previous run results, use them
- uses: actions/download-artifact@v4 # - uses: actions/download-artifact@v4
if: ${{ always() }} # if: ${{ always() }}
continue-on-error: true # continue-on-error: true
with: # with:
name: test-results-macos-${{ matrix.shardIndex }}-${{ github.sha }} # name: test-results-macos-${{ matrix.shardIndex }}-${{ github.sha }}
path: test-results/ # path: test-results/
- name: Run macos/safari flow (with retries) # - name: Run macos/safari flow (with retries)
id: retry # id: retry
if: always() # if: always()
run: | # run: |
if [[ ! -f "test-results/.last-run.json" ]]; then # if [[ ! -f "test-results/.last-run.json" ]]; then
# if no last run artifact, than run plawright normally # # if no last run artifact, than run plawright normally
echo "run playwright normally" # echo "run playwright normally"
yarn playwright test --project="webkit" --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }} --grep-invert='@(snapshot|electron)' || true # yarn playwright test --project="webkit" --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }} --grep-invert='@(snapshot|electron)' || true
# # # send to axiom
# node playwrightProcess.mjs | tee /tmp/github-actions.log > /dev/null 2>&1
# fi
# retry=1
# max_retrys=4
# # retry failed tests, doing our own retries because using inbuilt playwright retries causes connection issues
# while [[ $retry -le $max_retrys ]]; do
# if [[ -f "test-results/.last-run.json" ]]; then
# failed_tests=$(jq '.failedTests | length' test-results/.last-run.json)
# if [[ $failed_tests -gt 0 ]]; then
# echo "retried=true" >>$GITHUB_OUTPUT
# echo "run playwright with last failed tests and retry $retry"
# yarn playwright test --project="webkit" --last-failed --grep-invert='@(snapshot|electron)' || true
# # send to axiom # # send to axiom
node playwrightProcess.mjs | tee /tmp/github-actions.log > /dev/null 2>&1 # node playwrightProcess.mjs | tee /tmp/github-actions.log > /dev/null 2>&1
fi # retry=$((retry + 1))
# else
# echo "retried=false" >>$GITHUB_OUTPUT
# exit 0
# fi
# else
# echo "retried=false" >>$GITHUB_OUTPUT
# exit 0
# fi
# done
retry=1 # echo "retried=false" >>$GITHUB_OUTPUT
max_retrys=4
# retry failed tests, doing our own retries because using inbuilt playwright retries causes connection issues # if [[ -f "test-results/.last-run.json" ]]; then
while [[ $retry -le $max_retrys ]]; do # failed_tests=$(jq '.failedTests | length' test-results/.last-run.json)
if [[ -f "test-results/.last-run.json" ]]; then # if [[ $failed_tests -gt 0 ]]; then
failed_tests=$(jq '.failedTests | length' test-results/.last-run.json) # # if it still fails after 3 retrys, then fail the job
if [[ $failed_tests -gt 0 ]]; then # exit 1
echo "retried=true" >>$GITHUB_OUTPUT # fi
echo "run playwright with last failed tests and retry $retry" # fi
yarn playwright test --project="webkit" --last-failed --grep-invert='@(snapshot|electron)' || true # exit 0
# send to axiom # env:
node playwrightProcess.mjs | tee /tmp/github-actions.log > /dev/null 2>&1 # CI: true
retry=$((retry + 1)) # token: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
else # - uses: actions/upload-artifact@v4
echo "retried=false" >>$GITHUB_OUTPUT # if: ${{ always() }}
exit 0 # with:
fi # name: test-results-macos-${{ matrix.shardIndex }}-${{ github.sha }}
else # path: test-results/
echo "retried=false" >>$GITHUB_OUTPUT # retention-days: 30
exit 0 # overwrite: true
fi # - uses: actions/upload-artifact@v4
done # if: ${{ always() }}
# with:
echo "retried=false" >>$GITHUB_OUTPUT # name: playwright-report-macos-${{ matrix.shardIndex }}-${{ github.sha }}
# path: playwright-report/
if [[ -f "test-results/.last-run.json" ]]; then # retention-days: 30
failed_tests=$(jq '.failedTests | length' test-results/.last-run.json) # overwrite: true
if [[ $failed_tests -gt 0 ]]; then
# if it still fails after 3 retrys, then fail the job
exit 1
fi
fi
exit 0
env:
CI: true
token: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
- uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: test-results-macos-${{ matrix.shardIndex }}-${{ github.sha }}
path: test-results/
retention-days: 30
overwrite: true
- uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: playwright-report-macos-${{ matrix.shardIndex }}-${{ github.sha }}
path: playwright-report/
retention-days: 30
overwrite: true