5 Commits

Author SHA1 Message Date
Tom Alexander
336b5d3d54 Update build workflow.
Some checks failed
rust-test Build rust-test has started
foreign-document-test Build foreign-document-test has started
build Build build has started
format Build format has succeeded
clippy Build clippy has failed
2026-07-17 18:38:11 -04:00
Tom Alexander
cef89303b1 Pin a specific version of rust.
Some checks failed
format Build format has succeeded
rust-test Build rust-test has started
clippy Build clippy has failed
build Build build has failed
foreign-document-test Build foreign-document-test has failed
2026-07-11 18:36:52 -04:00
Tom Alexander
842a77fb2b Pass in rust-overlay for creating rust-bin.
Some checks failed
rust-test Build rust-test has started
format Build format has succeeded
clippy Build clippy has failed
build Build build has succeeded
foreign-document-test Build foreign-document-test has failed
2026-07-10 21:55:12 -04:00
Tom Alexander
957bb3a5c8 Remove pkgsBuildHost from devShell. 2026-07-10 21:55:12 -04:00
Tom Alexander
de6739f9b6 Add an overlay to the flake.
Some checks failed
foreign-document-test Build foreign-document-test has started
rust-test Build rust-test has started
format Build format has succeeded
clippy Build clippy has failed
build Build build has succeeded
2026-07-10 20:21:38 -04:00
8 changed files with 139 additions and 99 deletions

View File

@@ -2,6 +2,8 @@ apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
name: build
labels:
pdb: protect
spec:
timeouts:
pipeline: "2h0m0s"
@@ -62,7 +64,7 @@ spec:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: "31376f29c6332ea8c378152d5ccda1ba9dbcd7bb"
value: "dda7b690195b43e8b9859d1caf5dcbf48588ade1"
- name: pathInRepo
value: task/git-clone/0.1/git-clone.yaml
resolver: git
@@ -101,7 +103,7 @@ spec:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: 31376f29c6332ea8c378152d5ccda1ba9dbcd7bb
value: dda7b690195b43e8b9859d1caf5dcbf48588ade1
- name: pathInRepo
value: task/buildkit-rootless-daemonless/0.1/buildkit-rootless-daemonless.yaml
params:

View File

@@ -2,6 +2,8 @@ apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
name: foreign-document-test
labels:
pdb: protect
spec:
timeouts:
pipeline: "2h0m0s"
@@ -62,7 +64,7 @@ spec:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: "31376f29c6332ea8c378152d5ccda1ba9dbcd7bb"
value: "dda7b690195b43e8b9859d1caf5dcbf48588ade1"
- name: pathInRepo
value: task/git-clone/0.1/git-clone.yaml
resolver: git
@@ -101,7 +103,7 @@ spec:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: 31376f29c6332ea8c378152d5ccda1ba9dbcd7bb
value: dda7b690195b43e8b9859d1caf5dcbf48588ade1
- name: pathInRepo
value: task/buildkit-rootless-daemonless/0.1/buildkit-rootless-daemonless.yaml
params:

View File

@@ -2,6 +2,8 @@ apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
name: rust-format
labels:
pdb: protect
spec:
timeouts:
pipeline: "2h0m0s"
@@ -62,7 +64,7 @@ spec:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: "31376f29c6332ea8c378152d5ccda1ba9dbcd7bb"
value: "dda7b690195b43e8b9859d1caf5dcbf48588ade1"
- name: pathInRepo
value: task/git-clone/0.1/git-clone.yaml
resolver: git
@@ -101,7 +103,7 @@ spec:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: 31376f29c6332ea8c378152d5ccda1ba9dbcd7bb
value: dda7b690195b43e8b9859d1caf5dcbf48588ade1
- name: pathInRepo
value: task/buildkit-rootless-daemonless/0.1/buildkit-rootless-daemonless.yaml
params:

View File

