GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — libprocessing/.github/workflows/visual.yml at python-particle-api · processing/libprocessing 147 lines (129 loc) · 5.24 KB / Copy pathvisual.ymlFile metadata and controls147 lines (129 loc) · 5.24 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 name: Visual # Renders tests/visual/cases.toml under lavapipe on: push: branches: [ main ] pull_request: branches: [ main ] types: [ opened, synchronize, reopened, labeled, unlabeled ] permissions: contents: read actions: read concurrency: group: visual-${{ github.event.pull_request.number || github.sha }} cancel-in-progress: true env: CARGO_TERM_COLOR: always CARGO_INCREMENTAL: 0 CARGO_PROFILE_RELEASE_DEBUG: 0 WGPU_BACKEND: vulkan WGPU_ADAPTER_NAME: llvmpipe # Catch reads of uninitialized GPU memory instead of rendering whatever was there LVP_POISON_MEMORY: "true" # llvmpipe JITs for the host CPU LP_NATIVE_VECTOR_WIDTH: "256" ODIFF_VERSION: 4.5.0 jobs: visual: name: Visual regression # Only re-run on label changes that involve the override label. if: >- github.event_name == 'push' || (github.event.action != 'labeled' && github.event.action != 'unlabeled') || github.event.label.name == 'deliberate-rendering-change' runs-on: ubuntu-24.04 timeout-minutes: 90 steps: - uses: actions/checkout@v4 with: submodules: true # PR checkouts are merge commits; HEAD^1 leads back to the main commit they're compared against. fetch-depth: 2 persist-credentials: false - uses: ./.github/actions/setup - uses: ./.github/actions/install-mesa - uses: astral-sh/setup-uv@v6 - name: Install xvfb and odiff run: | sudo apt-get install -y --no-install-recommends xvfb npm install -g "odiff-bin@$ODIFF_VERSION" - uses: actions/cache@v4 with: path: | ~/.cargo/bin/ ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-visual-${{ hashFiles('**/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-visual- ${{ runner.os }}-cargo- - name: Render run: xvfb-run -a -s "-screen 0 1920x1080x24" python3 tests/visual/visual.py render --out out/actual - uses: actions/upload-artifact@v7 with: name: visual-screenshots path: out/actual retention-days: ${{ github.event_name == 'push' && 90 || 14 }} - name: Fetch baseline from main if: github.event_name == 'pull_request' env: GH_TOKEN: ${{ github.token }} run: | # Stacked PRs merge onto their parents' merge commits, so compare against the main commit # at the bottom of the stack rather than HEAD^1 itself. sha=$(gh api "repos/$GITHUB_REPOSITORY/compare/main...$(git rev-parse HEAD^1)" --jq .merge_base_commit.sha) latest() { gh run list -R "$GITHUB_REPOSITORY" --workflow visual.yml --branch main --event push \ --commit "$sha" --limit 1 --json databaseId,status,conclusion --jq '.[0] // empty' } run=$(latest) if [ -n "$run" ] && [ "$(jq -r .status <<< "$run")" != completed ]; then id=$(jq -r .databaseId <<< "$run") echo "Waiting for main's run $id to publish screenshots" gh run watch "$id" -R "$GITHUB_REPOSITORY" --interval 30 > /dev/null || true run=$(latest) fi if [ "$(jq -r '.conclusion // empty' <<< "$run")" = success ] && gh run download "$(jq -r .databaseId <<< "$run")" -R "$GITHUB_REPOSITORY" -n visual-screenshots -D out/baseline; then echo "Using screenshots from main at $sha (run $(jq -r .databaseId <<< "$run"))" else echo "::notice::No screenshots published for main at $sha; cases are reported as new" fi - name: Compare id: compare if: github.event_name == 'pull_request' env: ALLOW_CHANGES: ${{ contains(github.event.pull_request.labels.*.name, 'deliberate-rendering-change') && '--allow-changes' || '' }} run: | mkdir -p out/baseline python3 tests/visual/visual.py compare --baseline out/baseline --actual out/actual --out out/report $ALLOW_CHANGES - uses: actions/upload-artifact@v7 id: report if: always() && hashFiles('out/report/report.html') != '' with: path: out/report/report.html archive: false retention-days: 14 - name: Summarize if: always() && hashFiles('out/report/summary.md') != '' env: PR_NUMBER: ${{ github.event.pull_request.number }} REPORT_URL: ${{ steps.report.outputs.artifact-url }} run: | mkdir -p out/comment { cat out/report/summary.md echo echo "[Open the visual report]($REPORT_URL) · [workflow run]($GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID)" } > out/comment/comment.md cat out/comment/comment.md >> "$GITHUB_STEP_SUMMARY" echo "$PR_NUMBER" > out/comment/pr jq '[.results[] | select(.status != "pass")] | length > 0' out/report/results.json > out/comment/notable - uses: actions/upload-artifact@v7 if: always() && hashFiles('out/comment/comment.md') != '' with: name: visual-comment path: out/comment retention-days: 1 |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |