22 Commits

Author SHA1 Message Date
Tom Alexander
99f97874ea TEMP test
Some checks are pending
foreign-document-test Build foreign-document-test has started
2026-09-07 12:48:04 -04:00
Tom Alexander
6c3df1d4cd Don't use ADD to clone git repos.
Using ADD to clone git repos breaks caching.
2026-09-07 12:47:19 -04:00
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
Tom Alexander
49fbb17672 Update builder image for buildkit.
Some checks are pending
rust-test Build rust-test has started
foreign-document-test Build foreign-document-test has started
format Build format has succeeded
clippy Build clippy has started
build Build build has started
2026-07-09 21:29:47 -04:00
Tom Alexander
8c8152bbfc Fix the build pipeline.
Some checks failed
foreign-document-test Build foreign-document-test has started
rust-test Build rust-test has started
clippy Build clippy has failed
format Build format has succeeded
build Build build has succeeded
2026-07-09 19:38:26 -04:00
Tom Alexander
3a84926d9f Merge branch 'fix_tekton'
Some checks failed
format Build format has succeeded
clippy Build clippy has failed
foreign-document-test Build foreign-document-test has failed
rust-test Build rust-test has succeeded
2026-07-08 22:38:32 -04:00
Tom Alexander
0b125fc88e Fix tekton pipelines. 2026-07-08 22:38:20 -04:00
Tom Alexander
27342b0a44 Merge branch 'nix' 2026-06-18 23:49:09 -04:00
Tom Alexander
76ecd25002 Add support for building organic via nix. 2026-06-18 23:16:57 -04:00
Tom Alexander
482d5ecfa3 Switch to local-path-provisioner.
Some checks failed
format Build format has succeeded
clippy Build clippy has failed
rust-test Build rust-test has succeeded
foreign-document-test Build foreign-document-test has succeeded
2025-08-31 19:51:03 -04:00
Tom Alexander
84b8ddb582 Merge branch 'add_jump_to_line_number' 2025-02-01 21:55:43 -05:00
Tom Alexander
113bb5888a Add a test with a tramp link.
Some checks failed
rust-test Build rust-test has started
format Build format has succeeded
clippy Build clippy has failed
2025-02-01 19:19:05 -05:00
Tom Alexander
bf5fe6920b Add a test for jump to line number.
Some checks failed
format Build format has succeeded
clippy Build clippy has failed
rust-test Build rust-test has failed
2025-02-01 18:42:10 -05:00
Tom Alexander
4b52ed0d2a Fix clippy lint.
Some checks failed
format Build format has succeeded
clippy Build clippy has failed
foreign-document-test Build foreign-document-test has succeeded
rust-test Build rust-test has succeeded
2024-10-21 00:25:45 -04:00
Tom Alexander
d2c558ccfa Merge branch 'buildkit'
Some checks failed
format Build format has succeeded
clippy Build clippy has failed
rust-test Build rust-test has succeeded
foreign-document-test Build foreign-document-test has succeeded
2024-10-21 00:13:02 -04:00
Tom Alexander
a01f78b510 Update dockerfiles to take advantage of BuildKit.
Some checks failed
format Build format has succeeded
clippy Build clippy has failed
rust-test Build rust-test has succeeded
2024-10-20 23:13:07 -04:00
Tom Alexander
d80b473fae Switch to using BuiltKit instead of Kaniko to build docker images. 2024-10-20 22:55:22 -04:00
19 changed files with 2232 additions and 273 deletions

View File

@@ -3,3 +3,4 @@ target
Cargo.lock Cargo.lock
notes/ notes/
.lighthouse/ .lighthouse/
/.webhook_bridge/

2
.gitignore vendored
View File

