[DRAFT] Persistent dev build URL #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Publish Dist | |
| on: | |
| push: | |
| branches: [master] | |
| pull_request: | |
| types: | |
| - opened | |
| - reopened | |
| - synchronize | |
| workflow_dispatch: | |
| concurrency: | |
| group: publish-dist-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| NODE_VERSION: '18' | |
| jobs: | |
| publish-dist: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| fetch-depth: 0 | |
| fetch-tags: true | |
| - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 | |
| with: | |
| node-version: ${{ env.NODE_VERSION }} | |
| cache: 'npm' | |
| - name: Set up build environment | |
| run: .github/scripts/env_build.sh | |
| - name: Preview CHANGELOG for next release (only on master) | |
| if: github.ref == 'refs/heads/master' | |
| run: npm run use-draftlogs && git --no-pager diff --color-words CHANGELOG.md || true | |
| - name: Set draft version in package.json | |
| run: | | |
| node --eval "var fs = require('fs'); var inOut = './package.json'; var data = JSON.parse(fs.readFileSync(inOut)); var a = process.argv; data.version = a[a.length - 1].replace('v', ''); fs.writeFileSync(inOut, JSON.stringify(data, null, 2) + '\n');" $(git describe) | |
| - name: View package.json diff between previous and next releases | |
| run: git --no-pager diff --color-words tags/$(git describe --tags --abbrev=0) package.json || true | |
| - name: Build dist/ | |
| run: npm run build | |
| # Upload library uncompressed to allow for testing in REPLs | |
| - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| name: Upload uncompressed plotly.js built from PR, using Node 22 | |
| with: | |
| retention-days: 30 | |
| archive: false | |
| path: dist/plotly.js | |
| - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| name: Upload Node 18 archive of plotly.js build folder | |
| with: | |
| name: dist-node18 | |
| retention-days: 7 | |
| path: dist/ | |
| - name: View dist/README.md diff between previous and next releases | |
| run: git --no-pager diff --color-words tags/$(git describe --tags --abbrev=0) dist/README.md || true | |
| - name: Preview plot-schema diff (only on master) | |
| if: github.ref == 'refs/heads/master' | |
| run: git --no-pager diff tags/$(git describe --tags --abbrev=0) dist/plot-schema.json || true | |
| - name: Test plot-schema.json diff | |
| run: diff --unified --color dist/plot-schema.json test/plot-schema.json | |
| publish-dist-node-v22: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| fetch-depth: 0 | |
| fetch-tags: true | |
| - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 | |
| with: | |
| node-version: '22.14.0' | |
| cache: 'npm' | |
| - name: Set up build environment | |
| run: .github/scripts/env_build.sh | |
| - name: Preview CHANGELOG for next release (only on master) | |
| if: github.ref == 'refs/heads/master' | |
| run: npm run use-draftlogs && git --no-pager diff --color-words CHANGELOG.md || true | |
| - name: Set draft version in package.json | |
| run: | | |
| node --eval "var fs = require('fs'); var inOut = './package.json'; var data = JSON.parse(fs.readFileSync(inOut)); var a = process.argv; data.version = a[a.length - 1].replace('v', ''); fs.writeFileSync(inOut, JSON.stringify(data, null, 2) + '\n');" $(git describe) | |
| - name: View package.json diff between previous and next releases | |
| run: git --no-pager diff --color-words tags/$(git describe --tags --abbrev=0) package.json || true | |
| - name: Build dist/ | |
| run: npm run build | |
| # This is necessary to avoid a naming collision with the upload from the Node 18 build | |
| - name: Copy library for upload | |
| run: cp dist/plotly.js dist/plotly.node22.js | |
| # Upload library uncompressed to allow for testing in REPLs | |
| - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| name: Upload uncompressed plotly.js built from PR, using Node 22 | |
| with: | |
| name: plotly.node22.js | |
| retention-days: 30 | |
| archive: false | |
| path: dist/plotly.node22.js | |
| - name: Remove copy of library | |
| run: rm dist/plotly.node22.js | |
| - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| name: Upload Node 22 archive of plotly.js build folder | |
| with: | |
| name: dist-node22 | |
| retention-days: 7 | |
| path: dist/ | |
| - name: View dist/README.md diff between previous and next releases | |
| run: git --no-pager diff --color-words tags/$(git describe --tags --abbrev=0) dist/README.md || true | |
| - name: Preview plot-schema diff (only on master) | |
| if: github.ref == 'refs/heads/master' | |
| run: git --no-pager diff tags/$(git describe --tags --abbrev=0) dist/plot-schema.json || true | |
| - name: Test plot-schema.json diff | |
| run: diff --unified --color dist/plot-schema.json test/plot-schema.json |