@@ -2,6 +2,8 @@ apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
name: rust-clippy
labels:
pdb: protect
spec:
taskRunTemplate:
serviceAccountName: build-bot
@@ -62,7 +64,7 @@ spec:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: "31376f29c6332ea8c378152d5ccda1ba9dbcd7bb"
value: "dda7b690195b43e8b9859d1caf5dcbf48588ade1"
- name: pathInRepo
value: task/git-clone/0.1/git-clone.yaml
resolver: git
@@ -101,7 +103,7 @@ spec:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: 31376f29c6332ea8c378152d5ccda1ba9dbcd7bb
value: dda7b690195b43e8b9859d1caf5dcbf48588ade1
- name: pathInRepo
value: task/buildkit-rootless-daemonless/0.1/buildkit-rootless-daemonless.yaml
params:

View File

@@ -2,6 +2,8 @@ apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
name: rust-test
labels:
pdb: protect
spec:
timeouts:
pipeline: "2h0m0s"
@@ -62,7 +64,7 @@ spec:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: "31376f29c6332ea8c378152d5ccda1ba9dbcd7bb"
value: "dda7b690195b43e8b9859d1caf5dcbf48588ade1"
- name: pathInRepo
value: task/git-clone/0.1/git-clone.yaml
resolver: git
@@ -101,7 +103,7 @@ spec:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: 31376f29c6332ea8c378152d5ccda1ba9dbcd7bb
value: dda7b690195b43e8b9859d1caf5dcbf48588ade1
- name: pathInRepo
value: task/buildkit-rootless-daemonless/0.1/buildkit-rootless-daemonless.yaml
params:

143
flake.nix
View File

@@ -35,9 +35,9 @@
pkgs = import nixpkgs {
inherit system overlays;
};
rustToolchain =
(pkgs.pkgsBuildHost.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml).override
{ targets = [ "wasm32-unknown-unknown" ]; };
rustToolchain = (pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml).override {
targets = [ "wasm32-unknown-unknown" ];
};
in
{
default = pkgs.mkShell {
@@ -57,43 +57,10 @@
pkgs = import nixpkgs {
inherit system overlays;
};
build_wasm =
{
bindgenTarget ? null,
}:
(pkgs.callPackage ./nix/package.nix {
targetBins = [
"wasm"
];
features = [ "wasm" ];
cargoBuildTarget = "wasm32-unknown-unknown";
buildType = "wasm";
}).overrideAttrs
(
old:
let
bindgen_command = [
"${pkgs.wasm-bindgen-cli}/bin/wasm-bindgen"
"--target"
bindgenTarget
"--out-dir"
"target/wasm32-unknown-unknown/${bindgenTarget}"
"target/wasm32-unknown-unknown/wasm/wasm.wasm"
];
in
{
postBuild = ''
${pkgs.lib.escapeShellArgs bindgen_command}
'';
installPhase = ''
mkdir -p $out/share/${bindgenTarget}
cp target/wasm32-unknown-unknown/${bindgenTarget}/* $out/share/${bindgenTarget}
'';
}
);
appliedOverlay = self.overlays.default pkgs pkgs;
in
rec {
default = all;
all = pkgs.symlinkJoin {
name = "all";
paths = [
@@ -103,37 +70,93 @@
wasm_web
];
};
library = (pkgs.callPackage ./nix/package.nix { buildLib = true; }).overrideAttrs (
old:
let
in
{
installPhase = ''
mkdir -p $out/lib
cp target/*/release/liborganic.rlib $out/lib/
'';
}
);
devTools = pkgs.callPackage ./nix/package.nix {
targetBins = [
"parse"
"compare"
];
features = [ "compare" ];
};
wasm_bundler = build_wasm { bindgenTarget = "bundler"; };
wasm_web = build_wasm { bindgenTarget = "web"; };
inherit (appliedOverlay.organic)
library
devTools
wasm_bundler
wasm_web
;
docker_env = pkgs.buildEnv {
name = "organic";
paths = with pkgs; [
devTools
appliedOverlay.organic.devTools
bash
uutils-coreutils-noprefix
# toybox # Smaller than uutils-coreutils?
];
};
default = all;
}
);
overlays.default = final: prev: {
organic = final.lib.makeScope final.newScope (
organicScope:
let
build_wasm =
{
bindgenTarget ? null,
}:
(organicScope.callPackage ./nix/package.nix {
inherit rust-overlay;
targetBins = [
"wasm"
];
features = [ "wasm" ];
cargoBuildTarget = "wasm32-unknown-unknown";
buildType = "wasm";
}).overrideAttrs
(
old:
let
bindgen_command = [
"${final.wasm-bindgen-cli}/bin/wasm-bindgen"
"--target"
bindgenTarget
"--out-dir"
"target/wasm32-unknown-unknown/${bindgenTarget}"
"target/wasm32-unknown-unknown/wasm/wasm.wasm"
];
in
{
postBuild = ''
${final.lib.escapeShellArgs bindgen_command}
'';
installPhase = ''
mkdir -p $out/share/${bindgenTarget}
cp target/wasm32-unknown-unknown/${bindgenTarget}/* $out/share/${bindgenTarget}
'';
}
);
in
{
library =
(organicScope.callPackage ./nix/package.nix {
inherit rust-overlay;
buildLib = true;
}).overrideAttrs
(
old:
let
in
{
installPhase = ''
mkdir -p $out/lib
cp target/*/release/liborganic.rlib $out/lib/
'';
}
);
devTools = organicScope.callPackage ./nix/package.nix {
inherit rust-overlay;
targetBins = [
"parse"
"compare"
];
features = [ "compare" ];
};
wasm_bundler = build_wasm { bindgenTarget = "bundler"; };
wasm_web = build_wasm { bindgenTarget = "web"; };
}
);
};
};
}

