diff --git a/projects/aube.jdx.dev/package.yml b/projects/aube.jdx.dev/package.yml new file mode 100644 index 0000000000..df94be7c36 --- /dev/null +++ b/projects/aube.jdx.dev/package.yml @@ -0,0 +1,26 @@ +distributable: + url: https://github.com/jdx/aube/archive/refs/tags/{{version.tag}}.tar.gz + strip-components: 1 + +provides: + - bin/aube + - bin/aubr + - bin/aubx + +versions: + github: jdx/aube/tags + +build: + dependencies: + rust-lang.org: '>=1.91' + rust-lang.org/cargo: '*' + cmake.org: ^3 + script: cargo install --locked --path crates/aube --root {{prefix}} + +test: + - aube --version | grep {{version}} + # exercise the core job: scaffold a project and install a real npm package + - aube init + - aube add is-number + - test -f node_modules/is-number/package.json + - grep '"is-number"' package.json diff --git a/projects/communique.jdx.dev/package.yml b/projects/communique.jdx.dev/package.yml new file mode 100644 index 0000000000..849c598cb1 --- /dev/null +++ b/projects/communique.jdx.dev/package.yml @@ -0,0 +1,25 @@ +distributable: + url: https://github.com/jdx/communique/archive/refs/tags/{{version.tag}}.tar.gz + strip-components: 1 + +provides: + - bin/communique + +versions: + github: jdx/communique/tags + +build: + dependencies: + rust-lang.org: '>=1.85' # edition 2024 + rust-lang.org/cargo: '*' + script: cargo install --locked --path . --root {{prefix}} + +test: + dependencies: + git-scm.org: '*' # communique reads git history + script: + - communique --version | grep {{version}} + # init generates a config file in a real repo + - git init + - communique init + - test -f communique.toml diff --git a/projects/fnox.jdx.dev/package.yml b/projects/fnox.jdx.dev/package.yml new file mode 100644 index 0000000000..a65745cb52 --- /dev/null +++ b/projects/fnox.jdx.dev/package.yml @@ -0,0 +1,25 @@ +distributable: + url: https://github.com/jdx/fnox/archive/refs/tags/{{version.tag}}.tar.gz + strip-components: 1 + +provides: + - bin/fnox + +versions: + github: jdx/fnox/tags + +build: + dependencies: + rust-lang.org: '>=1.91.1' + rust-lang.org/cargo: '*' + perl.org: '*' # openssl-sys vendored build + linux: + systemd.io: '*' # hidapi (via ctap-hid-fido2) requires libudev + script: cargo install --locked --path . --root {{prefix}} + +test: + - fnox --version | grep {{version}} + # init writes a config fnox can then discover and load back + - fnox init + - test -f fnox.toml + - fnox config-files | grep fnox.toml diff --git a/projects/hk.jdx.dev/package.yml b/projects/hk.jdx.dev/package.yml new file mode 100644 index 0000000000..b0d365502e --- /dev/null +++ b/projects/hk.jdx.dev/package.yml @@ -0,0 +1,28 @@ +distributable: + url: https://github.com/jdx/hk/archive/refs/tags/{{version.tag}}.tar.gz + strip-components: 1 + +provides: + - bin/hk + +versions: + github: jdx/hk/tags + +build: + dependencies: + rust-lang.org: '>=1.88' + rust-lang.org/cargo: '*' + cmake.org: ^3 # git2 vendored-libgit2 + # --bin hk: the crate also has a `generate-docs` dev bin we don't ship + script: cargo install --locked --path . --bin hk --root {{prefix}} + +test: + dependencies: + git-scm.org: '*' # hk operates on a git repo + script: + - hk --version | grep {{version}} + # generate a config in a real repo, then parse+validate it + - git init + - hk init + - test -f hk.pkl + - hk validate diff --git a/projects/pitchfork.jdx.dev/package.yml b/projects/pitchfork.jdx.dev/package.yml new file mode 100644 index 0000000000..7d31a2da51 --- /dev/null +++ b/projects/pitchfork.jdx.dev/package.yml @@ -0,0 +1,32 @@ +distributable: + url: https://github.com/jdx/pitchfork/archive/refs/tags/{{version.tag}}.tar.gz + strip-components: 1 + +provides: + - bin/pitchfork + +versions: + github: jdx/pitchfork/tags + +build: + dependencies: + rust-lang.org: '>=1.88' + rust-lang.org/cargo: '*' + # the binary embeds ui/dist via rust-embed, so the vue/vite web UI + # (pnpm-lock.yaml) must be built before cargo — upstream does the same + # (mise `build:ui`: aube install && aube run build) + nodejs.org: '*' + pnpm.io: '*' + script: + - run: + - pnpm install --frozen-lockfile + - pnpm build + working-directory: ui + # package is `pitchfork-cli`; the bin it produces is `pitchfork` + - cargo install --locked --path . --root {{prefix}} + +test: + - pitchfork --version | grep {{version}} + # parse a real daemon config and list it back (no daemon is started) + - printf '[daemons.hello]\nrun = "sleep 1"\n' > pitchfork.toml + - pitchfork daemons | grep hello