Skip to content

Commit 553e434

Browse files
committed
working on more cart support
1 parent a68e103 commit 553e434

56 files changed

Lines changed: 9136 additions & 451 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/carts.yml

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,44 @@
11
on: push
22

33
jobs:
4-
build:
5-
name: Build & Publish Cart
4+
c:
5+
name: Build & Publish C Carts
66
runs-on: ubuntu-latest
7+
strategy:
8+
matrix:
9+
cart:
10+
- colorbar
11+
- example
12+
- gradient
13+
- input
14+
- sfx
15+
- speak
16+
- wasi_demo
717
steps:
818
- name: Checkout
919
uses: actions/checkout@v4
10-
- name: Build C colorbars cart
11-
run: docker run -v ./carts/c/colorbars:/src -v .:/out konsumer/null0-cart-c colorbars_c
12-
- name: Upload C colorbars cart artifact
20+
- name: Build C ${{ matrix.cart }} cart
21+
run: docker run -v ./carts/c/${{ matrix.cart }}:/src -v .:/out konsumer/null0-cart-c ${{ matrix.cart }}_c
22+
- name: Upload C ${{ matrix.cart }} cart artifact
1323
uses: actions/upload-artifact@v4
1424
with:
15-
name: colorbars_c
16-
path: colorbars_c.null0
25+
name: ${{ matrix.cart }}_c
26+
path: ${{ matrix.cart }}_c.null0
27+
js:
28+
name: Build & Publish JS Carts
29+
runs-on: ubuntu-latest
30+
strategy:
31+
matrix:
32+
cart:
33+
- demo
34+
- input
35+
steps:
36+
- name: Checkout
37+
uses: actions/checkout@v4
38+
- name: Build JS ${{ matrix.cart }} cart
39+
run: docker run -v ./carts/js/${{ matrix.cart }}:/src -v .:/out konsumer/null0-cart-quickjs ${{ matrix.cart }}_js
40+
- name: Upload JS ${{ matrix.cart }} cart artifact
41+
uses: actions/upload-artifact@v4
42+
with:
43+
name: ${{ matrix.cart }}_js
44+
path: ${{ matrix.cart }}_js.null0

README.md

Lines changed: 41 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
1-
The idea here is a central place for some example-carts for [null0](https://github.com/notnullgames/null0), and the headers used to make them. I also use this as a place to store docker containers for building them.
1+
This repo contains various support-things for [null0](https://github.com/notnullgames/null0):
22

3-
- You will need docker installed to use these, which greatly simplifies your setup.
3+
- api definition
4+
- codegen for host
5+
- codegen for cart-headers for every supported language
6+
- example carts for every supported language
7+
- docker definitions for cart builders
8+
9+
## to use this repo
10+
11+
- You will need docker installed
412
- volume-mount your cart in `/src`
513
- volume-mount your output-dir in `/out`
614
- the first param is the name of the cart
@@ -61,18 +69,39 @@ docker run --privileged --rm tonistiigi/binfmt --install all
6169

6270
# generate headers (needed on API change)
6371
npm i
64-
npm run generate
72+
npm run gen
73+
74+
# just local use (fast, no push)
75+
docker build -t konsumer/null0-cart-c . -f docker/null0-cart-c.Dockerfile
76+
docker build -t konsumer/null0-cart-quickjs . -f docker/null0-cart-quickjs.Dockerfile
77+
78+
docker build -t konsumer/null0-cart-nelua . -f docker/null0-cart-nelua.Dockerfile
79+
docker build -t konsumer/null0-cart-assemblyscript . -f docker/null0-cart-assemblyscript.Dockerfile
80+
docker build -t konsumer/null0-cart-nim . -f docker/null0-cart-nim.Dockerfile
81+
docker build -t konsumer/null0-cart-zig . -f docker/null0-cart-zig.Dockerfile
82+
docker build -t konsumer/null0-cart-rust . -f docker/null0-cart-rust.Dockerfile
83+
docker build -t konsumer/null0-cart-py2wasm . -f docker/null0-cart-py2wasm.Dockerfile
6584

6685
# build & publish (needed on API change)
67-
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-c docker -f docker/null0-cart-c.Dockerfile
68-
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-quickjs docker -f docker/null0-cart-quickjs.Dockerfile
69-
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-nelua docker -f docker/null0-cart-nelua.Dockerfile
70-
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-assemblyscript docker -f docker/null0-cart-assemblyscript.Dockerfile
71-
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-nim docker -f docker/null0-cart-nim.Dockerfile
72-
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-zig docker -f docker/null0-cart-zig.Dockerfile
73-
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-rust docker -f docker/null0-cart-rust.Dockerfile
74-
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-py2wasm docker -f docker/null0-cart-py2wasm.Dockerfile
86+
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-c . -f docker/null0-cart-c.Dockerfile
87+
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-quickjs . -f docker/null0-cart-quickjs.Dockerfile
88+
89+
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-nelua . -f docker/null0-cart-nelua.Dockerfile
90+
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-assemblyscript . -f docker/null0-cart-assemblyscript.Dockerfile
91+
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-nim . -f docker/null0-cart-nim.Dockerfile
92+
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-zig . -f docker/null0-cart-zig.Dockerfile
93+
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-rust . -f docker/null0-cart-rust.Dockerfile
94+
docker build --push --platform linux/amd64,linux/arm64 -t konsumer/null0-cart-py2wasm . -f docker/null0-cart-py2wasm.Dockerfile
7595

7696
# test
77-
docker run -it -v ./carts/c/colorbars:/src -v ./out:/out konsumer/null0-cart-c colorbars
97+
docker run -it -v ./carts/c/colorbars:/src -v ./out:/out konsumer/null0-cart-c colorbars_c
98+
docker run -it -v ./carts/c/example:/src -v ./out:/out konsumer/null0-cart-c example_c
99+
docker run -it -v ./carts/c/gradient:/src -v ./out:/out konsumer/null0-cart-c gradient_c
100+
docker run -it -v ./carts/c/input:/src -v ./out:/out konsumer/null0-cart-c input_c
101+
docker run -it -v ./carts/c/sfx:/src -v ./out:/out konsumer/null0-cart-c sfx_c
102+
docker run -it -v ./carts/c/speak:/src -v ./out:/out konsumer/null0-cart-c speak_c
103+
docker run -it -v ./carts/c/wasi_demo:/src -v ./out:/out konsumer/null0-cart-c wasi_demo_c
104+
105+
docker run -it -v ./carts/js/demo:/src -v ./out:/out konsumer/null0-cart-quickjs demo_js
106+
docker run -it -v ./carts/js/input:/src -v ./out:/out konsumer/null0-cart-quickjs input_js
78107
```

carts/c/colorbars/.cartignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.c
2+
*.h

carts/c/example/.cartignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.c
2+
*.h

carts/c/gradient/.cartignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.c
2+
*.h

carts/c/input/.cartignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.c
2+
*.h

carts/c/sfx/.cartignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.c
2+
*.h

carts/c/speak/.cartignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.c
2+
*.h

carts/c/wasi_demo/.cartignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.c
2+
*.h

0 commit comments

Comments
 (0)