Add jpkg package CI
ober
8f6a5364473c34c605c653557b8720f5318cdb33
--- a/.build.yml +++ b/.build.yml @@ -3,7 +3,7 @@ packages: - build-essential - libncurses-dev - uuid-dev - - libz-dev + - zlib1g-dev - liblz4-dev - libx11-dev - git @@ -13,6 +13,8 @@ packages: sources: - https://git.sr.ht/~lisp/jerboa-code - https://git.sr.ht/~lisp/jerboa +artifacts: + - jerboa-code/jerboa-code-0.1.0.jpkg tasks: - setup-rust: | # jerboa's native FFI lib (libjerboa_native) is built with cargo and is @@ -23,11 +25,20 @@ tasks: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain stable echo 'source "$HOME/.cargo/env"' >> ~/.buildenv - build-jerboa-tools: | - # The v0.2.0 Linux release jerbuild does not register libc strerror for - # one of its bundled stdlib imports. Build current jerbuild from source - # until the next release includes that static-symbol fix. + # Build the current multicall tool so CI exercises the same + # jerboa/jerbuild/jpkg image users install. cd jerboa - make jerbuild + make jerboa + echo 'export PATH="$HOME/jerboa/dist:$PATH"' >> ~/.buildenv + - package-code: | + cd jerboa-code + J="$HOME/jerboa/dist/jerboa" + "$J" pkg verify + "$J" pkg policy + "$J" pkg build + "$J" pkg pack --output "$PWD/jerboa-code-0.1.0.jpkg" + "$J" pkg verify "$PWD/jerboa-code-0.1.0.jpkg" + "$J" pkg verify --reproduce - vendor-code: | cd jerboa-code mkdir -p vendor --- a/Makefile +++ b/Makefile @@ -3,11 +3,11 @@ # native `binary` need NO jerboa source checkout and NO separately-built Chez. JERBOA_VERSION ?= v0.2.0 JERBOA_TOOL_DIR ?= $(CURDIR)/.jerboa/bin -JERBUILD ?= $(shell if [ -x ./jerbuild ] && [ -x ./jerboa ]; then echo ./jerbuild; \ - elif [ -x "$(JERBOA_TOOL_DIR)/jerbuild" ] && [ -x "$(JERBOA_TOOL_DIR)/jerboa" ]; then echo "$(JERBOA_TOOL_DIR)/jerbuild"; \ - elif [ -x ../jerboa/dist/jerbuild ] && [ -x ../jerboa/dist/jerboa ]; then echo ../jerboa/dist/jerbuild; \ +JERBUILD ?= $(shell if [ -x ./jerbuild ]; then echo ./jerbuild; \ + elif [ -x "$(JERBOA_TOOL_DIR)/jerbuild" ]; then echo "$(JERBOA_TOOL_DIR)/jerbuild"; \ + elif [ -x ../jerboa/dist/jerbuild ]; then echo ../jerboa/dist/jerbuild; \ elif [ -x ../jerboa/jerbuild ]; then echo ../jerboa/jerbuild; \ - elif command -v jerbuild >/dev/null 2>&1 && command -v jerboa >/dev/null 2>&1; then command -v jerbuild; \ + elif command -v jerbuild >/dev/null 2>&1; then command -v jerbuild; \ else echo "$(JERBOA_TOOL_DIR)/jerbuild"; fi) # Bundled stdlib path (Chez + jerboa libs live under $(JH)/lib). Resolved by @@ -80,15 +80,15 @@ help: @echo " android-clean Remove android/build/" ensure-jerboa-tools: - @if [ -x ./jerbuild ] && [ -x ./jerboa ]; then \ + @if [ -x ./jerbuild ]; then \ echo "=== Using project-local ./jerbuild ==="; \ - elif [ -x "$(JERBOA_TOOL_DIR)/jerbuild" ] && [ -x "$(JERBOA_TOOL_DIR)/jerboa" ]; then \ + elif [ -x "$(JERBOA_TOOL_DIR)/jerbuild" ]; then \ echo "=== Using downloaded Jerboa toolchain: $(JERBOA_TOOL_DIR) ==="; \ - elif [ -x ../jerboa/dist/jerbuild ] && [ -x ../jerboa/dist/jerboa ]; then \ + elif [ -x ../jerboa/dist/jerbuild ]; then \ echo "=== Using sibling Jerboa build: ../jerboa/dist/jerbuild ==="; \ elif [ -x ../jerboa/jerbuild ]; then \ echo "=== Using sibling Jerboa build: ../jerboa/jerbuild ==="; \ - elif command -v jerbuild >/dev/null 2>&1 && command -v jerboa >/dev/null 2>&1; then \ + elif command -v jerbuild >/dev/null 2>&1; then \ echo "=== Using Jerboa toolchain from PATH: $$(command -v jerbuild) ==="; \ else \ echo "=== Fetching Jerboa $(JERBOA_VERSION) release tools into $(JERBOA_TOOL_DIR) ==="; \ new file mode 100644 --- /dev/null +++ b/jpkg.policy.sexp @@ -0,0 +1,3 @@ +(policy + (mode dev) + (allow (native-build) (build-network) (test-network) (ffi))) new file mode 100644 --- /dev/null +++ b/jpkg.sexp @@ -0,0 +1,14 @@ +(package + (name "@lisp/jerboa-code") + (version "0.1.0") + (description "Portable AI coding agent") + (license "UNLICENSED") + (source "https://git.sr.ht/~lisp/jerboa-code") + (jerboa ">=0.2.0") + (modules ((root "src"))) + (dependencies ()) + (dev-dependencies ()) + (capabilities ((native-code reason: "termbox TUI shim and jerboa-native TLS/crypto") + (network build: #t test: #t) + (ffi libraries: ("jerboa_native" "termbox2")) + (executables ("jcode")))))