@@ -1,3 +1,3 @@
/target /target
Cargo.lock
TODO.org TODO.org
/result

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"
@@ -50,18 +52,6 @@ spec:
- name: TARGET_URL - name: TARGET_URL
value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)" value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)"
- name: fetch-repository - name: fetch-repository
taskRef:
resolver: git
params:
- name: url
value: https://code.fizz.buzz/mirror/catalog.git # mirror of https://github.com/tektoncd/catalog.git
- name: revision
value: df36b3853a5657fd883015cdbf07ad6466918acf
- name: pathInRepo
value: task/git-clone/0.9/git-clone.yaml
workspaces:
- name: output
workspace: git-source
params: params:
- name: url - name: url
value: $(params.REPO_URL) value: $(params.REPO_URL)
@@ -69,42 +59,86 @@ spec:
value: $(params.PULL_BASE_SHA) value: $(params.PULL_BASE_SHA)
- name: deleteExisting - name: deleteExisting
value: "true" value: "true"
taskRef:
params:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: "dda7b690195b43e8b9859d1caf5dcbf48588ade1"
- name: pathInRepo
value: task/git-clone/0.1/git-clone.yaml
resolver: git
workspaces:
- name: output
workspace: git-source
- name: get-git-commit-time
taskSpec:
metadata: {}
stepTemplate:
image: alpine:3.20
computeResources:
requests:
cpu: 10m
memory: 600Mi
workingDir: "$(workspaces.repo.path)"
results:
- name: unix-time
description: The time of the git commit in unix timestamp format.
steps:
- image: alpine/git:v2.34.2
name: detect-tag-step
script: |
#!/usr/bin/env sh
set -euo pipefail
echo -n "$(git log -1 --pretty=%ct)" | tee $(results.unix-time.path)
workspaces:
- name: repo
workspace: git-source
runAfter:
- fetch-repository
- name: build-image - name: build-image
taskRef: taskRef:
resolver: git resolver: git
params: params:
- name: url - name: url
value: https://code.fizz.buzz/mirror/catalog.git # mirror of https://github.com/tektoncd/catalog.git value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision - name: revision
value: df36b3853a5657fd883015cdbf07ad6466918acf value: dda7b690195b43e8b9859d1caf5dcbf48588ade1
- name: pathInRepo - name: pathInRepo
value: task/kaniko/0.6/kaniko.yaml value: task/buildkit-rootless-daemonless/0.1/buildkit-rootless-daemonless.yaml
params: params:
- name: IMAGE - name: OUTPUT
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: >-
type=image,"name=$(params.image-name):latest,$(params.image-name):$(tasks.fetch-repository.results.commit)",push=true,compression=zstd,compression-level=22,oci-mediatypes=true
- name: CONTEXT - name: CONTEXT
value: $(params.path-to-image-context) value: $(params.path-to-image-context)
- name: DOCKERFILE - name: DOCKERFILE
value: $(params.path-to-dockerfile) value: $(params.path-to-dockerfile)
- name: BUILDER_IMAGE
value: "gcr.io/kaniko-project/executor:v1.12.1"
- name: EXTRA_ARGS - name: EXTRA_ARGS
value: value:
- "--destination=$(params.image-name)" # Also write the :latest image - "--opt"
- "--target=$(params.target-name)" - "target=$(params.target-name)"
- --cache=true - --import-cache
- --cache-copy-layers - "type=registry,ref=$(params.image-name):buildcache"
- --cache-repo=harbor.fizz.buzz/kanikocache/cache - --export-cache
- --use-new-run # Should result in a speed-up - "type=registry,ref=$(params.image-name):buildcache,mode=max,compression=zstd,compression-level=22,rewrite-timestamp=true,image-manifest=true,oci-mediatypes=true"
- --reproducible # To remove timestamps so layer caching works. - --opt
- --snapshot-mode=redo - build-arg:SOURCE_DATE_EPOCH=$(tasks.get-git-commit-time.results.unix-time)
- --skip-unused-stages=true - name: BUILDKITD_TOML
- --registry-mirror=dockerhub.dockerhub.svc.cluster.local value: |
debug = true
[registry."docker.io"]
mirrors = ["dockerhub.dockerhub.svc.cluster.local"]
[registry."dockerhub.dockerhub.svc.cluster.local"]
http = true
insecure = true
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
- name: dockerconfig - name: dockerconfig
workspace: docker-credentials workspace: docker-credentials
runAfter:
- fetch-repository
############# #############
- name: run-image-none - name: run-image-none
taskSpec: taskSpec:
@@ -113,11 +147,10 @@ spec:
- name: docker-image - name: docker-image
type: string type: string
description: Docker image to run. description: Docker image to run.
default: alpine:3.18 default: alpine:3.20
stepTemplate: stepTemplate:
image: alpine:3.18 image: alpine:3.20
name: "" computeResources:
resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 60Mi memory: 60Mi
@@ -137,6 +170,8 @@ spec:
env: env:
- name: CARGO_TARGET_DIR - name: CARGO_TARGET_DIR
value: /target value: /target
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -147,7 +182,7 @@ spec:
- build-image - build-image
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
############# #############
- name: run-image-tracing - name: run-image-tracing
taskSpec: taskSpec:
@@ -156,11 +191,10 @@ spec:
- name: docker-image - name: docker-image
type: string type: string
description: Docker image to run. description: Docker image to run.
default: alpine:3.18 default: alpine:3.20
stepTemplate: stepTemplate:
image: alpine:3.18 image: alpine:3.20
name: "" computeResources:
resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 60Mi memory: 60Mi
@@ -180,6 +214,8 @@ spec:
env: env:
- name: CARGO_TARGET_DIR - name: CARGO_TARGET_DIR
value: /target value: /target
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -190,7 +226,7 @@ spec:
- run-image-none - run-image-none
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
############# #############
- name: run-image-compare - name: run-image-compare
taskSpec: taskSpec:
@@ -199,11 +235,10 @@ spec:
- name: docker-image - name: docker-image
type: string type: string
description: Docker image to run. description: Docker image to run.
default: alpine:3.18 default: alpine:3.20
stepTemplate: stepTemplate:
image: alpine:3.18 image: alpine:3.20
name: "" computeResources:
resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 60Mi memory: 60Mi
@@ -223,6 +258,8 @@ spec:
env: env:
- name: CARGO_TARGET_DIR - name: CARGO_TARGET_DIR
value: /target value: /target
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -233,7 +270,7 @@ spec:
- run-image-tracing - run-image-tracing
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
############# #############
- name: run-image-default - name: run-image-default
taskSpec: taskSpec:
@@ -242,11 +279,10 @@ spec:
- name: docker-image - name: docker-image
type: string type: string
description: Docker image to run. description: Docker image to run.
default: alpine:3.18 default: alpine:3.20
stepTemplate: stepTemplate:
image: alpine:3.18 image: alpine:3.20
name: "" computeResources:
resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 60Mi memory: 60Mi
@@ -266,6 +302,8 @@ spec:
env: env:
- name: CARGO_TARGET_DIR - name: CARGO_TARGET_DIR
value: /target value: /target
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -276,7 +314,7 @@ spec:
- run-image-compare - run-image-compare
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
############# #############
- name: run-image-tracing-compare - name: run-image-tracing-compare
taskSpec: taskSpec:
@@ -285,11 +323,10 @@ spec:
- name: docker-image - name: docker-image
type: string type: string
description: Docker image to run. description: Docker image to run.
default: alpine:3.18 default: alpine:3.20
stepTemplate: stepTemplate:
image: alpine:3.18 image: alpine:3.20
name: "" computeResources:
resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 60Mi memory: 60Mi
@@ -309,6 +346,8 @@ spec:
env: env:
- name: CARGO_TARGET_DIR - name: CARGO_TARGET_DIR
value: /target value: /target
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -319,7 +358,7 @@ spec:
- run-image-default - run-image-default
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
############# #############
- name: run-image-compare-foreign - name: run-image-compare-foreign
taskSpec: taskSpec:
@@ -328,11 +367,10 @@ spec:
- name: docker-image - name: docker-image
type: string type: string
description: Docker image to run. description: Docker image to run.
default: alpine:3.18 default: alpine:3.20
stepTemplate: stepTemplate:
image: alpine:3.18 image: alpine:3.20
name: "" computeResources:
resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 60Mi memory: 60Mi
@@ -357,6 +395,8 @@ spec:
env: env:
- name: CARGO_TARGET_DIR - name: CARGO_TARGET_DIR
value: /target value: /target
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -367,7 +407,7 @@ spec:
- run-image-tracing-compare - run-image-tracing-compare
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
############# #############
- name: run-image-all - name: run-image-all
taskSpec: taskSpec:
@@ -376,11 +416,10 @@ spec:
- name: docker-image - name: docker-image
type: string type: string
description: Docker image to run. description: Docker image to run.
default: alpine:3.18 default: alpine:3.20
stepTemplate: stepTemplate:
image: alpine:3.18 image: alpine:3.20
name: "" computeResources:
resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 60Mi memory: 60Mi
@@ -405,6 +444,8 @@ spec:
env: env:
- name: CARGO_TARGET_DIR - name: CARGO_TARGET_DIR
value: /target value: /target
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -415,7 +456,7 @@ spec:
- run-image-compare-foreign - run-image-compare-foreign
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
############# #############
- name: run-image-wasm - name: run-image-wasm
taskSpec: taskSpec:
@@ -424,11 +465,10 @@ spec:
- name: docker-image - name: docker-image
type: string type: string
description: Docker image to run. description: Docker image to run.
default: alpine:3.18 default: alpine:3.20
stepTemplate: stepTemplate:
image: alpine:3.18 image: alpine:3.20
name: "" computeResources:
resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 60Mi memory: 60Mi
@@ -459,6 +499,8 @@ spec:
env: env:
- name: CARGO_TARGET_DIR - name: CARGO_TARGET_DIR
value: /target value: /target
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -469,7 +511,7 @@ spec:
- run-image-all - run-image-all
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
############# #############
- name: run-image-wasm-test - name: run-image-wasm-test
taskSpec: taskSpec:
@@ -478,11 +520,10 @@ spec:
- name: docker-image - name: docker-image
type: string type: string
description: Docker image to run. description: Docker image to run.
default: alpine:3.18 default: alpine:3.20
stepTemplate: stepTemplate:
image: alpine:3.18 image: alpine:3.20
name: "" computeResources:
resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 60Mi memory: 60Mi
@@ -509,6 +550,8 @@ spec:
env: env:
- name: CARGO_TARGET_DIR - name: CARGO_TARGET_DIR
value: /target value: /target
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -519,7 +562,7 @@ spec:
- run-image-wasm - run-image-wasm
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
############# #############
finally: finally:
- name: report-success - name: report-success
@@ -587,17 +630,13 @@ spec:
- name: docker-image - name: docker-image
type: string type: string
description: Docker image to run. description: Docker image to run.
default: alpine:3.18 default: alpine:3.20
- name: cache-subdir stepTemplate:
type: string image: alpine:3.20
description: subPath used in the persistent volume for the cargo cache. computeResources:
steptemplate:
image: alpine:3.18
name: ""
resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 60Mi memory: 600Mi
workingDir: /workspace/source workingDir: /workspace/source
workspaces: workspaces:
- name: source - name: source
@@ -609,21 +648,19 @@ spec:
- name: run - name: run
image: $(params.docker-image) image: $(params.docker-image)
workingDir: "$(workspaces.source.path)" workingDir: "$(workspaces.source.path)"
command: ["ls", "$(workspaces.cargo-cache.path)"] command: [cargo, cache, --autoclean]
# command: [echo, $(params.cache-subdir)]
# command: [cargo, cache, --autoclean]
args: [] args: []
env:
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
- name: cargo-cache - name: cargo-cache
workspace: cargo-cache workspace: cargo-cache
subPath: $(params.cache-subdir)
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
- name: cache-subdir
value: none
# matrix: # matrix:
# params: # params:
# - name: cache-subdir # - name: cache-subdir
@@ -645,7 +682,7 @@ spec:
- name: git-source - name: git-source
volumeClaimTemplate: volumeClaimTemplate:
spec: spec:
storageClassName: "nfs-client" storageClassName: "local-path"
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources:
@@ -666,4 +703,4 @@ spec:
- name: path-to-image-context - name: path-to-image-context
value: . value: .
- name: path-to-dockerfile - name: path-to-dockerfile
value: docker/organic_development/Dockerfile value: docker/organic_development/

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"
@@ -50,18 +52,6 @@ spec:
- name: TARGET_URL - name: TARGET_URL
value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)" value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)"
- name: fetch-repository - name: fetch-repository
taskRef:
resolver: git
params:
- name: url
value: https://code.fizz.buzz/mirror/catalog.git # mirror of https://github.com/tektoncd/catalog.git
- name: revision
value: df36b3853a5657fd883015cdbf07ad6466918acf
- name: pathInRepo
value: task/git-clone/0.9/git-clone.yaml
workspaces:
- name: output
workspace: git-source
params: params:
- name: url - name: url
value: $(params.REPO_URL) value: $(params.REPO_URL)
@@ -69,41 +59,86 @@ spec:
value: $(params.PULL_BASE_SHA) value: $(params.PULL_BASE_SHA)
- name: deleteExisting - name: deleteExisting
value: "true" value: "true"
taskRef:
params:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: "dda7b690195b43e8b9859d1caf5dcbf48588ade1"
- name: pathInRepo
value: task/git-clone/0.1/git-clone.yaml
resolver: git
workspaces:
- name: output
workspace: git-source
- name: get-git-commit-time
taskSpec:
metadata: {}
stepTemplate:
image: alpine:3.20
computeResources:
requests:
cpu: 10m
memory: 600Mi
workingDir: "$(workspaces.repo.path)"
results:
- name: unix-time
description: The time of the git commit in unix timestamp format.
steps:
- image: alpine/git:v2.34.2
name: detect-tag-step
script: |
#!/usr/bin/env sh
set -euo pipefail
echo -n "$(git log -1 --pretty=%ct)" | tee $(results.unix-time.path)
workspaces:
- name: repo
workspace: git-source
runAfter:
- fetch-repository
- name: build-image - name: build-image
taskRef: taskRef:
resolver: git resolver: git
params: params:
- name: url - name: url
value: https://code.fizz.buzz/mirror/catalog.git # mirror of https://github.com/tektoncd/catalog.git value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision - name: revision
value: df36b3853a5657fd883015cdbf07ad6466918acf value: dda7b690195b43e8b9859d1caf5dcbf48588ade1
- name: pathInRepo - name: pathInRepo
value: task/kaniko/0.6/kaniko.yaml value: task/buildkit-rootless-daemonless/0.1/buildkit-rootless-daemonless.yaml
params: params:
- name: IMAGE - name: OUTPUT
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: >-
type=image,"name=$(params.image-name):latest,$(params.image-name):$(tasks.fetch-repository.results.commit)",push=true,compression=zstd,compression-level=22,oci-mediatypes=true
- name: CONTEXT - name: CONTEXT
value: $(params.path-to-image-context) value: $(params.path-to-image-context)
- name: DOCKERFILE - name: DOCKERFILE
value: $(params.path-to-dockerfile) value: $(params.path-to-dockerfile)
- name: BUILDER_IMAGE
value: "gcr.io/kaniko-project/executor:v1.12.1"
- name: EXTRA_ARGS - name: EXTRA_ARGS
value: value:
- "--target=$(params.target-name)" - "--opt"
- --cache=true - "target=$(params.target-name)"
- --cache-copy-layers - --import-cache
- --cache-repo=harbor.fizz.buzz/kanikocache/cache - "type=registry,ref=$(params.image-name):buildcache"
- --use-new-run # Should result in a speed-up - --export-cache
- --reproducible # To remove timestamps so layer caching works. - "type=registry,ref=$(params.image-name):buildcache,mode=max,compression=zstd,compression-level=22,rewrite-timestamp=true,image-manifest=true,oci-mediatypes=true"
- --snapshot-mode=redo - --opt
- --skip-unused-stages=true - build-arg:SOURCE_DATE_EPOCH=$(tasks.get-git-commit-time.results.unix-time)
- --registry-mirror=dockerhub.dockerhub.svc.cluster.local - name: BUILDKITD_TOML
value: |
debug = true
[registry."docker.io"]
mirrors = ["dockerhub.dockerhub.svc.cluster.local"]
[registry."dockerhub.dockerhub.svc.cluster.local"]
http = true
insecure = true
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
- name: dockerconfig - name: dockerconfig
workspace: docker-credentials workspace: docker-credentials
runAfter:
- fetch-repository
- name: run-test - name: run-test
taskSpec: taskSpec:
metadata: {} metadata: {}
@@ -132,6 +167,8 @@ spec:
env: env:
- name: CARGO_TARGET_DIR - name: CARGO_TARGET_DIR
value: /target value: /target
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -141,7 +178,7 @@ spec:
- build-image - build-image
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
finally: finally:
- name: report-success - name: report-success
when: when:
@@ -228,6 +265,9 @@ spec:
workingDir: "$(workspaces.source.path)" workingDir: "$(workspaces.source.path)"
command: [cargo, cache, --autoclean] command: [cargo, cache, --autoclean]
args: [] args: []
env:
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -235,7 +275,7 @@ spec:
workspace: cargo-cache workspace: cargo-cache
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
workspaces: workspaces:
- name: git-source - name: git-source
- name: docker-credentials - name: docker-credentials
@@ -244,7 +284,7 @@ spec:
- name: git-source - name: git-source
volumeClaimTemplate: volumeClaimTemplate:
spec: spec:
storageClassName: "nfs-client" storageClassName: "local-path"
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources:
@@ -265,4 +305,4 @@ spec:
- name: path-to-image-context - name: path-to-image-context
value: docker/organic_test/ value: docker/organic_test/
- name: path-to-dockerfile - name: path-to-dockerfile
value: docker/organic_test/Dockerfile value: docker/organic_test/

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"
@@ -50,18 +52,6 @@ spec:
- name: TARGET_URL - name: TARGET_URL
value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)" value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)"
- name: fetch-repository - name: fetch-repository
taskRef:
resolver: git
params:
- name: url
value: https://code.fizz.buzz/mirror/catalog.git # mirror of https://github.com/tektoncd/catalog.git
- name: revision
value: df36b3853a5657fd883015cdbf07ad6466918acf
- name: pathInRepo
value: task/git-clone/0.9/git-clone.yaml
workspaces:
- name: output
workspace: git-source
params: params:
- name: url - name: url
value: $(params.REPO_URL) value: $(params.REPO_URL)
@@ -69,41 +59,86 @@ spec:
value: $(params.PULL_BASE_SHA) value: $(params.PULL_BASE_SHA)
- name: deleteExisting - name: deleteExisting
value: "true" value: "true"
taskRef:
params:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: "dda7b690195b43e8b9859d1caf5dcbf48588ade1"
- name: pathInRepo
value: task/git-clone/0.1/git-clone.yaml
resolver: git
workspaces:
- name: output
workspace: git-source
- name: get-git-commit-time
taskSpec:
metadata: {}
stepTemplate:
image: alpine:3.20
computeResources:
requests:
cpu: 10m
memory: 600Mi
workingDir: "$(workspaces.repo.path)"
results:
- name: unix-time
description: The time of the git commit in unix timestamp format.
steps:
- image: alpine/git:v2.34.2
name: detect-tag-step
script: |
#!/usr/bin/env sh
set -euo pipefail
echo -n "$(git log -1 --pretty=%ct)" | tee $(results.unix-time.path)
workspaces:
- name: repo
workspace: git-source
runAfter:
- fetch-repository
- name: build-image - name: build-image
taskRef: taskRef:
resolver: git resolver: git
params: params:
- name: url - name: url
value: https://code.fizz.buzz/mirror/catalog.git # mirror of https://github.com/tektoncd/catalog.git value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision - name: revision
value: df36b3853a5657fd883015cdbf07ad6466918acf value: dda7b690195b43e8b9859d1caf5dcbf48588ade1
- name: pathInRepo - name: pathInRepo
value: task/kaniko/0.6/kaniko.yaml value: task/buildkit-rootless-daemonless/0.1/buildkit-rootless-daemonless.yaml
params: params:
- name: IMAGE - name: OUTPUT
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: >-
type=image,"name=$(params.image-name):latest,$(params.image-name):$(tasks.fetch-repository.results.commit)",push=true,compression=zstd,compression-level=22,oci-mediatypes=true
- name: CONTEXT - name: CONTEXT
value: $(params.path-to-image-context) value: $(params.path-to-image-context)
- name: DOCKERFILE - name: DOCKERFILE
value: $(params.path-to-dockerfile) value: $(params.path-to-dockerfile)
- name: BUILDER_IMAGE
value: "gcr.io/kaniko-project/executor:v1.12.1"
- name: EXTRA_ARGS - name: EXTRA_ARGS
value: value:
- "--target=$(params.target-name)" - "--opt"
- --cache=true - "target=$(params.target-name)"
- --cache-copy-layers - --import-cache
- --cache-repo=harbor.fizz.buzz/kanikocache/cache - "type=registry,ref=$(params.image-name):buildcache"
- --use-new-run # Should result in a speed-up - --export-cache
- --reproducible # To remove timestamps so layer caching works. - "type=registry,ref=$(params.image-name):buildcache,mode=max,compression=zstd,compression-level=22,rewrite-timestamp=true,image-manifest=true,oci-mediatypes=true"
- --snapshot-mode=redo - --opt
- --skip-unused-stages=true - build-arg:SOURCE_DATE_EPOCH=$(tasks.get-git-commit-time.results.unix-time)
- --registry-mirror=dockerhub.dockerhub.svc.cluster.local - name: BUILDKITD_TOML
value: |
debug = true
[registry."docker.io"]
mirrors = ["dockerhub.dockerhub.svc.cluster.local"]
[registry."dockerhub.dockerhub.svc.cluster.local"]
http = true
insecure = true
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
- name: dockerconfig - name: dockerconfig
workspace: docker-credentials workspace: docker-credentials
runAfter:
- fetch-repository
- name: run-cargo-fmt - name: run-cargo-fmt
taskSpec: taskSpec:
metadata: {} metadata: {}
@@ -134,6 +169,8 @@ spec:
env: env:
- name: CARGO_TARGET_DIR - name: CARGO_TARGET_DIR
value: /target value: /target
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -143,7 +180,7 @@ spec:
- build-image - build-image
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
- name: commit-changes - name: commit-changes
taskRef: taskRef:
resolver: git resolver: git
@@ -261,6 +298,9 @@ spec:
workingDir: "$(workspaces.source.path)" workingDir: "$(workspaces.source.path)"
command: [cargo, cache, --autoclean] command: [cargo, cache, --autoclean]
args: [] args: []
env:
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -268,7 +308,7 @@ spec:
workspace: cargo-cache workspace: cargo-cache
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
workspaces: workspaces:
- name: git-source - name: git-source
- name: docker-credentials - name: docker-credentials
@@ -277,7 +317,7 @@ spec:
- name: git-source - name: git-source
volumeClaimTemplate: volumeClaimTemplate:
spec: spec:
storageClassName: "nfs-client" storageClassName: "local-path"
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources:
@@ -298,4 +338,4 @@ spec:
- name: path-to-image-context - name: path-to-image-context
value: docker/organic_development/ value: docker/organic_development/
- name: path-to-dockerfile - name: path-to-dockerfile
value: docker/organic_development/Dockerfile value: docker/organic_development/

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
@@ -50,18 +52,6 @@ spec:
- name: TARGET_URL - name: TARGET_URL
value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)" value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)"
- name: fetch-repository - name: fetch-repository
taskRef:
resolver: git
params:
- name: url
value: https://code.fizz.buzz/mirror/catalog.git # mirror of https://github.com/tektoncd/catalog.git
- name: revision
value: df36b3853a5657fd883015cdbf07ad6466918acf
- name: pathInRepo
value: task/git-clone/0.9/git-clone.yaml
workspaces:
- name: output
workspace: git-source
params: params:
- name: url - name: url
value: $(params.REPO_URL) value: $(params.REPO_URL)
@@ -69,41 +59,86 @@ spec:
value: $(params.PULL_BASE_SHA) value: $(params.PULL_BASE_SHA)
- name: deleteExisting - name: deleteExisting
value: "true" value: "true"
taskRef:
params:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: "dda7b690195b43e8b9859d1caf5dcbf48588ade1"
- name: pathInRepo
value: task/git-clone/0.1/git-clone.yaml
resolver: git
workspaces:
- name: output
workspace: git-source
- name: get-git-commit-time
taskSpec:
metadata: {}
stepTemplate:
image: alpine:3.20
computeResources:
requests:
cpu: 10m
memory: 600Mi
workingDir: "$(workspaces.repo.path)"
results:
- name: unix-time
description: The time of the git commit in unix timestamp format.
steps:
- image: alpine/git:v2.34.2
name: detect-tag-step
script: |
#!/usr/bin/env sh
set -euo pipefail
echo -n "$(git log -1 --pretty=%ct)" | tee $(results.unix-time.path)
workspaces:
- name: repo
workspace: git-source
runAfter:
- fetch-repository
- name: build-image - name: build-image
taskRef: taskRef:
resolver: git resolver: git
params: params:
- name: url - name: url
value: https://code.fizz.buzz/mirror/catalog.git # mirror of https://github.com/tektoncd/catalog.git value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision - name: revision
value: df36b3853a5657fd883015cdbf07ad6466918acf value: dda7b690195b43e8b9859d1caf5dcbf48588ade1
- name: pathInRepo - name: pathInRepo
value: task/kaniko/0.6/kaniko.yaml value: task/buildkit-rootless-daemonless/0.1/buildkit-rootless-daemonless.yaml
params: params:
- name: IMAGE - name: OUTPUT
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: >-
type=image,"name=$(params.image-name):latest,$(params.image-name):$(tasks.fetch-repository.results.commit)",push=true,compression=zstd,compression-level=22,oci-mediatypes=true
- name: CONTEXT - name: CONTEXT
value: $(params.path-to-image-context) value: $(params.path-to-image-context)
- name: DOCKERFILE - name: DOCKERFILE
value: $(params.path-to-dockerfile) value: $(params.path-to-dockerfile)
- name: BUILDER_IMAGE
value: "gcr.io/kaniko-project/executor:v1.12.1"
- name: EXTRA_ARGS - name: EXTRA_ARGS
value: value:
- "--target=$(params.target-name)" - "--opt"
- --cache=true - "target=$(params.target-name)"
- --cache-copy-layers - --import-cache
- --cache-repo=harbor.fizz.buzz/kanikocache/cache - "type=registry,ref=$(params.image-name):buildcache"
- --use-new-run # Should result in a speed-up - --export-cache
- --reproducible # To remove timestamps so layer caching works. - "type=registry,ref=$(params.image-name):buildcache,mode=max,compression=zstd,compression-level=22,rewrite-timestamp=true,image-manifest=true,oci-mediatypes=true"
- --snapshot-mode=redo - --opt
- --skip-unused-stages=true - build-arg:SOURCE_DATE_EPOCH=$(tasks.get-git-commit-time.results.unix-time)
- --registry-mirror=dockerhub.dockerhub.svc.cluster.local - name: BUILDKITD_TOML
value: |
debug = true
[registry."docker.io"]
mirrors = ["dockerhub.dockerhub.svc.cluster.local"]
[registry."dockerhub.dockerhub.svc.cluster.local"]
http = true
insecure = true
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
- name: dockerconfig - name: dockerconfig
workspace: docker-credentials workspace: docker-credentials
runAfter:
- fetch-repository
- name: run-cargo-clippy - name: run-cargo-clippy
taskSpec: taskSpec:
metadata: {} metadata: {}
@@ -144,6 +179,8 @@ spec:
env: env:
- name: CARGO_TARGET_DIR - name: CARGO_TARGET_DIR
value: /target value: /target
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -153,7 +190,7 @@ spec:
- build-image - build-image
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
finally: finally:
- name: report-success - name: report-success
when: when:
@@ -240,6 +277,9 @@ spec:
workingDir: "$(workspaces.source.path)" workingDir: "$(workspaces.source.path)"
command: [cargo, cache, --autoclean] command: [cargo, cache, --autoclean]
args: [] args: []
env:
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -247,7 +287,7 @@ spec:
workspace: cargo-cache workspace: cargo-cache
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
workspaces: workspaces:
- name: git-source - name: git-source
- name: docker-credentials - name: docker-credentials
@@ -256,7 +296,7 @@ spec:
- name: git-source - name: git-source
volumeClaimTemplate: volumeClaimTemplate:
spec: spec:
storageClassName: "nfs-client" storageClassName: "local-path"
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources:
@@ -277,4 +317,4 @@ spec:
- name: path-to-image-context - name: path-to-image-context
value: docker/organic_development/ value: docker/organic_development/
- name: path-to-dockerfile - name: path-to-dockerfile
value: docker/organic_development/Dockerfile value: docker/organic_development/

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"
@@ -50,18 +52,6 @@ spec:
- name: TARGET_URL - name: TARGET_URL
value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)" value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)"
- name: fetch-repository - name: fetch-repository
taskRef:
resolver: git
params:
- name: url
value: https://code.fizz.buzz/mirror/catalog.git # mirror of https://github.com/tektoncd/catalog.git
- name: revision
value: df36b3853a5657fd883015cdbf07ad6466918acf
- name: pathInRepo
value: task/git-clone/0.9/git-clone.yaml
workspaces:
- name: output
workspace: git-source
params: params:
- name: url - name: url
value: $(params.REPO_URL) value: $(params.REPO_URL)
@@ -69,41 +59,86 @@ spec:
value: $(params.PULL_BASE_SHA) value: $(params.PULL_BASE_SHA)
- name: deleteExisting - name: deleteExisting
value: "true" value: "true"
taskRef:
params:
- name: url
value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision
value: "dda7b690195b43e8b9859d1caf5dcbf48588ade1"
- name: pathInRepo
value: task/git-clone/0.1/git-clone.yaml
resolver: git
workspaces:
- name: output
workspace: git-source
- name: get-git-commit-time
taskSpec:
metadata: {}
stepTemplate:
image: alpine:3.20
computeResources:
requests:
cpu: 10m
memory: 600Mi
workingDir: "$(workspaces.repo.path)"
results:
- name: unix-time
description: The time of the git commit in unix timestamp format.
steps:
- image: alpine/git:v2.34.2
name: detect-tag-step
script: |
#!/usr/bin/env sh
set -euo pipefail
echo -n "$(git log -1 --pretty=%ct)" | tee $(results.unix-time.path)
workspaces:
- name: repo
workspace: git-source
runAfter:
- fetch-repository
- name: build-image - name: build-image
taskRef: taskRef:
resolver: git resolver: git
params: params:
- name: url - name: url
value: https://code.fizz.buzz/mirror/catalog.git # mirror of https://github.com/tektoncd/catalog.git value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git
- name: revision - name: revision
value: df36b3853a5657fd883015cdbf07ad6466918acf value: dda7b690195b43e8b9859d1caf5dcbf48588ade1
- name: pathInRepo - name: pathInRepo
value: task/kaniko/0.6/kaniko.yaml value: task/buildkit-rootless-daemonless/0.1/buildkit-rootless-daemonless.yaml
params: params:
- name: IMAGE - name: OUTPUT
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: >-
type=image,"name=$(params.image-name):latest,$(params.image-name):$(tasks.fetch-repository.results.commit)",push=true,compression=zstd,compression-level=22,oci-mediatypes=true
- name: CONTEXT - name: CONTEXT
value: $(params.path-to-image-context) value: $(params.path-to-image-context)
- name: DOCKERFILE - name: DOCKERFILE
value: $(params.path-to-dockerfile) value: $(params.path-to-dockerfile)
- name: BUILDER_IMAGE
value: "gcr.io/kaniko-project/executor:v1.12.1"
- name: EXTRA_ARGS - name: EXTRA_ARGS
value: value:
- "--target=$(params.target-name)" - "--opt"
- --cache=true - "target=$(params.target-name)"
- --cache-copy-layers - --import-cache
- --cache-repo=harbor.fizz.buzz/kanikocache/cache - "type=registry,ref=$(params.image-name):buildcache"
- --use-new-run # Should result in a speed-up - --export-cache
- --reproducible # To remove timestamps so layer caching works. - "type=registry,ref=$(params.image-name):buildcache,mode=max,compression=zstd,compression-level=22,rewrite-timestamp=true,image-manifest=true,oci-mediatypes=true"
- --snapshot-mode=redo - --opt
- --skip-unused-stages=true - build-arg:SOURCE_DATE_EPOCH=$(tasks.get-git-commit-time.results.unix-time)
- --registry-mirror=dockerhub.dockerhub.svc.cluster.local - name: BUILDKITD_TOML
value: |
debug = true
[registry."docker.io"]
mirrors = ["dockerhub.dockerhub.svc.cluster.local"]
[registry."dockerhub.dockerhub.svc.cluster.local"]
http = true
insecure = true
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
- name: dockerconfig - name: dockerconfig
workspace: docker-credentials workspace: docker-credentials
runAfter:
- fetch-repository
- name: run-cargo-test - name: run-cargo-test
taskSpec: taskSpec:
metadata: {} metadata: {}
@@ -143,6 +178,8 @@ spec:
env: env:
- name: CARGO_TARGET_DIR - name: CARGO_TARGET_DIR
value: /target value: /target
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -152,7 +189,7 @@ spec:
- build-image - build-image
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
finally: finally:
- name: report-success - name: report-success
when: when:
@@ -239,6 +276,9 @@ spec:
workingDir: "$(workspaces.source.path)" workingDir: "$(workspaces.source.path)"
command: [cargo, cache, --autoclean] command: [cargo, cache, --autoclean]
args: [] args: []
env:
- name: RUSTUP_PERMIT_COPY_RENAME
value: "true"
workspaces: workspaces:
- name: source - name: source
workspace: git-source workspace: git-source
@@ -246,7 +286,7 @@ spec:
workspace: cargo-cache workspace: cargo-cache
params: params:
- name: docker-image - name: docker-image
value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" value: "$(tasks.build-image.results.IMAGE_URL[1])"
workspaces: workspaces:
- name: git-source - name: git-source
- name: docker-credentials - name: docker-credentials
@@ -255,7 +295,7 @@ spec:
- name: git-source - name: git-source
volumeClaimTemplate: volumeClaimTemplate:
spec: spec:
storageClassName: "nfs-client" storageClassName: "local-path"
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
resources: resources:
@@ -276,4 +316,4 @@ spec:
- name: path-to-image-context - name: path-to-image-context
value: docker/organic_test/ value: docker/organic_test/
- name: path-to-dockerfile - name: path-to-dockerfile
value: docker/organic_test/Dockerfile value: docker/organic_test/