View File

@@ -1,8 +1,8 @@
{
hello,
lib,
makeRustPlatform,
pkgsBuildHost,
pkgs,
rust-overlay,
targetBins ? [ ],
features ? [ ],
@@ -12,34 +12,41 @@
}:
let
cargoToml = (lib.importTOML ../Cargo.toml);
rustToolchain = (pkgsBuildHost.rust-bin.fromRustupToolchainFile ../rust-toolchain.toml).override (
if cargoBuildTarget != null then
{
targets = [ cargoBuildTarget ];
}
else
{ }
);
baseRustPlatform = (
makeRustPlatform {
cargo = rustToolchain;
rustc = rustToolchain;
}
);
rustPlatform =
if cargoBuildTarget != null then
baseRustPlatform.overrideScope (
final: prev: {
cargoBuildHook = prev.cargoBuildHook.overrideDerivation (_: {
rustcTargetSpec = cargoBuildTarget;
});
cargoInstallHook = hello;
rustPlatformFor =
pkgs:
let
rust-bin = rust-overlay.lib.mkRustBin { } pkgs;
rustToolchain = (rust-bin.fromRustupToolchainFile ../rust-toolchain.toml).override (
if cargoBuildTarget != null then
{
targets = [ cargoBuildTarget ];
}
else
{ }
);
baseRustPlatform = (
pkgs.makeRustPlatform {
cargo = rustToolchain;
rustc = rustToolchain;
}
)
else
baseRustPlatform;
);
rustPlatform =
if cargoBuildTarget != null then
baseRustPlatform.overrideScope (
final: prev: {
cargoBuildHook = prev.cargoBuildHook.overrideDerivation (_: {
rustcTargetSpec = cargoBuildTarget;
});
cargoInstallHook = hello;
}
)
else
baseRustPlatform;
in
rustPlatform;
in
rustPlatform.buildRustPackage (
(rustPlatformFor pkgs).buildRustPackage (
# rustPlatform.buildRustPackage (
{
pname = "organic";
version = cargoToml.package.version;

View File

@@ -1,4 +1,4 @@
[toolchain]
channel = "nightly"
channel = "nightly-2026-05-23"
profile = "default"
components = ["clippy", "rustfmt"]