Merge branch 'buildkit'
This commit is contained in:
commit
1422b00208
@ -44,6 +44,31 @@ spec:
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
echo -n "$(date +%s)" | tee $(results.unix-time.path)
|
echo -n "$(date +%s)" | tee $(results.unix-time.path)
|
||||||
|
- 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: report-pending
|
- name: report-pending
|
||||||
taskRef:
|
taskRef:
|
||||||
resolver: git
|
resolver: git
|
||||||
@ -56,9 +81,6 @@ spec:
|
|||||||
value: task/gitea-set-status/0.1/gitea-set-status.yaml
|
value: task/gitea-set-status/0.1/gitea-set-status.yaml
|
||||||
runAfter:
|
runAfter:
|
||||||
- fetch-repository
|
- fetch-repository
|
||||||
- fetch-repository-private
|
|
||||||
- fetch-repository-explorer
|
|
||||||
- fetch-repository-organic
|
|
||||||
params:
|
params:
|
||||||
- name: CONTEXT
|
- name: CONTEXT
|
||||||
value: "$(params.JOB_NAME)"
|
value: "$(params.JOB_NAME)"
|
||||||
@ -94,218 +116,47 @@ spec:
|
|||||||
value: $(params.PULL_BASE_SHA)
|
value: $(params.PULL_BASE_SHA)
|
||||||
- name: deleteExisting
|
- name: deleteExisting
|
||||||
value: "true"
|
value: "true"
|
||||||
- name: fetch-repository-private
|
|
||||||
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-private
|
|
||||||
params:
|
|
||||||
- name: url
|
|
||||||
value: git@code.fizz.buzz:talexander/homepage_private.git
|
|
||||||
- name: revision
|
|
||||||
value: main
|
|
||||||
- name: deleteExisting
|
|
||||||
value: "true"
|
|
||||||
- name: fetch-repository-explorer
|
|
||||||
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-explorer
|
|
||||||
params:
|
|
||||||
- name: url
|
|
||||||
value: git@code.fizz.buzz:talexander/organic_ast_explorer.git
|
|
||||||
- name: revision
|
|
||||||
value: main
|
|
||||||
- name: deleteExisting
|
|
||||||
value: "true"
|
|
||||||
- name: fetch-repository-organic
|
|
||||||
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-organic
|
|
||||||
params:
|
|
||||||
- name: url
|
|
||||||
value: git@code.fizz.buzz:talexander/organic.git
|
|
||||||
- name: revision
|
|
||||||
value: main
|
|
||||||
- name: deleteExisting
|
|
||||||
value: "true"
|
|
||||||
- name: copy-private-files
|
|
||||||
taskSpec:
|
|
||||||
metadata: {}
|
|
||||||
stepTemplate:
|
|
||||||
image: alpine:3.20
|
|
||||||
computeResources:
|
|
||||||
requests:
|
|
||||||
cpu: 10m
|
|
||||||
memory: 600Mi
|
|
||||||
workingDir: "$(workspaces.source.path)"
|
|
||||||
steps:
|
|
||||||
- image: alpine:3.20
|
|
||||||
name: copy-private-files
|
|
||||||
script: |
|
|
||||||
#!/usr/bin/env sh
|
|
||||||
set -euo pipefail
|
|
||||||
cp -r "$(workspaces.source-private.path)/static/"* "$(workspaces.source.path)/static/"
|
|
||||||
workspaces:
|
|
||||||
- name: source
|
|
||||||
workspace: git-source
|
|
||||||
- name: source-private
|
|
||||||
workspace: git-source-private
|
|
||||||
runAfter:
|
|
||||||
- fetch-repository
|
|
||||||
- fetch-repository-private
|
|
||||||
- name: build-explorer-image
|
|
||||||
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/kaniko/0.6/kaniko.yaml
|
|
||||||
params:
|
|
||||||
- name: IMAGE
|
|
||||||
value: "harbor.fizz.buzz/private/homepage-build-organic:$(tasks.get-time.results.unix-time)"
|
|
||||||
- name: CONTEXT
|
|
||||||
value: .
|
|
||||||
- name: DOCKERFILE
|
|
||||||
value: docker/organic/Dockerfile
|
|
||||||
- name: BUILDER_IMAGE
|
|
||||||
value: "gcr.io/kaniko-project/executor:v1.12.1"
|
|
||||||
- name: EXTRA_ARGS
|
|
||||||
value:
|
|
||||||
- "--destination=harbor.fizz.buzz/private/homepage-build-organic" # Also write the :latest image
|
|
||||||
- "--target="
|
|
||||||
- --cache=true
|
|
||||||
- --cache-copy-layers
|
|
||||||
- --cache-repo=harbor.fizz.buzz/kanikocache/cache
|
|
||||||
- --use-new-run # Should result in a speed-up
|
|
||||||
- --reproducible # To remove timestamps so layer caching works.
|
|
||||||
- --snapshot-mode=redo
|
|
||||||
- --skip-unused-stages=true
|
|
||||||
- --registry-mirror=dockerhub.dockerhub.svc.cluster.local
|
|
||||||
workspaces:
|
|
||||||
- name: source
|
|
||||||
workspace: git-source
|
|
||||||
- name: dockerconfig
|
|
||||||
workspace: docker-credentials
|
|
||||||
runAfter:
|
|
||||||
- fetch-repository
|
|
||||||
- name: build-explorer-wasm
|
|
||||||
taskSpec:
|
|
||||||
metadata: {}
|
|
||||||
stepTemplate:
|
|
||||||
image: alpine:3.20
|
|
||||||
computeResources:
|
|
||||||
requests:
|
|
||||||
cpu: 10m
|
|
||||||
memory: 600Mi
|
|
||||||
workingDir: "$(workspaces.organic.path)"
|
|
||||||
steps:
|
|
||||||
- image: "$(params.IMAGE)"
|
|
||||||
name: build-explorer-wasm
|
|
||||||
params:
|
|
||||||
- name: IMAGE
|
|
||||||
value: "harbor.fizz.buzz/private/homepage-build-organic:$(tasks.get-time.results.unix-time)"
|
|
||||||
workspaces:
|
|
||||||
- name: organic
|
|
||||||
workspace: git-source-organic
|
|
||||||
runAfter:
|
|
||||||
- build-explorer-image
|
|
||||||
- name: copy-explorer-files
|
|
||||||
taskSpec:
|
|
||||||
metadata: {}
|
|
||||||
stepTemplate:
|
|
||||||
image: alpine:3.20
|
|
||||||
computeResources:
|
|
||||||
requests:
|
|
||||||
cpu: 10m
|
|
||||||
memory: 600Mi
|
|
||||||
workingDir: "$(workspaces.source-explorer.path)"
|
|
||||||
steps:
|
|
||||||
- image: node:lts-alpine3.20
|
|
||||||
name: copy-explorer-files
|
|
||||||
script: |
|
|
||||||
#!/usr/bin/env sh
|
|
||||||
set -euo pipefail
|
|
||||||
npm install
|
|
||||||
npm run release
|
|
||||||
mkdir -p "$(workspaces.source.path)/static/organic/ast_explorer/"
|
|
||||||
cp -r "$(workspaces.source-explorer.path)/dist/"* "$(workspaces.source.path)/static/organic/ast_explorer/"
|
|
||||||
workspaces:
|
|
||||||
- name: source
|
|
||||||
workspace: git-source
|
|
||||||
- name: source-explorer
|
|
||||||
workspace: git-source-explorer
|
|
||||||
- name: organic
|
|
||||||
workspace: git-source-organic
|
|
||||||
runAfter:
|
|
||||||
- build-explorer-wasm
|
|
||||||
- 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: 3411d0cd39a749464bbf70ba40e2ca83ee9e2d02
|
||||||
- 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.get-time.results.unix-time)"
|
value: >-
|
||||||
|
type=image,"name=$(params.image-name):latest,$(params.image-name):$(tasks.get-time.results.unix-time)",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
|
- --import-cache
|
||||||
- "--target=$(params.target-name)"
|
- "type=registry,ref=$(params.image-name):buildcache"
|
||||||
- --cache=true
|
- --export-cache
|
||||||
- --cache-copy-layers
|
- "type=registry,ref=$(params.image-name):buildcache,mode=max,compression=zstd,compression-level=22,rewrite-timestamp=true,image-manifest=true,oci-mediatypes=true"
|
||||||
- --cache-repo=harbor.fizz.buzz/kanikocache/cache
|
- --opt
|
||||||
- --use-new-run # Should result in a speed-up
|
- build-arg:SOURCE_DATE_EPOCH=$(tasks.get-git-commit-time.results.unix-time)
|
||||||
- --reproducible # To remove timestamps so layer caching works.
|
- name: BUILDKITD_TOML
|
||||||
- --snapshot-mode=redo
|
value: |
|
||||||
- --skip-unused-stages=true
|
debug = true
|
||||||
- --registry-mirror=dockerhub.dockerhub.svc.cluster.local
|
[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:
|
runAfter:
|
||||||
- copy-private-files
|
- fetch-repository
|
||||||
- copy-explorer-files
|
|
||||||
finally:
|
finally:
|
||||||
- name: report-success
|
- name: report-success
|
||||||
when:
|
when:
|
||||||
@ -379,36 +230,6 @@ spec:
|
|||||||
requests:
|
requests:
|
||||||
storage: 10Gi
|
storage: 10Gi
|
||||||
subPath: rust-source
|
subPath: rust-source
|
||||||
- name: git-source-private
|
|
||||||
volumeClaimTemplate:
|
|
||||||
spec:
|
|
||||||
storageClassName: "nfs-client"
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 10Gi
|
|
||||||
subPath: git-source
|
|
||||||
- name: git-source-explorer
|
|
||||||
volumeClaimTemplate:
|
|
||||||
spec:
|
|
||||||
storageClassName: "nfs-client"
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 10Gi
|
|
||||||
subPath: git-source
|
|
||||||
- name: git-source-organic
|
|
||||||
volumeClaimTemplate:
|
|
||||||
spec:
|
|
||||||
storageClassName: "nfs-client"
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 10Gi
|
|
||||||
subPath: git-source
|
|
||||||
- name: docker-credentials
|
- name: docker-credentials
|
||||||
secret:
|
secret:
|
||||||
secretName: harbor-plain
|
secretName: harbor-plain
|
||||||
@ -420,4 +241,4 @@ spec:
|
|||||||
- name: path-to-image-context
|
- name: path-to-image-context
|
||||||
value: .
|
value: .
|
||||||
- name: path-to-dockerfile
|
- name: path-to-dockerfile
|
||||||
value: docker/server/Dockerfile
|
value: docker/server
|
||||||
|
@ -24,7 +24,7 @@ spec:
|
|||||||
description: The path to the Dockerfile
|
description: The path to the Dockerfile
|
||||||
type: string
|
type: string
|
||||||
tasks:
|
tasks:
|
||||||
- name: get-time
|
- name: get-git-commit-time
|
||||||
taskSpec:
|
taskSpec:
|
||||||
metadata: {}
|
metadata: {}
|
||||||
stepTemplate:
|
stepTemplate:
|
||||||
@ -33,17 +33,22 @@ spec:
|
|||||||
requests:
|
requests:
|
||||||
cpu: 10m
|
cpu: 10m
|
||||||
memory: 600Mi
|
memory: 600Mi
|
||||||
workingDir: "/"
|
workingDir: "$(workspaces.repo.path)"
|
||||||
results:
|
results:
|
||||||
- name: unix-time
|
- name: unix-time
|
||||||
description: The current date in unix timestamp format.
|
description: The time of the git commit in unix timestamp format.
|
||||||
steps:
|
steps:
|
||||||
- image: alpine:3.20
|
- image: alpine/git:v2.34.2
|
||||||
name: get-time-step
|
name: detect-tag-step
|
||||||
script: |
|
script: |
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
echo -n "$(date +%s)" | tee $(results.unix-time.path)
|
echo -n "$(git log -1 --pretty=%ct)" | tee $(results.unix-time.path)
|
||||||
|
workspaces:
|
||||||
|
- name: repo
|
||||||
|
workspace: git-source
|
||||||
|
runAfter:
|
||||||
|
- fetch-repository
|
||||||
- name: detect-tag
|
- name: detect-tag
|
||||||
taskSpec:
|
taskSpec:
|
||||||
metadata: {}
|
metadata: {}
|
||||||
@ -88,9 +93,6 @@ spec:
|
|||||||
value: task/gitea-set-status/0.1/gitea-set-status.yaml
|
value: task/gitea-set-status/0.1/gitea-set-status.yaml
|
||||||
runAfter:
|
runAfter:
|
||||||
- fetch-repository
|
- fetch-repository
|
||||||
- fetch-repository-private
|
|
||||||
- fetch-repository-explorer
|
|
||||||
- fetch-repository-organic
|
|
||||||
params:
|
params:
|
||||||
- name: CONTEXT
|
- name: CONTEXT
|
||||||
value: "$(params.JOB_NAME)"
|
value: "$(params.JOB_NAME)"
|
||||||
@ -126,218 +128,47 @@ spec:
|
|||||||
value: $(params.PULL_BASE_SHA)
|
value: $(params.PULL_BASE_SHA)
|
||||||
- name: deleteExisting
|
- name: deleteExisting
|
||||||
value: "true"
|
value: "true"
|
||||||
- name: fetch-repository-private
|
|
||||||
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-private
|
|
||||||
params:
|
|
||||||
- name: url
|
|
||||||
value: git@code.fizz.buzz:talexander/homepage_private.git
|
|
||||||
- name: revision
|
|
||||||
value: main
|
|
||||||
- name: deleteExisting
|
|
||||||
value: "true"
|
|
||||||
- name: fetch-repository-explorer
|
|
||||||
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-explorer
|
|
||||||
params:
|
|
||||||
- name: url
|
|
||||||
value: git@code.fizz.buzz:talexander/organic_ast_explorer.git
|
|
||||||
- name: revision
|
|
||||||
value: main
|
|
||||||
- name: deleteExisting
|
|
||||||
value: "true"
|
|
||||||
- name: fetch-repository-organic
|
|
||||||
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-organic
|
|
||||||
params:
|
|
||||||
- name: url
|
|
||||||
value: git@code.fizz.buzz:talexander/organic.git
|
|
||||||
- name: revision
|
|
||||||
value: main
|
|
||||||
- name: deleteExisting
|
|
||||||
value: "true"
|
|
||||||
- name: copy-private-files
|
|
||||||
taskSpec:
|
|
||||||
metadata: {}
|
|
||||||
stepTemplate:
|
|
||||||
image: alpine:3.20
|
|
||||||
computeResources:
|
|
||||||
requests:
|
|
||||||
cpu: 10m
|
|
||||||
memory: 600Mi
|
|
||||||
workingDir: "$(workspaces.source.path)"
|
|
||||||
steps:
|
|
||||||
- image: alpine:3.20
|
|
||||||
name: copy-private-files
|
|
||||||
script: |
|
|
||||||
#!/usr/bin/env sh
|
|
||||||
set -euo pipefail
|
|
||||||
cp -r "$(workspaces.source-private.path)/static/"* "$(workspaces.source.path)/static/"
|
|
||||||
workspaces:
|
|
||||||
- name: source
|
|
||||||
workspace: git-source
|
|
||||||
- name: source-private
|
|
||||||
workspace: git-source-private
|
|
||||||
runAfter:
|
|
||||||
- fetch-repository
|
|
||||||
- fetch-repository-private
|
|
||||||
- name: build-explorer-image
|
|
||||||
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/kaniko/0.6/kaniko.yaml
|
|
||||||
params:
|
|
||||||
- name: IMAGE
|
|
||||||
value: "harbor.fizz.buzz/private/homepage-build-organic:$(tasks.get-time.results.unix-time)"
|
|
||||||
- name: CONTEXT
|
|
||||||
value: .
|
|
||||||
- name: DOCKERFILE
|
|
||||||
value: docker/organic/Dockerfile
|
|
||||||
- name: BUILDER_IMAGE
|
|
||||||
value: "gcr.io/kaniko-project/executor:v1.12.1"
|
|
||||||
- name: EXTRA_ARGS
|
|
||||||
value:
|
|
||||||
- "--destination=harbor.fizz.buzz/private/homepage-build-organic" # Also write the :latest image
|
|
||||||
- "--target="
|
|
||||||
- --cache=true
|
|
||||||
- --cache-copy-layers
|
|
||||||
- --cache-repo=harbor.fizz.buzz/kanikocache/cache
|
|
||||||
- --use-new-run # Should result in a speed-up
|
|
||||||
- --reproducible # To remove timestamps so layer caching works.
|
|
||||||
- --snapshot-mode=redo
|
|
||||||
- --skip-unused-stages=true
|
|
||||||
- --registry-mirror=dockerhub.dockerhub.svc.cluster.local
|
|
||||||
workspaces:
|
|
||||||
- name: source
|
|
||||||
workspace: git-source
|
|
||||||
- name: dockerconfig
|
|
||||||
workspace: docker-credentials
|
|
||||||
runAfter:
|
|
||||||
- fetch-repository
|
|
||||||
- name: build-explorer-wasm
|
|
||||||
taskSpec:
|
|
||||||
metadata: {}
|
|
||||||
stepTemplate:
|
|
||||||
image: alpine:3.20
|
|
||||||
computeResources:
|
|
||||||
requests:
|
|
||||||
cpu: 10m
|
|
||||||
memory: 600Mi
|
|
||||||
workingDir: "$(workspaces.organic.path)"
|
|
||||||
steps:
|
|
||||||
- image: "$(params.IMAGE)"
|
|
||||||
name: build-explorer-wasm
|
|
||||||
params:
|
|
||||||
- name: IMAGE
|
|
||||||
value: "harbor.fizz.buzz/private/homepage-build-organic:$(tasks.get-time.results.unix-time)"
|
|
||||||
workspaces:
|
|
||||||
- name: organic
|
|
||||||
workspace: git-source-organic
|
|
||||||
runAfter:
|
|
||||||
- build-explorer-image
|
|
||||||
- name: copy-explorer-files
|
|
||||||
taskSpec:
|
|
||||||
metadata: {}
|
|
||||||
stepTemplate:
|
|
||||||
image: alpine:3.20
|
|
||||||
computeResources:
|
|
||||||
requests:
|
|
||||||
cpu: 10m
|
|
||||||
memory: 600Mi
|
|
||||||
workingDir: "$(workspaces.source-explorer.path)"
|
|
||||||
steps:
|
|
||||||
- image: node:lts-alpine3.20
|
|
||||||
name: copy-explorer-files
|
|
||||||
script: |
|
|
||||||
#!/usr/bin/env sh
|
|
||||||
set -euo pipefail
|
|
||||||
npm install
|
|
||||||
npm run release
|
|
||||||
mkdir -p "$(workspaces.source.path)/static/organic/ast_explorer/"
|
|
||||||
cp -r "$(workspaces.source-explorer.path)/dist/"* "$(workspaces.source.path)/static/organic/ast_explorer/"
|
|
||||||
workspaces:
|
|
||||||
- name: source
|
|
||||||
workspace: git-source
|
|
||||||
- name: source-explorer
|
|
||||||
workspace: git-source-explorer
|
|
||||||
- name: organic
|
|
||||||
workspace: git-source-organic
|
|
||||||
runAfter:
|
|
||||||
- build-explorer-wasm
|
|
||||||
- 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: 3411d0cd39a749464bbf70ba40e2ca83ee9e2d02
|
||||||
- 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.detect-tag.results.tag)"
|
value: >-
|
||||||
|
type=image,"name=$(params.image-name):latest,$(params.image-name):$(tasks.detect-tag.results.tag)",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
|
- --import-cache
|
||||||
- "--target=$(params.target-name)"
|
- "type=registry,ref=$(params.image-name):buildcache"
|
||||||
- --cache=true
|
- --export-cache
|
||||||
- --cache-copy-layers
|
- "type=registry,ref=$(params.image-name):buildcache,mode=max,compression=zstd,compression-level=22,rewrite-timestamp=true,image-manifest=true,oci-mediatypes=true"
|
||||||
- --cache-repo=harbor.fizz.buzz/kanikocache/cache
|
- --opt
|
||||||
- --use-new-run # Should result in a speed-up
|
- build-arg:SOURCE_DATE_EPOCH=$(tasks.get-git-commit-time.results.unix-time)
|
||||||
- --reproducible # To remove timestamps so layer caching works.
|
- name: BUILDKITD_TOML
|
||||||
- --snapshot-mode=redo
|
value: |
|
||||||
- --skip-unused-stages=true
|
debug = true
|
||||||
- --registry-mirror=dockerhub.dockerhub.svc.cluster.local
|
[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:
|
runAfter:
|
||||||
- copy-private-files
|
- fetch-repository
|
||||||
- copy-explorer-files
|
|
||||||
finally:
|
finally:
|
||||||
- name: report-success
|
- name: report-success
|
||||||
when:
|
when:
|
||||||
@ -411,36 +242,6 @@ spec:
|
|||||||
requests:
|
requests:
|
||||||
storage: 10Gi
|
storage: 10Gi
|
||||||
subPath: rust-source
|
subPath: rust-source
|
||||||
- name: git-source-private
|
|
||||||
volumeClaimTemplate:
|
|
||||||
spec:
|
|
||||||
storageClassName: "nfs-client"
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 10Gi
|
|
||||||
subPath: git-source
|
|
||||||
- name: git-source-explorer
|
|
||||||
volumeClaimTemplate:
|
|
||||||
spec:
|
|
||||||
storageClassName: "nfs-client"
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 10Gi
|
|
||||||
subPath: git-source
|
|
||||||
- name: git-source-organic
|
|
||||||
volumeClaimTemplate:
|
|
||||||
spec:
|
|
||||||
storageClassName: "nfs-client"
|
|
||||||
accessModes:
|
|
||||||
- ReadWriteOnce
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
storage: 10Gi
|
|
||||||
subPath: git-source
|
|
||||||
- name: docker-credentials
|
- name: docker-credentials
|
||||||
secret:
|
secret:
|
||||||
secretName: harbor-plain
|
secretName: harbor-plain
|
||||||
@ -452,4 +253,4 @@ spec:
|
|||||||
- name: path-to-image-context
|
- name: path-to-image-context
|
||||||
value: .
|
value: .
|
||||||
- name: path-to-dockerfile
|
- name: path-to-dockerfile
|
||||||
value: docker/server/Dockerfile
|
value: docker/server
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
FROM rustlang/rust:nightly-alpine3.20
|
|
||||||
|
|
||||||
RUN apk add --no-cache musl-dev make bash
|
|
||||||
RUN rustup target add wasm32-unknown-unknown
|
|
||||||
RUN cargo install wasm-bindgen-cli
|
|
||||||
|
|
||||||
CMD ["make", "wasm"]
|
|
@ -1,52 +0,0 @@
|
|||||||
SHELL := bash
|
|
||||||
.ONESHELL:
|
|
||||||
.SHELLFLAGS := -eu -o pipefail -c
|
|
||||||
.DELETE_ON_ERROR:
|
|
||||||
MAKEFLAGS += --warn-undefined-variables
|
|
||||||
MAKEFLAGS += --no-builtin-rules
|
|
||||||
OS:=$(shell uname -s)
|
|
||||||
|
|
||||||
ifeq ($(origin .RECIPEPREFIX), undefined)
|
|
||||||
$(error This Make does not support .RECIPEPREFIX. Please use GNU Make 4.0 or later)
|
|
||||||
endif
|
|
||||||
.RECIPEPREFIX = >
|
|
||||||
|
|
||||||
IMAGE_NAME:=homepage-build-organic
|
|
||||||
# REMOTE_REPO:=harbor.fizz.buzz/private
|
|
||||||
TARGET :=
|
|
||||||
|
|
||||||
.PHONY: help
|
|
||||||
help:
|
|
||||||
> @grep -h "##" $(MAKEFILE_LIST) | grep -v grep | sed -E 's/^([^:]*): *## */\1: /'
|
|
||||||
|
|
||||||
.PHONY: build
|
|
||||||
build: ## Build the docker image.
|
|
||||||
> docker build --tag $(IMAGE_NAME) --target=$(TARGET) --file Dockerfile ../../
|
|
||||||
|
|
||||||
.PHONY: push
|
|
||||||
push: ## Push the docker image to a remote repository.
|
|
||||||
ifdef REMOTE_REPO
|
|
||||||
> docker tag $(IMAGE_NAME) $(REMOTE_REPO)/$(IMAGE_NAME)
|
|
||||||
> docker push $(REMOTE_REPO)/$(IMAGE_NAME)
|
|
||||||
else
|
|
||||||
> @echo "REMOTE_REPO not defined, not pushing to a remote repo."
|
|
||||||
endif
|
|
||||||
|
|
||||||
.PHONY: clean
|
|
||||||
clean:
|
|
||||||
> docker rmi $(IMAGE_NAME)
|
|
||||||
ifdef REMOTE_REPO
|
|
||||||
> docker rmi $(REMOTE_REPO)/$(IMAGE_NAME)
|
|
||||||
else
|
|
||||||
> @echo "REMOTE_REPO not defined, not removing from remote repo."
|
|
||||||
endif
|
|
||||||
|
|
||||||
.PHONY: run
|
|
||||||
run: build
|
|
||||||
run: ## Launch the docker image
|
|
||||||
> docker run --rm -i -t $(IMAGE_NAME)
|
|
||||||
|
|
||||||
.PHONY: shell
|
|
||||||
shell: ## Launch an interactive shell inside the docker image.
|
|
||||||
shell: build
|
|
||||||
> docker run --rm -i -t --entrypoint /bin/bash --mount type=tmpfs,destination=/tmp $(IMAGE_NAME)
|
|
@ -1,10 +1,62 @@
|
|||||||
FROM harbor.fizz.buzz/private/natter:latest AS builder
|
# syntax=docker/dockerfile:1
|
||||||
|
ARG ALPINE_VERSION="3.20"
|
||||||
|
|
||||||
COPY . /source
|
|
||||||
RUN ls /source/
|
|
||||||
RUN natter build --config /source/natter.toml
|
|
||||||
|
|
||||||
FROM alpine:3.20 AS server
|
|
||||||
|
FROM scratch AS private
|
||||||
|
ADD git@code.fizz.buzz:talexander/homepage_private.git /homepage_private
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FROM scratch AS explorer
|
||||||
|
ADD https://code.fizz.buzz/talexander/organic_ast_explorer.git /organic_ast_explorer
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FROM scratch AS organic
|
||||||
|
ADD git@code.fizz.buzz:talexander/organic.git /organic
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FROM rustlang/rust:nightly-alpine$ALPINE_VERSION AS organic-build
|
||||||
|
RUN apk add --no-cache musl-dev make bash
|
||||||
|
RUN rustup target add wasm32-unknown-unknown
|
||||||
|
RUN --mount=type=tmpfs,target=/tmp --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked cargo install wasm-bindgen-cli
|
||||||
|
COPY --link --from=organic /organic /organic
|
||||||
|
WORKDIR /organic
|
||||||
|
RUN --mount=type=tmpfs,target=/tmp --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked make wasm
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FROM node:lts-alpine$ALPINE_VERSION AS explorer-build
|
||||||
|
COPY --link --from=explorer /organic_ast_explorer /organic_ast_explorer
|
||||||
|
COPY --link --from=organic-build /organic /organic
|
||||||
|
WORKDIR /organic_ast_explorer
|
||||||
|
RUN --mount=type=tmpfs,target=/tmp --mount=type=cache,target=/npmcache,sharing=locked npm set cache /npmcache && npm install
|
||||||
|
RUN npm run release
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FROM rustlang/rust:nightly-alpine$ALPINE_VERSION AS natter-build
|
||||||
|
RUN apk add --no-cache musl-dev
|
||||||
|
ADD git@code.fizz.buzz:talexander/natter.git /natter
|
||||||
|
WORKDIR /natter
|
||||||
|
RUN --mount=type=tmpfs,target=/tmp --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked CARGO_TARGET_DIR=/target cargo build --profile release-lto
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FROM alpine:$ALPINE_VERSION AS natter
|
||||||
|
COPY --link --from=natter-build /target/release-lto/natter /usr/bin/
|
||||||
|
COPY --link . /source
|
||||||
|
COPY --link --from=private /homepage_private/static/* /source/static/
|
||||||
|
COPY --link --from=explorer-build /organic_ast_explorer/dist/* /source/static/organic/ast_explorer/
|
||||||
|
RUN --network=none --mount=type=tmpfs,target=/tmp natter build --config /source/natter.toml
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
FROM alpine:$ALPINE_VERSION AS server
|
||||||
|
|
||||||
RUN apk add --no-cache bash nginx
|
RUN apk add --no-cache bash nginx
|
||||||
RUN addgroup web && adduser -D -G web web && install -d -D -o web -g web -m 700 /srv/http/public
|
RUN addgroup web && adduser -D -G web web && install -d -D -o web -g web -m 700 /srv/http/public
|
||||||
@ -12,6 +64,6 @@ RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/
|
|||||||
|
|
||||||
COPY --chown=web:web docker/server/nginx.conf /srv/http
|
COPY --chown=web:web docker/server/nginx.conf /srv/http
|
||||||
COPY --chown=web:web docker/server/headers.include /srv/http
|
COPY --chown=web:web docker/server/headers.include /srv/http
|
||||||
COPY --from=builder --chown=web:web /source/output/ /srv/http/public/
|
COPY --from=natter --chown=web:web /source/output/ /srv/http/public/
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/sbin/nginx", "-c", "/srv/http/nginx.conf", "-e", "stderr", "-g", "daemon off;"]
|
ENTRYPOINT ["/usr/sbin/nginx", "-c", "/srv/http/nginx.conf", "-e", "stderr", "-g", "daemon off;"]
|
||||||
|
@ -21,7 +21,7 @@ help:
|
|||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
build: ## Build the docker image.
|
build: ## Build the docker image.
|
||||||
> docker build --tag $(IMAGE_NAME) --target=$(TARGET) --file Dockerfile ../../
|
> docker build --ssh default --tag $(IMAGE_NAME) --target=$(TARGET) --file Dockerfile ../../
|
||||||
|
|
||||||
.PHONY: push
|
.PHONY: push
|
||||||
push: ## Push the docker image to a remote repository.
|
push: ## Push the docker image to a remote repository.
|
||||||
|
@ -31,6 +31,9 @@ http {
|
|||||||
root /srv/http/public;
|
root /srv/http/public;
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
|
try_files $uri $uri/ =404;
|
||||||
|
autoindex on;
|
||||||
|
|
||||||
index index.html index.htm;
|
index index.html index.htm;
|
||||||
if (-d $request_filename) {
|
if (-d $request_filename) {
|
||||||
rewrite [^/]$ $http_x_forwarded_proto://$http_host$uri/ redirect;
|
rewrite [^/]$ $http_x_forwarded_proto://$http_host$uri/ redirect;
|
||||||
|
Loading…
Reference in New Issue
Block a user