View File

@@ -1,31 +1,31 @@
version = "0.0.1" version = "0.0.1"
[[push]] # [[push]]
name = "rust-test" # name = "rust-test"
source = "pipeline-rust-test.yaml" # source = "pipeline-rust-test.yaml"
clone_uri = "git@code.fizz.buzz:talexander/organic.git" # clone_uri = "git@code.fizz.buzz:talexander/organic.git"
skip_branches = [ "^v[0-9]+\\.[0-9]+\\.[0-9]+$" ] # skip_branches = [ "^v[0-9]+\\.[0-9]+\\.[0-9]+$" ]
[[push]] [[push]]
name = "foreign-document-test" name = "foreign-document-test"
source = "pipeline-foreign-document-test.yaml" source = "pipeline-foreign-document-test.yaml"
clone_uri = "git@code.fizz.buzz:talexander/organic.git" clone_uri = "git@code.fizz.buzz:talexander/organic.git"
branches = [ "^main$", "^master$" ] branches = [ "^main$", "^master$", "^no_add$" ]
[[push]] # [[push]]
name = "clippy" # name = "clippy"
source = "pipeline-rust-clippy.yaml" # source = "pipeline-rust-clippy.yaml"
clone_uri = "git@code.fizz.buzz:talexander/organic.git" # clone_uri = "git@code.fizz.buzz:talexander/organic.git"
skip_branches = [ "^v[0-9]+\\.[0-9]+\\.[0-9]+$" ] # skip_branches = [ "^v[0-9]+\\.[0-9]+\\.[0-9]+$" ]
[[push]] # [[push]]
name = "format" # name = "format"
source = "pipeline-format.yaml" # source = "pipeline-format.yaml"
clone_uri = "git@code.fizz.buzz:talexander/organic.git" # clone_uri = "git@code.fizz.buzz:talexander/organic.git"
skip_branches = [ "^v[0-9]+\\.[0-9]+\\.[0-9]+$" ] # skip_branches = [ "^v[0-9]+\\.[0-9]+\\.[0-9]+$" ]
[[push]] # [[push]]
name = "build" # name = "build"
source = "pipeline-build-hash.yaml" # source = "pipeline-build-hash.yaml"
clone_uri = "git@code.fizz.buzz:talexander/organic.git" # clone_uri = "git@code.fizz.buzz:talexander/organic.git"
branches = [ "^main$", "^master$" ] # branches = [ "^main$", "^master$" ]

