6 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
Tom Alexander
656e26e26f Use ADD command for pulling git repos.
This is to fix buildkit caching.
2026-07-09 22:39:35 -04:00
9 changed files with 156 additions and 110 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -17,15 +17,17 @@ RUN apk add --no-cache build-base musl-dev git autoconf make texinfo gnutls-dev
FROM build AS build-emacs FROM build AS build-emacs
ARG EMACS_VERSION
ARG EMACS_REPO ARG EMACS_REPO
RUN git clone --depth 1 --branch $EMACS_VERSION $EMACS_REPO /root/emacs ARG EMACS_VERSION
ADD "$EMACS_REPO#$EMACS_VERSION" /root/emacs
WORKDIR /root/emacs WORKDIR /root/emacs
RUN mkdir /root/dist RUN <<EOF
RUN ./autogen.sh mkdir /root/dist
RUN ./configure --prefix /usr --without-x --without-sound --with-native-compilation=aot ./autogen.sh
RUN make ./configure --prefix /usr --without-x --without-sound --with-native-compilation=aot
RUN make DESTDIR="/root/dist" install make
make DESTDIR="/root/dist" install
EOF
FROM build AS build-org-mode FROM build AS build-org-mode
@@ -37,8 +39,10 @@ RUN mkdir /root/dist
RUN git clone $ORG_MODE_REPO /root/org-mode && git -C /root/org-mode checkout $ORG_VERSION RUN git clone $ORG_MODE_REPO /root/org-mode && git -C /root/org-mode checkout $ORG_VERSION
# RUN mkdir /root/org-mode && git -C /root/org-mode init --initial-branch=main && git -C /root/org-mode remote add origin $ORG_REPO && git -C /root/org-mode fetch origin $ORG_VERSION && git -C /root/org-mode checkout FETCH_HEAD # RUN mkdir /root/org-mode && git -C /root/org-mode init --initial-branch=main && git -C /root/org-mode remote add origin $ORG_REPO && git -C /root/org-mode fetch origin $ORG_VERSION && git -C /root/org-mode checkout FETCH_HEAD
WORKDIR /root/org-mode WORKDIR /root/org-mode
RUN make compile RUN <<EOF
RUN make DESTDIR="/root/dist" install make compile
make DESTDIR="/root/dist" install
EOF
FROM rustlang/rust:nightly-alpine$ALPINE_VERSION AS tester FROM rustlang/rust:nightly-alpine$ALPINE_VERSION AS tester
@@ -118,8 +122,10 @@ RUN mkdir -p $LITERATE_BUILD_EMACS_PATH && git -C $LITERATE_BUILD_EMACS_PATH ini
RUN rm $LITERATE_BUILD_EMACS_PATH/unused/aws.org RUN rm $LITERATE_BUILD_EMACS_PATH/unused/aws.org
FROM tester as foreign-document FROM tester as foreign-document
RUN apk add --no-cache bash coreutils RUN <<EOF
RUN mkdir /foreign_documents apk add --no-cache bash coreutils
mkdir /foreign_documents
EOF
COPY --link --from=foreign-document-gather /foreign_documents/howardabrams /foreign_documents/howardabrams COPY --link --from=foreign-document-gather /foreign_documents/howardabrams /foreign_documents/howardabrams
COPY --link --from=foreign-document-gather /foreign_documents/doomemacs /foreign_documents/doomemacs COPY --link --from=foreign-document-gather /foreign_documents/doomemacs /foreign_documents/doomemacs
COPY --link --from=foreign-document-gather /foreign_documents/worg /foreign_documents/worg COPY --link --from=foreign-document-gather /foreign_documents/worg /foreign_documents/worg

View File

