apiVersion: tekton.dev/v1 kind: PipelineRun metadata: name: rust-test spec: timeouts: pipeline: "2h0m0s" tasks: "1h0m40s" finally: "0h30m0s" taskRunTemplate: serviceAccountName: build-bot pipelineSpec: params: - name: image-name description: The name for the built image type: string - name: target-name description: The dockerfile target to build type: string - name: path-to-image-context description: The path to the build context type: string - name: path-to-dockerfile description: The path to the Dockerfile type: string tasks: - name: report-pending 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/gitea-set-status/0.1/gitea-set-status.yaml params: - name: CONTEXT value: "$(params.JOB_NAME)" - name: REPO_FULL_NAME value: "$(params.REPO_OWNER)/$(params.REPO_NAME)" - name: GITEA_HOST_URL value: code.fizz.buzz - name: SHA value: "$(tasks.fetch-repository.results.commit)" - name: DESCRIPTION value: "Build $(params.JOB_NAME) has started" - name: STATE value: pending - name: TARGET_URL value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)" - 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: - name: url value: $(params.REPO_URL) - name: revision value: $(params.PULL_BASE_SHA) - name: deleteExisting value: "true" - 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 taskRef: resolver: git params: - name: url value: https://code.fizz.buzz/talexander/personal_tekton_catalog.git - name: revision value: 7ee31a185243ee6da13dcd26a592c585b64c80e5 - name: pathInRepo value: task/buildkit-rootless-daemonless/0.1/buildkit-rootless-daemonless.yaml params: - name: OUTPUT 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 value: $(params.path-to-image-context) - name: DOCKERFILE value: $(params.path-to-dockerfile) - name: EXTRA_ARGS value: - --import-cache - "type=registry,ref=$(params.image-name):buildcache" - --export-cache - "type=registry,ref=$(params.image-name):buildcache,mode=max,compression=zstd,compression-level=22,rewrite-timestamp=true,image-manifest=true,oci-mediatypes=true" - --opt - build-arg:SOURCE_DATE_EPOCH=$(tasks.get-git-commit-time.results.unix-time) - 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: - name: source workspace: git-source - name: dockerconfig workspace: docker-credentials runAfter: - fetch-repository - name: run-cargo-test taskSpec: metadata: {} params: - name: docker-image type: string description: Docker image to run. default: alpine:3.20 stepTemplate: image: alpine:3.20 computeResources: requests: cpu: 10m memory: 600Mi workingDir: /workspace/source workspaces: - name: source mountPath: /source - name: cargo-cache mountPath: /usr/local/cargo/registry optional: true steps: - name: run image: $(params.docker-image) workingDir: "$(workspaces.source.path)" command: [cargo, test, --no-fail-fast] args: [] env: - name: CARGO_TARGET_DIR value: /target workspaces: - name: source workspace: git-source - name: cargo-cache workspace: cargo-cache runAfter: - build-image params: - name: docker-image value: "$(tasks.build-image.results.IMAGE_URL[1])" finally: - name: report-success when: - input: "$(tasks.status)" operator: in values: ["Succeeded", "Completed"] 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/gitea-set-status/0.1/gitea-set-status.yaml params: - name: CONTEXT value: "$(params.JOB_NAME)" - name: REPO_FULL_NAME value: "$(params.REPO_OWNER)/$(params.REPO_NAME)" - name: GITEA_HOST_URL value: code.fizz.buzz - name: SHA value: "$(tasks.fetch-repository.results.commit)" - name: DESCRIPTION value: "Build $(params.JOB_NAME) has succeeded" - name: STATE value: success - name: TARGET_URL value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)" - name: report-failure when: - input: "$(tasks.status)" operator: in values: ["Failed"] 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/gitea-set-status/0.1/gitea-set-status.yaml params: - name: CONTEXT value: "$(params.JOB_NAME)" - name: REPO_FULL_NAME value: "$(params.REPO_OWNER)/$(params.REPO_NAME)" - name: GITEA_HOST_URL value: code.fizz.buzz - name: SHA value: "$(tasks.fetch-repository.results.commit)" - name: DESCRIPTION value: "Build $(params.JOB_NAME) has failed" - name: STATE value: failure - name: TARGET_URL value: "https://tekton.fizz.buzz/#/namespaces/$(context.pipelineRun.namespace)/pipelineruns/$(context.pipelineRun.name)" - name: cargo-cache-autoclean taskSpec: metadata: {} params: - name: docker-image type: string description: Docker image to run. default: alpine:3.20 stepTemplate: image: alpine:3.20 computeResources: requests: cpu: 10m memory: 600Mi workingDir: /workspace/source workspaces: - name: source mountPath: /source - name: cargo-cache mountPath: /usr/local/cargo/registry optional: true steps: - name: run image: $(params.docker-image) workingDir: "$(workspaces.source.path)" command: [cargo, cache, --autoclean] args: [] workspaces: - name: source workspace: git-source - name: cargo-cache workspace: cargo-cache params: - name: docker-image value: "$(tasks.build-image.results.IMAGE_URL[1])" workspaces: - name: git-source - name: docker-credentials - name: cargo-cache workspaces: - name: git-source volumeClaimTemplate: spec: storageClassName: "nfs-client" accessModes: - ReadWriteOnce resources: requests: storage: 10Gi subPath: rust-source - name: cargo-cache persistentVolumeClaim: claimName: natter-cargo-cache-test - name: docker-credentials secret: secretName: harbor-plain params: - name: image-name value: "harbor.fizz.buzz/private/natter-development-test" - name: target-name value: "" - name: path-to-image-context value: docker/natter_development/ - name: path-to-dockerfile value: docker/natter_development/