1446
Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,4 @@
# cargo-features = ["profile-rustflags"] # cargo-features = ["profile-rustflags"]
cargo-features = ["codegen-backend"]
[package] [package]
name = "organic" name = "organic"
@@ -104,9 +103,5 @@ inherits = "release"
lto = true lto = true
strip = true strip = true
[profile.dev]
codegen-backend = "cranelift"
[profile.dev.package."*"] [profile.dev.package."*"]
codegen-backend = "llvm"
opt-level = 3 opt-level = 3

View File

@@ -26,7 +26,7 @@ fn main() {
dir_entry.file_type().is_file() dir_entry.file_type().is_file()
&& Path::new(dir_entry.file_name()) && Path::new(dir_entry.file_name())
.extension() .extension()
.map(|ext| ext.to_ascii_lowercase() == "org") .map(|ext| ext.eq_ignore_ascii_case("org"))
.unwrap_or(false) .unwrap_or(false)
} }
Err(_) => true, Err(_) => true,

View File

@@ -1,7 +1,10 @@
FROM rustlang/rust:nightly-alpine3.20 AS builder # syntax=docker/dockerfile:1
ARG ALPINE_VERSION="3.20"
FROM rustlang/rust:nightly-alpine$ALPINE_VERSION AS builder
RUN apk add --no-cache musl-dev RUN apk add --no-cache musl-dev
RUN cargo install --locked --no-default-features --features ci-autoclean cargo-cache RUN --mount=type=tmpfs,target=/tmp --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked cargo install --locked --no-default-features --features ci-autoclean cargo-cache
RUN rustup component add rustc-codegen-cranelift RUN rustup component add rustc-codegen-cranelift
FROM builder AS format FROM builder AS format

