Skip to content

Type ObjectProxy more precisely; drop unsafe cast #661

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

Open
wants to merge 3,827 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3827 commits
Select commit Hold shift + click to select a range
bcf3147
moved source TODO to issue https://github.com/SkipLabs/skip/issues/553
jberdine Nov 27, 2024
6ce8272
moved source TODO to issue https://github.com/SkipLabs/skip/issues/554
jberdine Nov 27, 2024
63bcb86
fill in links in docs pages
jberdine Nov 27, 2024
79a5d60
Cleanup links and TODOs in docs (#555)
jberdine Nov 27, 2024
5d9b122
Document api docs workflow
jberdine Nov 27, 2024
2f7364e
Update js deps
jberdine Nov 27, 2024
56034f3
Document api docs workflow (#556)
jberdine Nov 27, 2024
3853e81
Tighten type of fetchJSON
jberdine Nov 28, 2024
c62fb93
Tighten type of fetchJSON (#559)
jberdine Nov 28, 2024
cef76c4
Minimal garbage collector
skiplabsdaniel Nov 22, 2024
06e6734
[skiprutime] Add notifier callbacks
skiplabsdaniel Nov 26, 2024
5822545
[skipruntime] Garbage collector and subscribe callbacks (#546)
skiplabsdaniel Nov 28, 2024
13a3865
Make `resources` field non-optional on SkipService
bennostein Nov 28, 2024
c135eb8
Make `resources` field non-optional on SkipService (#561)
bennostein Nov 29, 2024
5aa564a
[docs] Update client docs outline for current infra
bennostein Nov 26, 2024
665c6aa
[docs] Add a bit of overview text for client docs
bennostein Nov 27, 2024
1d852a5
[docs] Add simple web service example to client docs
bennostein Nov 27, 2024
22a448d
[docs] Add overview of server-sent events from client perspective
bennostein Nov 28, 2024
2d0d8b9
[docs] Add React client example using useState/useEffect
bennostein Nov 28, 2024
2e236d8
[docs] Add synchronous reads from clients
bennostein Nov 28, 2024
874351c
Address review comments
bennostein Nov 29, 2024
8435579
[docs] Client markdown documentation (#558)
bennostein Nov 29, 2024
60f7f5f
[docs] Add overview text for resources docs
bennostein Nov 28, 2024
cad9f00
[docs] Walk through example of resource instantiation
bennostein Nov 28, 2024
49d78a1
[docs] Describe resource instantiation via useExternalResource
bennostein Nov 28, 2024
7c725fa
[docs] Document resource streaming & control HTTP APIs
bennostein Dec 2, 2024
1636e1b
Remove `PUT /v1/inputs/:collection/:key` route from REST server
bennostein Dec 2, 2024
0a6179d
[docs] Resource/Service markdown docs (#567)
bennostein Dec 3, 2024
39b90bf
Mention existence of GC in docs
jberdine Nov 26, 2024
abe67ae
Mention existence of GC in docs (#564)
jberdine Dec 3, 2024
f279ed9
Take control over reducer instantiation; add type overloads on mapReduce
bennostein Dec 2, 2024
404b733
Update tests to let skipruntime instantiate reducer
bennostein Dec 2, 2024
333169a
Curry mapReduce (to allow splatting both mapper&reducer params)
bennostein Dec 2, 2024
28a2578
[skipruntime-ts] Take control over reducer instantiation to avoid cap…
bennostein Dec 3, 2024
b7fa42e
Add `reduce` function (without `map`) on eager collections
bennostein Dec 3, 2024
aa9561b
Add unit test covering EagerCollection#reduce
bennostein Dec 3, 2024
15d4711
Expose EagerCollection#reduce (i.e. reduce without map) (#570)
bennostein Dec 3, 2024
bc2f67f
Fix broken links
jberdine Dec 4, 2024
957b22e
Add workflow for publishing docs
jberdine Dec 4, 2024
dec6f27
Add workflow for publishing docs (#573)
jberdine Dec 4, 2024
4540849
Switch from Mapper to OneToOneMapper in groups example
bennostein Dec 3, 2024
c436ebf
Update getting-started with un-proxied array operations and OneToOneM…
bennostein Dec 3, 2024
93250f1
Add `OneToManyMapper` utility
bennostein Dec 4, 2024
ab8d8fa
Tweak groups example to use OneToManyMapper
bennostein Dec 4, 2024
cbc8b2a
Add OneToManyMapper and tweak groups example to use it (#571)
bennostein Dec 4, 2024
faef76b
Clean up work-in-progress docs pages
bennostein Dec 5, 2024
7283ab5
Clean up work-in-progress docs pages (#579)
bennostein Dec 5, 2024
fb22590
Document internals that appear in exposed api
jberdine Dec 4, 2024
f895d50
Document Entrypoint
jberdine Dec 4, 2024
922c8d1
Expose and document types used by public api (#574)
jberdine Dec 5, 2024
517bef1
[docs] First draft: deployment docs
bennostein Dec 5, 2024
f4de972
Address PR review; fill in TODO link
bennostein Dec 5, 2024
3ac2d51
[docs] First draft: deployment docs (#580)
bennostein Dec 6, 2024
460df77
Update getting_started.md
pikatchu Dec 9, 2024
5cf52be
Remove broken Search link
jberdine Dec 6, 2024
6212e7f
Update logo
jberdine Dec 6, 2024
6c96c00
Remove redundant links in footer
jberdine Dec 9, 2024
d0555dd
Remove stale content from docs site landing page
jberdine Dec 9, 2024
aa3fcef
Remove docs site landing page (#583)
jberdine Dec 9, 2024
6747196
Fix broken anchor link
jberdine Dec 9, 2024
2025ad1
Remove empty Background section
jberdine Dec 9, 2024
d9c86ca
Reword to "under construction"
jberdine Dec 9, 2024
2df2947
Minor docs site improvements (#584)
jberdine Dec 9, 2024
f186825
Change docs site colors to match main site
jberdine Dec 9, 2024
35095eb
Change docs site fonts to match main site
jberdine Dec 9, 2024
7ec8744
Change docs site navbar items to use icons following main site
jberdine Dec 9, 2024
12d84d0
Docs site style changes to match main site (#585)
jberdine Dec 9, 2024
0fd650e
Deep-freeze arrays coming out of Skip and into JS
bennostein Dec 6, 2024
077b834
Drop readonly types from Param in favor of deep-frozen Constants
bennostein Dec 6, 2024
a33960c
Intersect types with Param for values coming out of Skip into JS
bennostein Dec 6, 2024
60eab0b
Help stupid type inference with intersection types
bennostein Dec 6, 2024
74808c7
Explicitly redefine Skip runtime types/values for skjson
bennostein Dec 9, 2024
05f2646
Tighten Param type to enforce deep-freezing (#582)
bennostein Dec 9, 2024
32e9e72
[skiplang] Rename skiplang/prelude/ts/ to skiplang/prelude/ts/wasm/
skiplabsdaniel Dec 6, 2024
d7cef97
[skiplang] Split type definition from wasm runtime
skiplabsdaniel Dec 4, 2024
e78cd70
[skiplang] Rename skiplang/skjson/ts/ to skiplang/skjson/ts/wasm/
skiplabsdaniel Dec 6, 2024
4b3c703
[skjson] Define common wasm/native binding
skiplabsdaniel Dec 4, 2024
724a146
[skipruntime] Define common wasm/native binding
skiplabsdaniel Dec 6, 2024
78f74b2
[skipruntime] Avoid ErrorObject as an intermediary.
skiplabsdaniel Dec 4, 2024
f7d33f8
[skipruntime] Add node addon
skiplabsdaniel Oct 6, 2024
3236b42
[skipruntime-ts] Manage correctly service initialisation
skiplabsdaniel Dec 4, 2024
e5845e3
[ci] Add addon test
skiplabsdaniel Dec 4, 2024
460e79a
[skipruntime] Move remote service code
skiplabsdaniel Dec 4, 2024
48bb94c
[skipruntime] Update after move (remote.ts)
skiplabsdaniel Dec 4, 2024
c248bcf
[skipruntime] Move utils.ts to core
skiplabsdaniel Dec 4, 2024
30eeee7
[skipruntime] Update after move (utils.ts)
skiplabsdaniel Dec 4, 2024
d86573b
Update Makefile publish targets
skiplabsdaniel Dec 4, 2024
2cc945c
Fix build
skiplabsdaniel Dec 4, 2024
7e0f340
Build libskip-runtime-ts.so before install
skiplabsdaniel Dec 4, 2024
0847025
Due to addon npm must be use
skiplabsdaniel Dec 4, 2024
de1c5a7
Clean build commands
skiplabsdaniel Dec 5, 2024
8e2082b
[skipruntime] Rename `skip-wasm` package to `@skipruntime/wasm`
skiplabsdaniel Dec 6, 2024
9daa8fd
[skipruntime] Add @skipruntime/runtime package
skiplabsdaniel Dec 6, 2024
7281b45
Cleaning
skiplabsdaniel Dec 6, 2024
8745e47
[skipruntime] Manage Common Wasm/Native binding (#572)
skiplabsdaniel Dec 9, 2024
a6db4ef
Replace sync-read http GET routes with POST route
bennostein Dec 10, 2024
20205f4
Update SkipServiceBroker to sync read using POST instead of GET
bennostein Dec 10, 2024
b513bca
Update hackernews example to use POST instead of GET for sync read
bennostein Dec 10, 2024
5198562
Update documentation of REST API routes for reactive services
bennostein Dec 10, 2024
dd80a73
Use POST payload instead of GET params for synchronous reads (#587)
bennostein Dec 10, 2024
889610e
Update inline docs of API routes
bennostein Dec 11, 2024
f260d2f
Update inline docs of API routes (#591)
bennostein Dec 11, 2024
cd71496
Add note about synchronous writes and non-JavaScript backends in clie…
bennostein Dec 11, 2024
3fca7dc
Add note about synchronous writes and non-JS backends in client docs …
bennostein Dec 11, 2024
a9c77f6
Change header font to Chicago, self-host fonts
jberdine Dec 13, 2024
5445cca
Change header font to Chicago, self-host fonts (#597)
jberdine Dec 13, 2024
ee9d49f
[skipruntime] Get system info for .so management
skiplabsdaniel Dec 12, 2024
7226258
[skipruntime] Use system info for .so management (#594)
skiplabsdaniel Dec 14, 2024
34ff83a
[skip/ts] Update to published version
skiplabsdaniel Dec 15, 2024
f97f0c4
[skip/ts] Update to published version (#604)
skiplabsdaniel Dec 15, 2024
a4feb8a
Move docs of Opaque and Constant to their definitions
jberdine Dec 13, 2024
ee21d44
Move docs of Opaque and Constant to their definitions (#599)
jberdine Dec 16, 2024
1ce75b7
Move types and functions related to freezing to skjson
jberdine Dec 13, 2024
156472a
Move types and functions related to freezing to skjson (#600)
jberdine Dec 16, 2024
594b7c4
Fix broken anchors
jberdine Dec 13, 2024
ebea6d0
Fix broken anchors (#601)
jberdine Dec 16, 2024
cdefe64
Dedup definition of Entrypoint
jberdine Dec 13, 2024
ff868e6
Dedup definition of Entrypoint (#602)
jberdine Dec 16, 2024
5c90c73
Allow arbitrary JSON in resource instantiation parameters
bennostein Dec 10, 2024
160dc7a
Update docs for more general resource instantiation parameter type
bennostein Dec 10, 2024
17d0f2a
Update resources in tests to accept arbitrary Json in parameters
bennostein Dec 10, 2024
123d826
Generalize Skiplang representation of resource params
bennostein Dec 10, 2024
43f7b59
Drop unnecessary wrapper function
bennostein Dec 10, 2024
5409217
Add test with structured JSON in resource parameters
bennostein Dec 10, 2024
1e0f67c
Make external parameteric in string encoding of params
bennostein Dec 11, 2024
dfdadfc
Move Params creation to static; loop instead of zip in compare
bennostein Dec 11, 2024
a2b6784
Allow arbitrary `Json` values as resource parameters (#590)
bennostein Dec 16, 2024
e3d2972
Generalize resource params further, to an arbitrary Json blob.
bennostein Dec 13, 2024
5d7aa87
Simplify Skiplang Params representation to thin CJSON wrapper
bennostein Dec 13, 2024
0618025
Update Internal pointer types in TS/Skip FFI
bennostein Dec 13, 2024
f66861c
Change reactive/sync read APIs to take resource as path parameter
bennostein Dec 13, 2024
d6c3b7a
Update markdown docs with new/updated routes
bennostein Dec 13, 2024
649a775
Update tests and examples to new API
bennostein Dec 13, 2024
c5f6330
Resources as path parameters (#603)
bennostein Dec 16, 2024
9f0889e
Add Count Reducer helper
jberdine Dec 4, 2024
c347db5
Document helpers
jberdine Dec 4, 2024
1d346a5
Some helpers documentation (#575)
jberdine Dec 16, 2024
428407f
Rename `Constant` to `Managed`; update "freeze"/"frozen" terminology
bennostein Dec 10, 2024
6513b52
Rename `Param` to more-general `DepSafe` type
bennostein Dec 10, 2024
424b4f9
Rename `NonEmptyIterator` to `Values`
bennostein Dec 10, 2024
8e71b28
Constant/Param/NonEmptyIterator type renamings (#586)
bennostein Dec 17, 2024
de126dd
Return iterable from LazyCompute
bennostein Dec 17, 2024
02f87d4
Return Iterable from LazyCompute (#608)
bennostein Dec 18, 2024
1ae7ca5
Fill in Github README page with content, links, and discord invite
bennostein Dec 12, 2024
7eb7dec
Typo fix
bennostein Dec 12, 2024
2b1b959
Fill in Github README page with content, links, and discord invite (#…
bennostein Dec 18, 2024
625f98c
Export user-facing elements of core package in helpers
jberdine Dec 16, 2024
f656c1d
Don't use runtime or core packages in examples
jberdine Dec 16, 2024
7fe33b3
Don't reexport user-facing core elements from runtime
jberdine Dec 16, 2024
5e56b03
Add docstrings for runtime and core packages to redirect users
jberdine Dec 16, 2024
e1d7cc6
Export user-facing elements of core package in helpers, use in exampl…
jberdine Dec 18, 2024
052d5d5
Generalize key type for SkipServiceBroker getArray and getUnique
jberdine Dec 19, 2024
1ee000c
Generalize key type for SkipServiceBroker getArray and getUnique (#611)
jberdine Dec 23, 2024
f4564a1
Change server to import directly from definition point
jberdine Dec 19, 2024
9179d24
Remove redundant dependency
jberdine Dec 19, 2024
ebb12f6
Remove unneeded reexports from skipruntime/runtime
jberdine Dec 19, 2024
4ac90f0
Change examples to import from package indexes rather than files
jberdine Dec 19, 2024
4004d6e
Move definition of SubscriptionID
jberdine Dec 17, 2024
45a6d0c
Cleanups to import clauses, etc. (#612)
jberdine Dec 23, 2024
fc4c25b
Disable lint rule with false alarms
jberdine Dec 16, 2024
599714a
A full pass over the docs for public API
jberdine Dec 5, 2024
ed0f336
A full pass over the docs for public API (#613)
jberdine Dec 23, 2024
5b83c91
Remove fundamentals stub doc page
jberdine Dec 19, 2024
0b147d4
Remove debugging stub doc page
jberdine Dec 19, 2024
ed88de7
Remove reference stub doc page
jberdine Dec 19, 2024
eb69786
Remove stub docs pages (#614)
jberdine Dec 23, 2024
c3af899
Rename Reducer.default to initial
jberdine Dec 20, 2024
0fbd520
Rename Reducer.default to initial (#616)
jberdine Dec 23, 2024
309a771
Fix makefile typo
bennostein Dec 23, 2024
96c6d9f
Update all package versions
bennostein Dec 23, 2024
7320e19
Bump NPM package versions (#619)
bennostein Dec 23, 2024
7caccbc
Add Skip alpha blog post
jberdine Dec 23, 2024
423af83
Add Skip alpha blog post (#618)
jberdine Dec 24, 2024
61517c0
Type EHandles to enforce JSONID/JSONFile; use native identity mapper
bennostein Dec 20, 2024
baf7828
Add native reducers; plumb through FFI using stubs on TS side
bennostein Dec 20, 2024
4328a2d
Plumb native mapReduce/reduce through node native addon
bennostein Dec 23, 2024
e568283
Add unit test on native `Count` reducer
bennostein Jan 2, 2025
5e4c852
Update functions.md docs with removal of CountMapper
bennostein Jan 2, 2025
5b12302
Temporarily disable compiler tests in CI
bennostein Jan 2, 2025
79b1298
Native implementations of reducers and typing improvements throughout…
bennostein Jan 2, 2025
ba48a38
[www/docs] Strip out last todo links from markdown docs
bennostein Jan 6, 2025
0d62e96
Remove TODO.md
bennostein Jan 6, 2025
8b19f40
[www/docs] Strip out last todo links from markdown docs (#620)
bennostein Jan 6, 2025
4f1688f
[skc] Fix paths in error messages.
beauby Nov 29, 2024
6b6e4e1
[skc] Fix paths in error messages. (#621)
beauby Jan 6, 2025
b898745
[docs] Add package documentation for server
jberdine Jan 7, 2025
299f1bd
[docs] Add package documentation for server (#623)
jberdine Jan 7, 2025
95de722
[skiplang/skc] Fix stale package invalidation.
beauby Jan 9, 2025
6698c90
[skiplang/skc] Update bootstrap tool chain.
beauby Jan 9, 2025
8151b6b
[skiplang/skc] Fix stale package invalidation. (#627)
beauby Jan 10, 2025
e54b9d4
Switch from bun to npm since addon needs it to build
jberdine Jan 10, 2025
fd8bfe7
Switch from bun to npm since addon needs it to build (#628)
jberdine Jan 10, 2025
0c43e58
Move Entrypoint and SkipExternalService from core to helpers
jberdine Jan 10, 2025
efcdc35
Move Entrypoint and SkipExternalService from core to helpers (#632)
jberdine Jan 13, 2025
adc5143
Require slice args to be DepSafe
jberdine Jan 10, 2025
66fad52
Document that initialData is not dependency-safe
jberdine Jan 10, 2025
70f272c
Fix/document dep safety of slice and initialData (#629)
jberdine Jan 13, 2025
ef049d0
Remove dead code
jberdine Jan 7, 2025
fc842ec
Remove dead code (#630)
jberdine Jan 13, 2025
82cb929
Log GET and DELETE errors
mbouaziz Jan 13, 2025
6c1f09d
Fix getArray
mbouaziz Jan 13, 2025
0e5d100
Fix SkipServiceBroker's getArray (#635)
mbouaziz Jan 13, 2025
c558626
Update mocha
mbouaziz Jan 9, 2025
aeb2cd9
Switch example from sqlite3 to better-sqlite3
mbouaziz Jan 9, 2025
e2347bd
Update 2 dependencies (#626)
mbouaziz Jan 13, 2025
2e71506
[skipruntime/addon] Fix binding of SkipRuntime_createIdentifier
skiplabsdaniel Jan 14, 2025
44f463e
[skipruntime/addon] Fix binding of SkipRuntime_createIdentifier (#638)
skiplabsdaniel Jan 14, 2025
c275425
[skipruntime/addon] Manage cc formating
skiplabsdaniel Jan 14, 2025
cac24b3
[skipruntime/addon] Manage cc formating (#639)
skiplabsdaniel Jan 14, 2025
c8a2f13
Revise fetchJSON to add timeout parameter
jberdine Jan 13, 2025
5f7ce6f
Revise fetchJSON to add timeout parameter (#636)
jberdine Jan 14, 2025
104f943
[skipruntime/addon] Fix error management
skiplabsdaniel Jan 14, 2025
d17f5c5
[skipruntime/addon] Fix error management (#641)
skiplabsdaniel Jan 14, 2025
7e12d3e
Allow Environment.fetch to return ArrayBuffer
mbouaziz Nov 27, 2024
d1b6df1
Use fs/promises
mbouaziz Nov 27, 2024
9717dac
forEach instead of map when the result is not kept
mbouaziz Nov 27, 2024
f47a4bf
LazyDir: constructor can be called later
mbouaziz Feb 20, 2024
4562517
Context: remove unused pwd
mbouaziz Nov 26, 2024
6ffcbbb
Runtime: resource definition can be created later
mbouaziz Nov 26, 2024
a94b905
Random minor cleanups (#560)
mbouaziz Jan 15, 2025
ff8ca47
Add HACKING.md
jberdine Jan 15, 2025
4a3b728
Add HACKING.md (#645)
jberdine Jan 15, 2025
874c083
Fix examples url
jberdine Jan 15, 2025
a901b01
Fix examples url (#647)
jberdine Jan 15, 2025
4e62e0c
fix userid type capitalization
spro Jan 16, 2025
b9d1eb2
Fix userID type capitalization in getting started docs (#649)
mbouaziz Jan 16, 2025
123f18d
[skip/ts] Bump package versions.
beauby Jan 16, 2025
8279d69
[skip/ts] Bump package versions. (#652)
beauby Jan 16, 2025
519a12b
[skip/ts] Bump (all) package versions.
beauby Jan 16, 2025
da8d7bf
[skip/ts] Bump (all) package versions. (#653)
beauby Jan 16, 2025
fb06dac
[examples/hackernews] Update example.
beauby Jan 16, 2025
340d843
[examples/hackernews] Update example. (#654)
beauby Jan 16, 2025
9e1b379
Commit js lock files
jberdine Jan 15, 2025
913d502
Commit js lock files (#643)
jberdine Jan 16, 2025
1b5e481
Minor var rename in hackernews example
jberdine Jan 16, 2025
a31e078
Minor var rename in hackernews example (#655)
jberdine Jan 16, 2025
c20c219
Add visibility attributes to ObjectHandle fields
mbouaziz Jan 16, 2025
5909744
getFieldAt as a method of ObjectHandle
mbouaziz Jan 16, 2025
04ddc06
Get rid of ObjectHandle#derive
mbouaziz Jan 16, 2025
06d51dd
Simplify interpretPointer and importJSON
mbouaziz Jan 16, 2025
fe761de
Move toJSON to ObjectHandle
mbouaziz Jan 16, 2025
a27fd2e
Move toString to ObjectHandle
mbouaziz Jan 16, 2025
b0e2817
Make console.log use toString
mbouaziz Jan 17, 2025
1f816ab
Move keys to ObjectHandle
mbouaziz Jan 16, 2025
a3c081b
Move get to ObjectHandle
mbouaziz Jan 16, 2025
52f3124
Move getOwnPropertyDescriptor to ObjectHandle
mbouaziz Jan 16, 2025
e5516d6
Move has to ObjectHandle
mbouaziz Jan 16, 2025
63cf9d4
Make getFieldAt and objectFields private
mbouaziz Jan 17, 2025
bee301e
Make console.log on ObjectHandle transparent (#658)
mbouaziz Jan 17, 2025
fbc8b0e
[nfc] Type ObjectProxy more precisely; drop unsafe cast
bennostein Jan 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
132 changes: 132 additions & 0 deletions .circleci/base.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
version: 2.1

commands:
setup:
description: "Setup skip toolchain"
steps:
- run:
name: Fetch submodules
command: |
git submodule update --init --recursive

jobs:
check-format:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- run:
name: Check code is formatted
command: |
make check-fmt

check-ts:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- setup
- run:
name: Typecheck and lint typescript sources
command: npm install && npm run build && npm run lint

compiler:
docker:
- image: skiplabs/skdb-base:latest
resource_class: xlarge
steps:
- checkout
- setup
- run:
name: Run compiler tests
no_output_timeout: 30m
command: |
mkdir -p ~/test-results
cd skiplang/compiler && make STAGE=1
PATH=$(realpath ./stage1/bin):$PATH skargo test --jobs 8 --junitxml ~/test-results/skc.xml
- store_test_results:
path: ~/test-results/skc.xml

skstore:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- setup
- run:
name: Run skstore tests
command: |
mkdir -p ~/test-results
cd skiplang/prelude && skargo test --jobs 8 --junitxml ~/test-results/skstore.xml
- store_test_results:
path: ~/test-results/skstore.xml

skdb:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- setup
- run:
name: Run native skdb tests
command: |
make test-native

skdb-wasm:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- setup
- run:
name: Run wasm skdb tests
no_output_timeout: 15m
command: |
mkdir -p ~/test-results
make test-wasm
- store_test_results:
path: ~/test-results/skdb-wasm.xml

skjson:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- setup
- run:
name: Run skjson tests
command: |
mkdir -p ~/test-results
cd skiplang/skjson && skargo test --junitxml ~/test-results/skjson.xml
- store_test_results:
path: ~/test-results/skjson.xml

skipruntime-wasm:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- setup
- run:
name: Run wasm skip runtime tests
no_output_timeout: 10m
command: |
mkdir -p ~/test-results
cd skipruntime-ts && make test
- store_test_results:
path: ~/test-results/skipruntime-wasm.xml

skipruntime-native:
docker:
- image: skiplabs/skdb-base:latest
steps:
- checkout
- setup
- run:
name: Run addon skip runtime tests
no_output_timeout: 10m
command: |
mkdir -p ~/test-results
cd skipruntime-ts && make test-native
- store_test_results:
path: ~/test-results/skipruntime-native.xml
23 changes: 23 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
version: 2.1

setup: true

orbs:
continuation: circleci/[email protected]

jobs:
setup:
executor: continuation/default
steps:
- checkout
- run:
name: Generate config
command: |
.circleci/generate_config.sh > generated_config.yml
- continuation/continue:
configuration_path: generated_config.yml

workflows:
setup:
jobs:
- setup
82 changes: 82 additions & 0 deletions .circleci/generate_config.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
#!/bin/bash

# TODO: This is flaky as it relies on coarse directory-level diffs.
git diff --quiet HEAD $(git merge-base main HEAD) -- $(jq --raw-output ".workspaces[]" package.json)
check_ts=$?
git diff --quiet HEAD $(git merge-base main HEAD) -- skiplang/compiler/ skiplang/prelude/ :^skiplang/prelude/ts
skc=$?
git diff --quiet HEAD $(git merge-base main HEAD) -- skiplang/prelude/src/skstore/ skiplang/compiler/runtime/
skstore=$?
git diff --quiet HEAD $(git merge-base main HEAD) -- sql/ skiplang/sqlparser/ skiplang/skbuild/
skdb=$?
git diff --quiet HEAD $(git merge-base main HEAD) -- skipruntime-ts/
skipruntime=$?
git diff --quiet HEAD $(git merge-base main HEAD) -- skiplang/prelude/ts/
ts_prelude=$?

cat .circleci/base.yml

echo "workflows:"

cat <<EOF
check-format:
jobs:
- check-format
EOF

if (( $check_ts != 0 ))
then
cat <<EOF
check-ts:
jobs:
- check-ts
EOF
fi

if (( $skc != 0 ))
then
cat <<EOF
compiler:
jobs:
- compiler
EOF
fi

if (( $skstore != 0 ))
then
cat <<EOF
skstore:
jobs:
- skstore
EOF
fi

if (( $skdb != 0 || $skstore != 0 ))
then
cat <<EOF
skdb:
jobs:
- skdb
EOF
fi

if (( $skdb != 0 || $skstore != 0 || $ts_prelude != 0 ))
then
cat <<EOF
skdb-wasm:
jobs:
- skdb-wasm
EOF
fi

if (( $skdb != 0 || $skstore != 0 || $skipruntime != 0 || $ts_prelude != 0 ))
then
cat <<EOF
skipruntime-wasm:
jobs:
- skipruntime-wasm
skipruntime-native:
jobs:
- skipruntime-native
EOF
fi
Loading