@@ -35,9 +35,9 @@
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system overlays; inherit system overlays;
}; };
rustToolchain = rustToolchain = (pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml).override {
(pkgs.pkgsBuildHost.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml).override targets = [ "wasm32-unknown-unknown" ];
{ targets = [ "wasm32-unknown-unknown" ]; }; };
in in
{ {
default = pkgs.mkShell { default = pkgs.mkShell {
@@ -57,11 +57,46 @@
pkgs = import nixpkgs { pkgs = import nixpkgs {
inherit system overlays; inherit system overlays;
}; };
appliedOverlay = self.overlays.default pkgs pkgs;
in
rec {
default = all;
all = pkgs.symlinkJoin {
name = "all";
paths = [
library
devTools
wasm_bundler
wasm_web
];
};
inherit (appliedOverlay.organic)
library
devTools
wasm_bundler
wasm_web
;
docker_env = pkgs.buildEnv {
name = "organic";
paths = with pkgs; [
appliedOverlay.organic.devTools
bash
uutils-coreutils-noprefix
# toybox # Smaller than uutils-coreutils?
];
};
}
);
overlays.default = final: prev: {
organic = final.lib.makeScope final.newScope (
organicScope:
let
build_wasm = build_wasm =
{ {
bindgenTarget ? null, bindgenTarget ? null,
}: }:
(pkgs.callPackage ./nix/package.nix { (organicScope.callPackage ./nix/package.nix {
inherit rust-overlay;
targetBins = [ targetBins = [
"wasm" "wasm"
]; ];
@@ -73,7 +108,7 @@
old: old:
let let
bindgen_command = [ bindgen_command = [
"${pkgs.wasm-bindgen-cli}/bin/wasm-bindgen" "${final.wasm-bindgen-cli}/bin/wasm-bindgen"
"--target" "--target"
bindgenTarget bindgenTarget
"--out-dir" "--out-dir"
@@ -83,7 +118,7 @@
in in
{ {
postBuild = '' postBuild = ''
${pkgs.lib.escapeShellArgs bindgen_command} ${final.lib.escapeShellArgs bindgen_command}
''; '';
installPhase = '' installPhase = ''
@@ -93,17 +128,13 @@
} }
); );
in in
rec { {
all = pkgs.symlinkJoin { library =
name = "all"; (organicScope.callPackage ./nix/package.nix {
paths = [ inherit rust-overlay;
library buildLib = true;
devTools }).overrideAttrs
wasm_bundler (
wasm_web
];
};
library = (pkgs.callPackage ./nix/package.nix { buildLib = true; }).overrideAttrs (
old: old:
let let
in in
@@ -114,7 +145,8 @@
''; '';
} }
); );
devTools = pkgs.callPackage ./nix/package.nix { devTools = organicScope.callPackage ./nix/package.nix {
inherit rust-overlay;
targetBins = [ targetBins = [
"parse" "parse"
"compare" "compare"
@@ -123,17 +155,8 @@
}; };
wasm_bundler = build_wasm { bindgenTarget = "bundler"; }; wasm_bundler = build_wasm { bindgenTarget = "bundler"; };
wasm_web = build_wasm { bindgenTarget = "web"; }; wasm_web = build_wasm { bindgenTarget = "web"; };
docker_env = pkgs.buildEnv {
name = "organic";
paths = with pkgs; [
devTools
bash
uutils-coreutils-noprefix
# toybox # Smaller than uutils-coreutils?
];
};
default = all;
} }
); );
}; };
};
} }

View File

@@ -1,8 +1,8 @@
{ {
hello, hello,
lib, lib,
makeRustPlatform, pkgs,
pkgsBuildHost, rust-overlay,
targetBins ? [ ], targetBins ? [ ],
features ? [ ], features ? [ ],
@@ -12,7 +12,11 @@
}: }:
let let
cargoToml = (lib.importTOML ../Cargo.toml); cargoToml = (lib.importTOML ../Cargo.toml);
rustToolchain = (pkgsBuildHost.rust-bin.fromRustupToolchainFile ../rust-toolchain.toml).override ( rustPlatformFor =
pkgs:
let
rust-bin = rust-overlay.lib.mkRustBin { } pkgs;
rustToolchain = (rust-bin.fromRustupToolchainFile ../rust-toolchain.toml).override (
if cargoBuildTarget != null then if cargoBuildTarget != null then
{ {
targets = [ cargoBuildTarget ]; targets = [ cargoBuildTarget ];
@@ -21,7 +25,7 @@ let
{ } { }
); );
baseRustPlatform = ( baseRustPlatform = (
makeRustPlatform { pkgs.makeRustPlatform {
cargo = rustToolchain; cargo = rustToolchain;
rustc = rustToolchain; rustc = rustToolchain;
} }
@@ -39,7 +43,10 @@ let
else else
baseRustPlatform; baseRustPlatform;
in in
rustPlatform.buildRustPackage ( rustPlatform;
in
(rustPlatformFor pkgs).buildRustPackage (
# rustPlatform.buildRustPackage (
{ {
pname = "organic"; pname = "organic";
version = cargoToml.package.version; version = cargoToml.package.version;

View File

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