View File

@@ -1,3 +1,6 @@
# syntax=docker/dockerfile:1
ARG ALPINE_VERSION="3.20"
# ARG EMACS_REPO=https://git.savannah.gnu.org/git/emacs.git # ARG EMACS_REPO=https://git.savannah.gnu.org/git/emacs.git
ARG EMACS_REPO=https://code.fizz.buzz/mirror/emacs.git ARG EMACS_REPO=https://code.fizz.buzz/mirror/emacs.git
@@ -9,42 +12,56 @@ ARG ORG_MODE_REPO=https://code.fizz.buzz/mirror/org-mode.git
ARG ORG_VERSION=abf5156096c06ee5aa05795c3dc5a065f76ada97 ARG ORG_VERSION=abf5156096c06ee5aa05795c3dc5a065f76ada97
FROM alpine:3.20 AS build FROM alpine:$ALPINE_VERSION AS build
RUN apk add --no-cache build-base musl-dev git autoconf make texinfo gnutls-dev ncurses-dev gawk libgccjit-dev RUN apk add --no-cache build-base musl-dev git autoconf make texinfo gnutls-dev ncurses-dev gawk libgccjit-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
RUN <<EOF
set -euo pipefail
IFS=$'\n\t'
mkdir -p /root/emacs
git -C /root/emacs init --initial-branch=main
git -C /root/emacs remote add origin $EMACS_REPO
git -C /root/emacs fetch origin $EMACS_VERSION
git -C /root/emacs checkout FETCH_HEAD
EOF
#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
ARG ORG_VERSION ARG ORG_VERSION
ARG ORG_MODE_REPO ARG ORG_MODE_REPO
COPY --from=build-emacs /root/dist/ / COPY --link --from=build-emacs /root/dist/ /
RUN mkdir /root/dist RUN mkdir /root/dist
# Savannah does not allow fetching specific revisions, so we're going to have to put unnecessary load on their server by cloning main and then checking out the revision we want. # Savannah does not allow fetching specific revisions, so we're going to have to put unnecessary load on their server by cloning main and then checking out the revision we want.
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-alpine3.20 AS tester FROM rustlang/rust:nightly-alpine$ALPINE_VERSION AS tester
ENV LANG=en_US.UTF-8 ENV LANG=en_US.UTF-8
RUN apk add --no-cache musl-dev ncurses gnutls libgccjit RUN apk add --no-cache musl-dev ncurses gnutls libgccjit
RUN cargo install --locked --no-default-features --features ci-autoclean cargo-cache RUN --mount=type=tmpfs,target=/tmp --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked cargo install --locked --no-default-features --features ci-autoclean cargo-cache
RUN rustup component add rustc-codegen-cranelift RUN rustup component add rustc-codegen-cranelift
COPY --from=build-emacs /root/dist/ / COPY --link --from=build-emacs /root/dist/ /
COPY --from=build-org-mode /root/dist/ / COPY --link --from=build-org-mode /root/dist/ /
ENTRYPOINT ["cargo", "test"] ENTRYPOINT ["cargo", "test"]
@@ -115,12 +132,14 @@ 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
COPY --from=foreign-document-gather /foreign_documents/howardabrams /foreign_documents/howardabrams mkdir /foreign_documents
COPY --from=foreign-document-gather /foreign_documents/doomemacs /foreign_documents/doomemacs EOF
COPY --from=foreign-document-gather /foreign_documents/worg /foreign_documents/worg COPY --link --from=foreign-document-gather /foreign_documents/howardabrams /foreign_documents/howardabrams
COPY --from=foreign-document-gather /foreign_documents/literate_build_emacs /foreign_documents/literate_build_emacs COPY --link --from=foreign-document-gather /foreign_documents/doomemacs /foreign_documents/doomemacs
COPY --from=build-org-mode /root/org-mode /foreign_documents/org-mode COPY --link --from=foreign-document-gather /foreign_documents/worg /foreign_documents/worg
COPY --from=build-emacs /root/emacs /foreign_documents/emacs COPY --link --from=foreign-document-gather /foreign_documents/literate_build_emacs /foreign_documents/literate_build_emacs
COPY --link --from=build-org-mode /root/org-mode /foreign_documents/org-mode
COPY --link --from=build-emacs /root/emacs /foreign_documents/emacs
ENTRYPOINT ["cargo", "run", "--bin", "foreign_document_test", "--features", "compare,foreign_document_test", "--profile", "release-lto"] ENTRYPOINT ["cargo", "run", "--bin", "foreign_document_test", "--features", "compare,foreign_document_test", "--profile", "release-lto"]

