Update Streamlit submodule to 1.51.0 #1860
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: Test and Build | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| pull_request: | |
| branches: [ "main" ] | |
| concurrency: | |
| # https://stackoverflow.com/a/72408109 | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: ${{ github.ref != format('refs/heads/{0}', github.event.repository.default_branch) }} | |
| env: | |
| python-version-file: ".python-version" | |
| node-version-file: ".nvmrc" | |
| RUN_ALL_TESTS: ${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }} | |
| permissions: {} | |
| jobs: | |
| set-build-info: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| branch: ${{ steps.build-info.outputs.branch }} | |
| trigger-sha: ${{ steps.build-info.outputs.trigger-sha }} | |
| head-sha: ${{ steps.build-info.outputs.head-sha }} | |
| pr-number: ${{ steps.build-info.outputs.pr-number }} | |
| steps: | |
| - name: Save build info (pull_request) | |
| if: github.event_name == 'pull_request' | |
| run: | | |
| echo "${{ github.event.pull_request.head.ref }}" > branch | |
| echo "${{ github.event.pull_request.head.sha }}" > head-sha | |
| echo "${{ github.sha }}" > trigger-sha | |
| echo "${{ github.event.pull_request.number }}" > pr-number | |
| - name: Save build info (push, branch) | |
| if: github.event_name == 'push' && github.ref_type == 'branch' | |
| run: | | |
| echo "${{ github.ref_name }}" > branch | |
| echo "${{ github.sha }}" > head-sha | |
| echo "${{ github.sha }}" > trigger-sha | |
| echo "" > pr-number | |
| - name: Output build info | |
| id: build-info | |
| run: | | |
| echo "branch=$(cat branch)" >> $GITHUB_OUTPUT | |
| echo "trigger-sha=$(cat trigger-sha)" >> $GITHUB_OUTPUT | |
| echo "head-sha=$(cat head-sha)" >> $GITHUB_OUTPUT | |
| echo "pr-number=$(cat pr-number)" >> $GITHUB_OUTPUT | |
| - name: Upload build info | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| name: build-info | |
| path: | | |
| branch | |
| head-sha | |
| trigger-sha | |
| pr-number | |
| changesets: | |
| if: ${{ github.event_name == 'push' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| # `fetch-depth: 0` is required to create tags for new releases by Changesets. | |
| fetch-depth: 0 | |
| # `persist-credentials: false` is important not only for security reasons | |
| # but also to ensure that `git push --follow-tags` run by the Changesets action in the later step | |
| # don't use the default GITHUB_TOKEN, which doesn't trigger other workflows such as the release workflow. | |
| # Ref: https://github.com/orgs/community/discussions/26220 | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| node-version-file: ".nvmrc" | |
| protoc: false | |
| - name: Generate a token | |
| id: generate-token | |
| uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1 | |
| with: | |
| app-id: ${{ vars.CHANGESETS_APP_ID }} | |
| private-key: ${{ secrets.CHANGESETS_APP_PRIVATE_KEY }} | |
| permission-contents: write | |
| permission-pull-requests: write | |
| - name: Create Release Pull Request or Tag | |
| id: changesets | |
| uses: changesets/action@6a0a831ff30acef54f2c6aa1cbbc1096b066edaf # v1.7.0 | |
| with: | |
| publish: npm run changeset:release | |
| env: | |
| # PRs created using `GITHUB_TOKEN` doesn't trigger CI workflows, so we need to use a PAT or app token. | |
| # - The PAT should be fine-grained and its permissions are properly configured (R/W for Contents and Pull Requests). | |
| # - The app token should be generated using a GitHub App that has proper permissions (R/W for Contents and Pull Requests). | |
| # Ref: https://github.com/orgs/community/discussions/55906 | |
| GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }} | |
| # GITHUB_TOKEN: ${{ secrets.CHANGESETS_PAT }} | |
| - name: Save published packages info | |
| if: steps.changesets.outputs.published == 'true' | |
| run: echo '${{ steps.changesets.outputs.publishedPackages }}' > changesets-published-packages | |
| - name: Upload published packages info | |
| if: steps.changesets.outputs.published == 'true' | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| name: changesets-published-packages | |
| path: changesets-published-packages | |
| changes: # See https://github.com/dorny/paths-filter#examples | |
| runs-on: ubuntu-latest | |
| outputs: | |
| common: ${{ steps.filter.outputs.common == 'true' || steps.filter.outputs.gha == 'true' || env.RUN_ALL_TESTS == 'true' }} | |
| kernel: ${{ steps.filter.outputs.kernel == 'true' || steps.filter.outputs.gha == 'true' || env.RUN_ALL_TESTS == 'true' }} | |
| # stlite-lib: ${{ steps.filter.outputs.stlite-lib == 'true' || steps.filter.outputs.gha == 'true' || env.RUN_ALL_TESTS == 'true' }} | |
| stlite-lib: 'true' # This step does not detect changes in the `streamlit` submodule that is needed to trigger the test-stlite-lib job (https://github.com/dorny/paths-filter/issues/143), so skip checking and make it always return true as a workaround. | |
| react: ${{ steps.filter.outputs.react == 'true' || steps.filter.outputs.gha == 'true' || env.RUN_ALL_TESTS == 'true' }} | |
| browser: ${{ steps.filter.outputs.browser == 'true' || steps.filter.outputs.gha == 'true' || env.RUN_ALL_TESTS == 'true' }} | |
| sharing: ${{ steps.filter.outputs.sharing == 'true' || steps.filter.outputs.gha == 'true' || env.RUN_ALL_TESTS == 'true' }} | |
| sharing-editor: ${{ steps.filter.outputs.sharing-editor == 'true' || steps.filter.outputs.gha == 'true' || env.RUN_ALL_TESTS == 'true' }} | |
| sharing-common: ${{ steps.filter.outputs.sharing-common == 'true' || steps.filter.outputs.gha == 'true' || env.RUN_ALL_TESTS == 'true' }} | |
| desktop: ${{ steps.filter.outputs.desktop == 'true' || steps.filter.outputs.gha == 'true' || env.RUN_ALL_TESTS == 'true' }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 | |
| id: filter | |
| with: | |
| filters: | | |
| gha: | |
| - '.github/workflows/**/*' | |
| - '.github/actions/**/*' | |
| common: | |
| - 'packages/common/**/*' | |
| kernel: | |
| - 'packages/kernel/**/*' | |
| # - '!packages/kernel/py/**/*' # Not supported by paths-filter now: https://github.com/dorny/paths-filter/issues/106 | |
| # stlite-lib: # We run this job anytime. See above. | |
| # - 'packages/kernel/py/stlite-lib/**/*' | |
| # - 'streamlit/**/*' | |
| react: | |
| - 'packages/react/**/*' | |
| browser: | |
| - 'packages/browser/**/*' | |
| sharing: | |
| - 'packages/sharing/**/*' | |
| sharing-editor: | |
| - 'packages/sharing-editor/**/*' | |
| sharing-common: | |
| - 'packages/sharing-common/**/*' | |
| desktop: | |
| - 'packages/desktop/**/*' | |
| test-build-common: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.common == 'true' }} | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: packages/common | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| node-version-file: ${{ env.node-version-file }} | |
| protoc: false | |
| - name: Lint | |
| run: | | |
| yarn check:eslint | |
| yarn check:prettier | |
| - run: yarn test | |
| - run: yarn build | |
| test-kernel: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.kernel == 'true' }} | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: packages/kernel | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| python-version-file: ${{ env.python-version-file }} | |
| node-version-file: ${{ env.node-version-file }} | |
| - name: Lint | |
| run: | | |
| yarn check:eslint | |
| yarn check:prettier | |
| - run: make kernel-test | |
| working-directory: . | |
| test-stlite-lib: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.stlite-lib == 'true' }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| python-version-file: ${{ env.python-version-file }} | |
| node-version-file: ${{ env.node-version-file }} | |
| - name: Install dependencies | |
| shell: bash | |
| run: | | |
| . .venv/bin/activate | |
| cd packages/kernel/py/stlite-lib | |
| uv sync | |
| - name: Set up Streamlit and build proto | |
| run: | | |
| . .venv/bin/activate | |
| make streamlit-proto | |
| - name: Run Ruff | |
| run: | | |
| . .venv/bin/activate | |
| cd packages/kernel/py/stlite-lib | |
| uv run ruff check --output-format=github . | |
| uv run ruff format . --check | |
| - name: Run pyright | |
| run: | | |
| . .venv/bin/activate | |
| cd packages/kernel/py/stlite-lib | |
| uv run pyright | |
| - name: Run pytest | |
| shell: bash | |
| run: | | |
| . .venv/bin/activate | |
| cd packages/kernel/py/stlite-lib | |
| uv run pytest -v | |
| test-browser: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.browser == 'true' }} | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: packages/browser | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| python-version-file: ${{ env.python-version-file }} | |
| node-version-file: ${{ env.node-version-file }} | |
| - name: Lint | |
| run: | | |
| yarn check:eslint | |
| yarn check:prettier | |
| - run: yarn test | |
| test-react: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.react == 'true' }} | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: packages/react | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| python-version-file: ${{ env.python-version-file }} | |
| node-version-file: ${{ env.node-version-file }} | |
| - name: Lint | |
| run: | | |
| yarn check:eslint | |
| yarn check:prettier | |
| - run: yarn test | |
| test-sharing: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.sharing == 'true' }} | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: packages/sharing | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| node-version-file: ${{ env.node-version-file }} | |
| protoc: false | |
| - name: Lint | |
| run: | | |
| yarn check:eslint | |
| yarn check:prettier | |
| # - run: yarn test | |
| test-sharing-editor: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.sharing-editor == 'true' }} | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: packages/sharing-editor | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| node-version-file: ${{ env.node-version-file }} | |
| - run: make sharing-common | |
| working-directory: . | |
| - name: Lint | |
| run: | | |
| yarn check:eslint | |
| yarn check:prettier | |
| - run: yarn test | |
| test-sharing-common: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.sharing-common == 'true' }} | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: packages/sharing-common | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| node-version-file: ${{ env.node-version-file }} | |
| - name: Lint | |
| run: | | |
| yarn check:eslint | |
| yarn check:prettier | |
| - run: yarn build:proto | |
| - run: yarn test | |
| test-desktop: | |
| needs: changes | |
| if: ${{ needs.changes.outputs.desktop == 'true' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest] # The desktop package contains OS-dependent file paths manipulations differing between POSIX and Windows. | |
| runs-on: ${{ matrix.os }} | |
| defaults: | |
| run: | |
| working-directory: packages/desktop | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| node-version-file: ${{ env.node-version-file }} | |
| protoc: false | |
| - name: Lint | |
| if: ${{ matrix.os == 'ubuntu-latest' }} # The glob pattern passed to ESLint is hardcoded as POSIX, so it does not work on Windows. | |
| run: | | |
| yarn check:eslint | |
| yarn check:prettier | |
| - run: yarn test | |
| build-browser: | |
| if: ${{ ! failure() }} # This job should run even if the depending jobs are skipped, but not when those jobs failed: https://qiita.com/abetomo/items/d9ede7dbeeb24f723fc5#%E8%A8%AD%E5%AE%9A%E4%BE%8B4 | |
| needs: [set-build-info, test-kernel, test-stlite-lib, test-build-common, test-browser] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: write | |
| id-token: write | |
| attestations: write | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| python-version-file: ${{ env.python-version-file }} | |
| node-version-file: ${{ env.node-version-file }} | |
| # PUBLIC_URL here is set as a relative path, which is possible to the trick introduced at https://github.com/whitphx/stlite/pull/143. | |
| - name: Set PUBLIC_URL | |
| run: echo "PUBLIC_URL=." >> $GITHUB_ENV | |
| - name: Build @stlite/browser | |
| run: | | |
| . .venv/bin/activate | |
| make browser | |
| - name: Upload bundle visualizer report (@stlite/browser) | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| path: packages/browser/stats/browser.html | |
| name: visualizer-browser | |
| if-no-files-found: error | |
| - name: Package | |
| working-directory: packages/browser | |
| run: yarn pack | |
| - name: Upload the built tar ball as an artifact | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| path: packages/browser/package.tgz | |
| name: stlite-browser | |
| - name: Generate artifact attestation | |
| uses: actions/attest-build-provenance@96278af6caaf10aea03fd8d33a09a777ca52d62f # v3.2.0 | |
| with: | |
| subject-path: packages/browser/package.tgz | |
| # This step may fail when the PR is created by an external contributor and the CI is run in their scope. | |
| # We can ignore such failures because the following jobs such as E2E-testing in the post-build workflow don't necessarily need the attestation, | |
| # while the verification is done when publishing the artifact. | |
| continue-on-error: true | |
| - name: "Inform the package stats of @stlite/browser" | |
| uses: ./.github/actions/set-package-stats | |
| continue-on-error: true | |
| with: | |
| key: browser | |
| name: "@stlite/browser" | |
| input-path: packages/browser/package.tgz | |
| pr-number: ${{ needs.set-build-info.outputs.pr-number }} | |
| sticky-id: ${{ needs.set-build-info.outputs.head-sha }} | |
| # Also get stats of the built wheel files of stlite-lib and streamlit in this job. | |
| - name: Get the built wheel file path | |
| id: get-wheel-file-path | |
| run: | | |
| pushd packages/kernel/py/stlite-lib/dist | |
| echo "STLITE_LIB_WHEEL_FILEPATH=$(find $(pwd) -name "stlite_lib-*-py3-none-any.whl" -print -quit)" >> $GITHUB_OUTPUT | |
| popd | |
| pushd packages/kernel/py/streamlit/lib/dist | |
| echo "STREAMLIT_WHEEL_FILEPATH=$(find $(pwd) -name "streamlit-*.whl" -print -quit)" >> $GITHUB_OUTPUT | |
| popd | |
| - name: "Inform the package stats of stlite-lib wheel" | |
| uses: ./.github/actions/set-package-stats | |
| continue-on-error: true | |
| with: | |
| key: stlite-lib-wheel | |
| name: "stlite-lib wheel (built as a part of @stlite/browser)" | |
| input-path: ${{ steps.get-wheel-file-path.outputs.STLITE_LIB_WHEEL_FILEPATH }} | |
| pr-number: ${{ needs.set-build-info.outputs.pr-number }} | |
| sticky-id: ${{ needs.set-build-info.outputs.head-sha }} | |
| - name: "Inform the package stats of streamlit wheel" | |
| uses: ./.github/actions/set-package-stats | |
| continue-on-error: true | |
| with: | |
| key: streamlit-wheel | |
| name: "streamlit wheel (built as a part of @stlite/browser)" | |
| input-path: ${{ steps.get-wheel-file-path.outputs.STREAMLIT_WHEEL_FILEPATH }} | |
| pr-number: ${{ needs.set-build-info.outputs.pr-number }} | |
| sticky-id: ${{ needs.set-build-info.outputs.head-sha }} | |
| build-react: | |
| if: ${{ ! failure() }} # This job should run even if the depending jobs are skipped, but not when those jobs failed. | |
| needs: [set-build-info, test-kernel, test-stlite-lib, test-build-common, test-react] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: write | |
| id-token: write | |
| attestations: write | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| python-version-file: ${{ env.python-version-file }} | |
| node-version-file: ${{ env.node-version-file }} | |
| - name: Build @stlite/react | |
| run: | | |
| . .venv/bin/activate | |
| make react | |
| - name: Package | |
| working-directory: packages/react | |
| run: yarn pack | |
| - name: Upload the built tar ball as an artifact | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| path: packages/react/package.tgz | |
| name: stlite-react | |
| - name: Generate artifact attestation | |
| uses: actions/attest-build-provenance@96278af6caaf10aea03fd8d33a09a777ca52d62f # v3.2.0 | |
| with: | |
| subject-path: packages/react/package.tgz | |
| continue-on-error: true | |
| - name: "Inform the package stats of @stlite/react" | |
| uses: ./.github/actions/set-package-stats | |
| continue-on-error: true | |
| with: | |
| key: react | |
| name: "@stlite/react" | |
| input-path: packages/react/package.tgz | |
| pr-number: ${{ needs.set-build-info.outputs.pr-number }} | |
| sticky-id: ${{ needs.set-build-info.outputs.head-sha }} | |
| build-sharing: | |
| if: ${{ ! failure() }} # This job should run even if the depending jobs are skipped, but not when those jobs failed: https://qiita.com/abetomo/items/d9ede7dbeeb24f723fc5#%E8%A8%AD%E5%AE%9A%E4%BE%8B4 | |
| needs: [set-build-info, test-kernel, test-stlite-lib, test-sharing-common, test-sharing] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: write | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| python-version-file: ${{ env.python-version-file }} | |
| node-version-file: ${{ env.node-version-file }} | |
| ## Build and upload @stlite/sharing | |
| - name: Set EDITOR_APP_ORIGIN (preview) | |
| if: ${{ needs.set-build-info.outputs.branch != github.event.repository.default_branch }} | |
| run: echo "EDITOR_APP_ORIGIN_REGEX=^https://[a-z0-9-]+\.stlite-sharing-editor\.pages\.dev$" >> $GITHUB_ENV | |
| - name: Set EDITOR_APP_ORIGIN (main branch) | |
| if: ${{ needs.set-build-info.outputs.branch == github.event.repository.default_branch }} | |
| run: echo "EDITOR_APP_ORIGIN=https://edit.share.stlite.net" >> $GITHUB_ENV | |
| - name: Build @stlite/sharing | |
| run: | | |
| . .venv/bin/activate | |
| make sharing | |
| - name: Upload bundle visualizer report (@stlite/sharing) | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| path: packages/sharing/stats/sharing.html | |
| name: visualizer-sharing | |
| if-no-files-found: error | |
| - name: Upload the built directory as an artifact | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| path: packages/sharing/build | |
| name: stlite-sharing | |
| - name: "Inform the package stats" | |
| uses: ./.github/actions/set-package-stats | |
| continue-on-error: true | |
| with: | |
| key: sharing | |
| name: "stlite sharing" | |
| input-path: packages/sharing/build | |
| pr-number: ${{ needs.set-build-info.outputs.pr-number }} | |
| sticky-id: ${{ needs.set-build-info.outputs.head-sha }} | |
| build-sharing-editor: | |
| if: ${{ ! failure() }} # This job should run even if the depending jobs are skipped, but not when those jobs failed: https://qiita.com/abetomo/items/d9ede7dbeeb24f723fc5#%E8%A8%AD%E5%AE%9A%E4%BE%8B4 | |
| needs: [set-build-info, test-build-common, test-sharing-editor, test-sharing-common] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: write | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: recursive | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| node-version-file: ${{ env.node-version-file }} | |
| - name: Set build option envvar for the preview build | |
| if: ${{ needs.set-build-info.outputs.branch != github.event.repository.default_branch }} | |
| run: echo "RESOLVE_SHARING_APP_URL_RUNTIME_FROM_EXTERNAL_FILE=true" >> $GITHUB_ENV | |
| - name: Set SHARING_APP_URL (main branch) | |
| if: ${{ needs.set-build-info.outputs.branch == github.event.repository.default_branch }} | |
| run: echo "SHARING_APP_URL=https://share.stlite.net/" >> $GITHUB_ENV | |
| - run: make sharing-editor | |
| - name: Upload bundle visualizer report (@stlite/sharing-editor) | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| path: packages/sharing-editor/stats/sharing-editor.html | |
| name: visualizer-sharing-editor | |
| if-no-files-found: error | |
| - name: Upload the built directory as an artifact | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| path: packages/sharing-editor/dist | |
| name: stlite-sharing-editor | |
| - name: "Inform the package stats" | |
| uses: ./.github/actions/set-package-stats | |
| continue-on-error: true | |
| with: | |
| key: sharing-editor | |
| name: "stlite sharing editor" | |
| input-path: packages/sharing-editor/dist | |
| pr-number: ${{ needs.set-build-info.outputs.pr-number }} | |
| sticky-id: ${{ needs.set-build-info.outputs.head-sha }} | |
| build-desktop: | |
| if: ${{ ! failure() }} # This job should run even if the depending jobs are skipped, but not when those jobs failed: https://qiita.com/abetomo/items/d9ede7dbeeb24f723fc5#%E8%A8%AD%E5%AE%9A%E4%BE%8B4 | |
| needs: [set-build-info, test-build-common, test-kernel, test-stlite-lib, test-desktop] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: write | |
| id-token: write | |
| attestations: write | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| python-version-file: ${{ env.python-version-file }} | |
| node-version-file: ${{ env.node-version-file }} | |
| - name: Build @stlite/desktop | |
| run: | | |
| . .venv/bin/activate | |
| make desktop | |
| - name: Upload bundle visualizer report (@stlite/desktop) | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| path: packages/desktop/stats/desktop.html | |
| name: visualizer-desktop | |
| if-no-files-found: error | |
| - name: Package | |
| working-directory: packages/desktop | |
| run: yarn pack | |
| - name: Upload the built tar ball as an artifact | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| path: packages/desktop/package.tgz | |
| name: stlite-desktop | |
| - name: Generate artifact attestation | |
| uses: actions/attest-build-provenance@96278af6caaf10aea03fd8d33a09a777ca52d62f # v3.2.0 | |
| with: | |
| subject-path: packages/desktop/package.tgz | |
| # This step may fail when the PR is created by an external contributor and the CI is run in their scope. | |
| # We can ignore such failures because the following jobs such as E2E-testing in the post-build workflow don't necessarily need the attestation, | |
| # while the verification is done when publishing the artifact. | |
| continue-on-error: true | |
| - name: "Inform the package stats of @stlite/desktop" | |
| uses: ./.github/actions/set-package-stats | |
| continue-on-error: true | |
| with: | |
| key: desktop | |
| name: "@stlite/desktop" | |
| input-path: packages/desktop/package.tgz | |
| pr-number: ${{ needs.set-build-info.outputs.pr-number }} | |
| sticky-id: ${{ needs.set-build-info.outputs.head-sha }} | |
| build-docs: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: write | |
| id-token: write | |
| attestations: write | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| submodules: true | |
| persist-credentials: false | |
| - uses: ./.github/actions/init-all | |
| with: | |
| node-version-file: ${{ env.node-version-file }} | |
| - name: Build docs | |
| run: yarn build | |
| working-directory: docs | |
| - name: Upload the built directory as an artifact | |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 | |
| with: | |
| path: docs/dist | |
| name: stlite-docs | |
| - name: Generate artifact attestation | |
| uses: actions/attest-build-provenance@96278af6caaf10aea03fd8d33a09a777ca52d62f # v3.2.0 | |
| with: | |
| subject-path: docs/dist | |
| continue-on-error: true |