-
-
Notifications
You must be signed in to change notification settings - Fork 2k
ci: Add CI step to check if precompiled regl shaders need to be updated #7786
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
ea52bec
3417dd7
c79c346
6f66274
42b3c85
4213feb
81ef722
0530f78
c089676
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -23,6 +23,7 @@ jobs: | |
| outputs: | ||
| stackgl_modules: ${{ steps.check.outputs.stackgl_modules }} | ||
| topojson: ${{ steps.check.outputs.topojson }} | ||
| regl_codegen: ${{ steps.check.outputs.regl_codegen }} | ||
| steps: | ||
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| with: | ||
|
|
@@ -42,6 +43,12 @@ jobs: | |
| if git diff --name-only "$BASE"...HEAD -- stackgl_modules/ | grep -q .; then | ||
| echo "stackgl_modules=true" >> "$GITHUB_OUTPUT" | ||
| fi | ||
| # If any of the directories listed below have changed, we need to re-run the regl-codegen step | ||
| # stackgl_modules/ is listed here too because the regl-* shader libs live there; | ||
| # changes can alter shader output and require regenerating the precompiled shaders. | ||
| if git diff --name-only "$BASE"...HEAD -- src/traces/scattergl/ src/traces/scatterpolargl/ src/traces/splom/ src/traces/parcoords/ src/lib/prepare_regl.js stackgl_modules/ devtools/regl_codegen/ | grep -q .; then | ||
| echo "regl_codegen=true" >> "$GITHUB_OUTPUT" | ||
| fi | ||
|
|
||
| # ============================================================ | ||
| # Root build job - all dependent jobs fan out from here | ||
|
|
@@ -753,3 +760,54 @@ jobs: | |
| name: topojson-dist | ||
| retention-days: 7 | ||
| path: topojson/dist/ | ||
|
|
||
| check-regl-codegen: | ||
| needs: [detect-changes, install-and-cibuild] | ||
| if: >- | ||
| (github.event_name == 'push' && github.ref_name == github.event.repository.default_branch) || | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @camdecoster Does this mean the job will only be triggered on push to
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We want it to run on pull requests also, right?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It runs on pushes to the default branch ("master") or if changes were made to any of the directories that would affect the precompiled shaders. This means that it can run for PRs too. |
||
| needs.detect-changes.outputs.regl_codegen == 'true' | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 10 | ||
| steps: | ||
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| - uses: ./.github/actions/setup-workspace | ||
| - uses: ./.github/actions/setup-chrome | ||
|
|
||
| - name: Run regl codegen | ||
| run: | | ||
| # Wipe the codegen output dir so orphaned shader files surface as deletions in the diff below. | ||
| rm -rf src/generated/regl-codegen/* | ||
| node devtools/regl_codegen/server.mjs & | ||
| SERVER_PID=$! | ||
| until curl -sf -o /dev/null http://localhost:3000/build/regl_codegen-bundle.js 2>/dev/null; do | ||
| sleep 1 | ||
| done | ||
| $CHROME_BIN --headless=new --no-sandbox --enable-unsafe-swiftshader --ignore-gpu-blocklist http://localhost:3000/devtools/regl_codegen/index.html & | ||
| wait $SERVER_PID | ||
|
|
||
| - name: Check regl precompiled shaders are up to date | ||
| run: | | ||
| # git add -N so newly-generated (untracked) shader files show up in git diff | ||
| git add -N src/generated/regl-codegen/ | ||
| if ! git diff --exit-code \ | ||
| src/generated/regl-codegen/ \ | ||
| src/traces/scattergl/regl_precompiled.js \ | ||
| src/traces/scatterpolargl/regl_precompiled.js \ | ||
| src/traces/splom/regl_precompiled.js \ | ||
| src/traces/parcoords/regl_precompiled.js; then | ||
| echo "::error::Regl precompiled shaders are out of date. Download the 'regl-codegen' artifact from this workflow run, extract it into src/, and commit the updated files to this pull request." | ||
| exit 1 | ||
| fi | ||
|
|
||
| - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | ||
| name: Upload updated regl codegen files | ||
| if: failure() | ||
| with: | ||
| name: regl-codegen | ||
| retention-days: 7 | ||
| path: | | ||
| src/generated/regl-codegen/ | ||
| src/traces/scattergl/regl_precompiled.js | ||
| src/traces/scatterpolargl/regl_precompiled.js | ||
| src/traces/splom/regl_precompiled.js | ||
| src/traces/parcoords/regl_precompiled.js | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,13 +1,13 @@ | ||
| 'use strict'; | ||
| var v0 = require('../../generated/regl-codegen/453a70fefa48db31713162aeb1ac438cb8579f54504f3b23acf32128df3dfd45'); | ||
| var v1 = require('../../generated/regl-codegen/30680f8f6712ef1af5cf7547e0af35b036fb300c67b07967cf448492ff4de4d0'); | ||
| var v2 = require('../../generated/regl-codegen/a3970baf1d8cac9305ee830c7026550387343d4dde2353dd86a4d082c97d3470'); | ||
| var v3 = require('../../generated/regl-codegen/3fd666968f3ce90d1c048b7a9aab515f3ce387a5401a10f8b66121c9469d1c0d'); | ||
| var v0 = require('../../generated/regl-codegen/30680f8f6712ef1af5cf7547e0af35b036fb300c67b07967cf448492ff4de4d0'); | ||
| var v1 = require('../../generated/regl-codegen/3fd666968f3ce90d1c048b7a9aab515f3ce387a5401a10f8b66121c9469d1c0d'); | ||
| var v2 = require('../../generated/regl-codegen/453a70fefa48db31713162aeb1ac438cb8579f54504f3b23acf32128df3dfd45'); | ||
| var v3 = require('../../generated/regl-codegen/a3970baf1d8cac9305ee830c7026550387343d4dde2353dd86a4d082c97d3470'); | ||
|
|
||
| /* eslint-disable quote-props */ | ||
| module.exports = { | ||
| '453a70fefa48db31713162aeb1ac438cb8579f54504f3b23acf32128df3dfd45': v0, | ||
| '30680f8f6712ef1af5cf7547e0af35b036fb300c67b07967cf448492ff4de4d0': v1, | ||
| 'a3970baf1d8cac9305ee830c7026550387343d4dde2353dd86a4d082c97d3470': v2, | ||
| '3fd666968f3ce90d1c048b7a9aab515f3ce387a5401a10f8b66121c9469d1c0d': v3 | ||
| '30680f8f6712ef1af5cf7547e0af35b036fb300c67b07967cf448492ff4de4d0': v0, | ||
| '3fd666968f3ce90d1c048b7a9aab515f3ce387a5401a10f8b66121c9469d1c0d': v1, | ||
| '453a70fefa48db31713162aeb1ac438cb8579f54504f3b23acf32128df3dfd45': v2, | ||
| 'a3970baf1d8cac9305ee830c7026550387343d4dde2353dd86a4d082c97d3470': v3 | ||
| }; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,25 +1,25 @@ | ||
| 'use strict'; | ||
| var v0 = require('../../generated/regl-codegen/3e771157d23b4793771f65d83e6387262ed73d488209157f19a7fa027bddd71b'); | ||
| var v1 = require('../../generated/regl-codegen/cbf700f001fff25b649fba9c37fa0dc6631c1cdee318ad49473d28ec10dcee81'); | ||
| var v2 = require('../../generated/regl-codegen/8fad2284703471df7c0e0d0a7b96d983e8c53f6d707dd55d5921c1eab71f6623'); | ||
| var v3 = require('../../generated/regl-codegen/fe5b6844077cde1bdd7273f4495969fad93500c26a69b62e74ec2664c447bcc7'); | ||
| var v4 = require('../../generated/regl-codegen/db1b82c68771e7f5012fad1fbdae7ff23b526e58d2995bf6dd2cf30024e0f41d'); | ||
| var v5 = require('../../generated/regl-codegen/49e82bba439f1d9d441c17ba252d05640bc63fefdf22d1219993633af7730210'); | ||
| var v6 = require('../../generated/regl-codegen/dbd1cc9126a137a605df67dc0706e55116f04e33b4545a80042031752de5aef5'); | ||
| var v7 = require('../../generated/regl-codegen/bfc540da96a87fcc039073cb37b45e6b81ef5ee6ef3529d726ceed8336354019'); | ||
| var v8 = require('../../generated/regl-codegen/6a5d6bd29c15cf7614221b94c3f384df47c2c46fbe4456e8c57b5cd14c84d923'); | ||
| var v9 = require('../../generated/regl-codegen/8902aff2b23b600f8103bcc84a8af2999d28795208aedadc2db06f921f9c7034'); | ||
| var v1 = require('../../generated/regl-codegen/49e82bba439f1d9d441c17ba252d05640bc63fefdf22d1219993633af7730210'); | ||
| var v2 = require('../../generated/regl-codegen/6a5d6bd29c15cf7614221b94c3f384df47c2c46fbe4456e8c57b5cd14c84d923'); | ||
| var v3 = require('../../generated/regl-codegen/8902aff2b23b600f8103bcc84a8af2999d28795208aedadc2db06f921f9c7034'); | ||
| var v4 = require('../../generated/regl-codegen/8fad2284703471df7c0e0d0a7b96d983e8c53f6d707dd55d5921c1eab71f6623'); | ||
| var v5 = require('../../generated/regl-codegen/bfc540da96a87fcc039073cb37b45e6b81ef5ee6ef3529d726ceed8336354019'); | ||
| var v6 = require('../../generated/regl-codegen/cbf700f001fff25b649fba9c37fa0dc6631c1cdee318ad49473d28ec10dcee81'); | ||
| var v7 = require('../../generated/regl-codegen/db1b82c68771e7f5012fad1fbdae7ff23b526e58d2995bf6dd2cf30024e0f41d'); | ||
| var v8 = require('../../generated/regl-codegen/dbd1cc9126a137a605df67dc0706e55116f04e33b4545a80042031752de5aef5'); | ||
| var v9 = require('../../generated/regl-codegen/fe5b6844077cde1bdd7273f4495969fad93500c26a69b62e74ec2664c447bcc7'); | ||
|
|
||
| /* eslint-disable quote-props */ | ||
| module.exports = { | ||
| '3e771157d23b4793771f65d83e6387262ed73d488209157f19a7fa027bddd71b': v0, | ||
| 'cbf700f001fff25b649fba9c37fa0dc6631c1cdee318ad49473d28ec10dcee81': v1, | ||
| '8fad2284703471df7c0e0d0a7b96d983e8c53f6d707dd55d5921c1eab71f6623': v2, | ||
| 'fe5b6844077cde1bdd7273f4495969fad93500c26a69b62e74ec2664c447bcc7': v3, | ||
| 'db1b82c68771e7f5012fad1fbdae7ff23b526e58d2995bf6dd2cf30024e0f41d': v4, | ||
| '49e82bba439f1d9d441c17ba252d05640bc63fefdf22d1219993633af7730210': v5, | ||
| 'dbd1cc9126a137a605df67dc0706e55116f04e33b4545a80042031752de5aef5': v6, | ||
| 'bfc540da96a87fcc039073cb37b45e6b81ef5ee6ef3529d726ceed8336354019': v7, | ||
| '6a5d6bd29c15cf7614221b94c3f384df47c2c46fbe4456e8c57b5cd14c84d923': v8, | ||
| '8902aff2b23b600f8103bcc84a8af2999d28795208aedadc2db06f921f9c7034': v9 | ||
| '49e82bba439f1d9d441c17ba252d05640bc63fefdf22d1219993633af7730210': v1, | ||
| '6a5d6bd29c15cf7614221b94c3f384df47c2c46fbe4456e8c57b5cd14c84d923': v2, | ||
| '8902aff2b23b600f8103bcc84a8af2999d28795208aedadc2db06f921f9c7034': v3, | ||
| '8fad2284703471df7c0e0d0a7b96d983e8c53f6d707dd55d5921c1eab71f6623': v4, | ||
| 'bfc540da96a87fcc039073cb37b45e6b81ef5ee6ef3529d726ceed8336354019': v5, | ||
| 'cbf700f001fff25b649fba9c37fa0dc6631c1cdee318ad49473d28ec10dcee81': v6, | ||
| 'db1b82c68771e7f5012fad1fbdae7ff23b526e58d2995bf6dd2cf30024e0f41d': v7, | ||
| 'dbd1cc9126a137a605df67dc0706e55116f04e33b4545a80042031752de5aef5': v8, | ||
| 'fe5b6844077cde1bdd7273f4495969fad93500c26a69b62e74ec2664c447bcc7': v9 | ||
| }; |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,25 +1,25 @@ | ||
| 'use strict'; | ||
| var v0 = require('../../generated/regl-codegen/3e771157d23b4793771f65d83e6387262ed73d488209157f19a7fa027bddd71b'); | ||
| var v1 = require('../../generated/regl-codegen/cbf700f001fff25b649fba9c37fa0dc6631c1cdee318ad49473d28ec10dcee81'); | ||
| var v2 = require('../../generated/regl-codegen/8fad2284703471df7c0e0d0a7b96d983e8c53f6d707dd55d5921c1eab71f6623'); | ||
| var v3 = require('../../generated/regl-codegen/fe5b6844077cde1bdd7273f4495969fad93500c26a69b62e74ec2664c447bcc7'); | ||
| var v4 = require('../../generated/regl-codegen/db1b82c68771e7f5012fad1fbdae7ff23b526e58d2995bf6dd2cf30024e0f41d'); | ||
| var v5 = require('../../generated/regl-codegen/49e82bba439f1d9d441c17ba252d05640bc63fefdf22d1219993633af7730210'); | ||
| var v6 = require('../../generated/regl-codegen/dbd1cc9126a137a605df67dc0706e55116f04e33b4545a80042031752de5aef5'); | ||
| var v7 = require('../../generated/regl-codegen/bfc540da96a87fcc039073cb37b45e6b81ef5ee6ef3529d726ceed8336354019'); | ||
| var v8 = require('../../generated/regl-codegen/6a5d6bd29c15cf7614221b94c3f384df47c2c46fbe4456e8c57b5cd14c84d923'); | ||
| var v9 = require('../../generated/regl-codegen/8902aff2b23b600f8103bcc84a8af2999d28795208aedadc2db06f921f9c7034'); | ||
| var v1 = require('../../generated/regl-codegen/49e82bba439f1d9d441c17ba252d05640bc63fefdf22d1219993633af7730210'); | ||
| var v2 = require('../../generated/regl-codegen/6a5d6bd29c15cf7614221b94c3f384df47c2c46fbe4456e8c57b5cd14c84d923'); | ||
| var v3 = require('../../generated/regl-codegen/8902aff2b23b600f8103bcc84a8af2999d28795208aedadc2db06f921f9c7034'); | ||
| var v4 = require('../../generated/regl-codegen/8fad2284703471df7c0e0d0a7b96d983e8c53f6d707dd55d5921c1eab71f6623'); | ||
| var v5 = require('../../generated/regl-codegen/bfc540da96a87fcc039073cb37b45e6b81ef5ee6ef3529d726ceed8336354019'); | ||
| var v6 = require('../../generated/regl-codegen/cbf700f001fff25b649fba9c37fa0dc6631c1cdee318ad49473d28ec10dcee81'); | ||
| var v7 = require('../../generated/regl-codegen/db1b82c68771e7f5012fad1fbdae7ff23b526e58d2995bf6dd2cf30024e0f41d'); | ||
| var v8 = require('../../generated/regl-codegen/dbd1cc9126a137a605df67dc0706e55116f04e33b4545a80042031752de5aef5'); | ||
| var v9 = require('../../generated/regl-codegen/fe5b6844077cde1bdd7273f4495969fad93500c26a69b62e74ec2664c447bcc7'); | ||
|
|
||
| /* eslint-disable quote-props */ | ||
| module.exports = { | ||
| '3e771157d23b4793771f65d83e6387262ed73d488209157f19a7fa027bddd71b': v0, | ||
| 'cbf700f001fff25b649fba9c37fa0dc6631c1cdee318ad49473d28ec10dcee81': v1, | ||
| '8fad2284703471df7c0e0d0a7b96d983e8c53f6d707dd55d5921c1eab71f6623': v2, | ||
| 'fe5b6844077cde1bdd7273f4495969fad93500c26a69b62e74ec2664c447bcc7': v3, | ||
| 'db1b82c68771e7f5012fad1fbdae7ff23b526e58d2995bf6dd2cf30024e0f41d': v4, | ||
| '49e82bba439f1d9d441c17ba252d05640bc63fefdf22d1219993633af7730210': v5, | ||
| 'dbd1cc9126a137a605df67dc0706e55116f04e33b4545a80042031752de5aef5': v6, | ||
| 'bfc540da96a87fcc039073cb37b45e6b81ef5ee6ef3529d726ceed8336354019': v7, | ||
| '6a5d6bd29c15cf7614221b94c3f384df47c2c46fbe4456e8c57b5cd14c84d923': v8, | ||
| '8902aff2b23b600f8103bcc84a8af2999d28795208aedadc2db06f921f9c7034': v9 | ||
| '49e82bba439f1d9d441c17ba252d05640bc63fefdf22d1219993633af7730210': v1, | ||
| '6a5d6bd29c15cf7614221b94c3f384df47c2c46fbe4456e8c57b5cd14c84d923': v2, | ||
| '8902aff2b23b600f8103bcc84a8af2999d28795208aedadc2db06f921f9c7034': v3, | ||
| '8fad2284703471df7c0e0d0a7b96d983e8c53f6d707dd55d5921c1eab71f6623': v4, | ||
| 'bfc540da96a87fcc039073cb37b45e6b81ef5ee6ef3529d726ceed8336354019': v5, | ||
| 'cbf700f001fff25b649fba9c37fa0dc6631c1cdee318ad49473d28ec10dcee81': v6, | ||
| 'db1b82c68771e7f5012fad1fbdae7ff23b526e58d2995bf6dd2cf30024e0f41d': v7, | ||
| 'dbd1cc9126a137a605df67dc0706e55116f04e33b4545a80042031752de5aef5': v8, | ||
| 'fe5b6844077cde1bdd7273f4495969fad93500c26a69b62e74ec2664c447bcc7': v9 | ||
| }; |
Uh oh!
There was an error while loading. Please reload this page.