48
flake.lock generated Normal file
View File

@@ -0,0 +1,48 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1780749050,
"narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a799d3e3886da994fa307f817a6bc705ae538eeb",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1781407245,
"narHash": "sha256-VzJq4MmD0uyNDAceudSe1hHqcQMe9Tau0U4S+5iRGh0=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "d5f483210eb016d66102eef22baa128b3b3233fc",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

162
flake.nix Normal file
View File

@@ -0,0 +1,162 @@
{
description = "Organic Org parser";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs = {
nixpkgs.follows = "nixpkgs";
};
};
};
outputs =
{
self,
nixpkgs,
rust-overlay,
}:
let
forAllSystems =
func:
builtins.listToAttrs (
map (system: {
name = system;
value = func system;
}) nixpkgs.lib.systems.flakeExposed
);
in
{
devShells = forAllSystems (
system:
let
overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs {
inherit system overlays;
};
rustToolchain = (pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml).override {
targets = [ "wasm32-unknown-unknown" ];
};
in
{
default = pkgs.mkShell {
nativeBuildInputs = [
rustToolchain
];
buildInputs = with pkgs; [
wasm-bindgen-cli
];
};
}
);
packages = forAllSystems (
system:
let
overlays = [ (import rust-overlay) ];
pkgs = import nixpkgs {
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 =
{
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"; };
}
);
};
};
}

