Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 18 additions & 10 deletions .github/workflows/ci.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -136,13 +136,21 @@ jobs:
echo "Typechecking ${config}"
pnpm dlx --package @typescript/native-preview@beta tsgo -p "${config}" --noEmit
done
- name: Typecheck VS Code extension
run: pnpm --filter pythinker-code run typecheck
- name: Typecheck pythinker-web (vue-tsc)
run: pnpm --filter @pymodel/pythinker-web run typecheck
- name: Typecheck dashboard-server
run: pnpm --filter @pymodel/dashboard-server run typecheck
- name: Typecheck dashboard-web
run: pnpm --filter @pymodel/dashboard-web run typecheck
- name: Typecheck desktop
run: pnpm --filter @pymodel/pythinker-desktop run typecheck
# `pnpm --filter <name>` exits 0 when nothing matches, so a renamed
# package silently turns its gate into a no-op. Three of these filters
# had already gone stale that way: `@pymodel/dashboard-server` and
# `@pymodel/dashboard-web` matched nothing after the vis rename, and
# `pythinker-code` matched the CLI directory instead of the VS Code
# extension (`pythinker`), so the extension was never typechecked here.
# Resolving each filter first turns a stale name back into a failure.
- name: Typecheck workspace apps
run: |
set -euo pipefail
for package in pythinker @pymodel/pythinker-web @pymodel/vis-server @pymodel/vis-web @pymodel/pythinker-desktop; do
if [ -z "$(pnpm ls --filter "$package" --depth -1 --parseable)" ]; then
echo "No workspace package matches the filter '${package}'" >&2
exit 1
fi
echo "Typechecking ${package}"
pnpm --filter "$package" run typecheck
done
22 changes: 18 additions & 4 deletions .github/workflows/release.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -240,11 +240,18 @@ jobs:
needs:
- release
- publish-native-assets
# A native release whose zips never reached the GitHub release must not
# reach the CDN either. `publish-native-assets` refuses to publish a
# partial set, and a job whose needs failed reports `skipped`, not
# `failure` — so checking only for failure let a release with zero assets
# through and pointed every native installer at a release that has none.
# Requiring success (only when this release has native artifacts at all)
# leaves the CDN on the last installable version instead.
if: >-
always()
&& needs.release.result == 'success'
&& needs.publish-native-assets.result != 'failure'
&& needs.publish-native-assets.result != 'cancelled'
&& (needs.release.outputs.pythinker_native_release != 'true'
|| needs.publish-native-assets.result == 'success')
&& (needs.release.outputs.packages_published == 'true'
|| startsWith(github.event.head_commit.message, 'ci: release packages'))
runs-on: ubuntu-latest
Expand DownExpand Up@@ -308,9 +315,16 @@ jobs:
needs:
- release
- redeploy-cdn
# Without `always()` a skip anywhere upstream skips this job too, and the
# gate that exists to catch a half-shipped release goes quiet in exactly
# the runs that need it. It stays out of `redeploy-cdn`'s result on
# purpose: a CDN that never redeployed is the failure this asserts, so it
# has to run and report it rather than disappear with it.
if: >-
needs.release.outputs.packages_published == 'true'
|| startsWith(github.event.head_commit.message, 'ci: release packages')
always()
&& needs.release.result == 'success'
&& (needs.release.outputs.packages_published == 'true'
|| startsWith(github.event.head_commit.message, 'ci: release packages'))
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand Down
2 changes: 1 addition & 1 deletion apps/pythinker-code/dist-web/.web-bundle-manifest.json
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
{
"sourceHash": "dcb2227d96cf476915942656bc127bb1d7801258b01daa6995ee76e915ff199b",
"sourceHash": "39adcc1ccb551ac03f06fe2152c6a69004701da14fd2535f8b26202cb9d27c14",
"sourceFileCount": 389
}
2 changes: 1 addition & 1 deletion apps/pythinker-web/package.json
Original file line numberDiff line numberDiff line change
Expand Up@@ -6,7 +6,7 @@
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"build": "node --max-old-space-size=4096 ./node_modules/vite/bin/vite.js build",
"typecheck": "vue-tsc --noEmit",
"test": "vitest run",
"check:style": "node scripts/check-style.mjs",
Expand Down
Loading