82
nix/package.nix Normal file
View File

@@ -0,0 +1,82 @@
{
hello,
lib,
pkgs,
rust-overlay,
targetBins ? [ ],
features ? [ ],
cargoBuildTarget ? null,
buildType ? null,
buildLib ? false,
}:
let
cargoToml = (lib.importTOML ../Cargo.toml);
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;
}
);
rustPlatform =
if cargoBuildTarget != null then
baseRustPlatform.overrideScope (
final: prev: {
cargoBuildHook = prev.cargoBuildHook.overrideDerivation (_: {
rustcTargetSpec = cargoBuildTarget;
});
cargoInstallHook = hello;
}
)
else
baseRustPlatform;
in
rustPlatform;
in
(rustPlatformFor pkgs).buildRustPackage (
# rustPlatform.buildRustPackage (
{
pname = "organic";
version = cargoToml.package.version;
src = lib.cleanSource ../.;
cargoLock.lockFile = ../Cargo.lock;
cargoBuildFlags = builtins.concatLists [
(builtins.concatMap (targetBin: [
"--bin"
targetBin
]) targetBins)
(if buildLib then [ "--lib" ] else [ ])
(
if features != [ ] then
[
"--features"
(builtins.concatStringsSep " " features)
]
else
[ ]
)
];
}
// (
if buildType != null then
{
buildType = buildType;
}
else
{ }
)
)

View File

@@ -0,0 +1 @@
[[file:simple.org::2]]

View File

@@ -0,0 +1 @@
[[/ssh:admin@test.example:important/file.pdf]]

4
rust-toolchain.toml Normal file
View File

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