apiVersion: tekton.dev/v1beta1 kind: PipelineRun metadata: name: build-organic spec: pipelineSpec: params: - name: image-name description: The name for the built image 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://github.com/tektoncd/catalog.git - name: revision value: df36b3853a5657fd883015cdbf07ad6466918acf - name: pathInRepo value: task/gitea-set-status/0.1/gitea-set-status.yaml runAfter: - fetch-repository 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://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: build-image taskRef: resolver: git params: - name: url value: https://github.com/tektoncd/catalog.git - name: revision value: df36b3853a5657fd883015cdbf07ad6466918acf - name: pathInRepo value: task/kaniko/0.6/kaniko.yaml params: - name: IMAGE value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" - name: CONTEXT value: $(params.path-to-image-context) - name: DOCKERFILE value: $(params.path-to-dockerfile) - name: BUILDER_IMAGE value: "gcr.io/kaniko-project/executor:v1.12.1" - name: EXTRA_ARGS value: - --target=wasm - --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: run-image-none taskSpec: metadata: {} params: - name: docker-image type: string description: Docker image to run. default: alpine:3.18 stepTemplate: image: alpine:3.18 name: "" resources: requests: cpu: 10m memory: 60Mi 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", "build"] args: ["--no-default-features"] env: - name: CARGO_TARGET_DIR value: /target workspaces: - name: source workspace: git-source - name: cargo-cache workspace: cargo-cache subPath: none runAfter: - build-image params: - name: docker-image value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" ############# - name: run-image-tracing taskSpec: metadata: {} params: - name: docker-image type: string description: Docker image to run. default: alpine:3.18 stepTemplate: image: alpine:3.18 name: "" resources: requests: cpu: 10m memory: 60Mi 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", "build"] args: ["--no-default-features", "--features", "tracing"] env: - name: CARGO_TARGET_DIR value: /target workspaces: - name: source workspace: git-source - name: cargo-cache workspace: cargo-cache subPath: tracing runAfter: - build-image params: - name: docker-image value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" ############# - name: run-image-compare taskSpec: metadata: {} params: - name: docker-image type: string description: Docker image to run. default: alpine:3.18 stepTemplate: image: alpine:3.18 name: "" resources: requests: cpu: 10m memory: 60Mi 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", "build"] args: ["--no-default-features", "--features", "compare"] env: - name: CARGO_TARGET_DIR value: /target workspaces: - name: source workspace: git-source - name: cargo-cache workspace: cargo-cache subPath: compare runAfter: - build-image params: - name: docker-image value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" ############# - name: run-image-default taskSpec: metadata: {} params: - name: docker-image type: string description: Docker image to run. default: alpine:3.18 stepTemplate: image: alpine:3.18 name: "" resources: requests: cpu: 10m memory: 60Mi 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", "build"] args: [] env: - name: CARGO_TARGET_DIR value: /target workspaces: - name: source workspace: git-source - name: cargo-cache workspace: cargo-cache subPath: default runAfter: - build-image params: - name: docker-image value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" ############# - name: run-image-tracing-compare taskSpec: metadata: {} params: - name: docker-image type: string description: Docker image to run. default: alpine:3.18 stepTemplate: image: alpine:3.18 name: "" resources: requests: cpu: 10m memory: 60Mi 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", "build"] args: ["--no-default-features", "--features", "tracing,compare"] env: - name: CARGO_TARGET_DIR value: /target workspaces: - name: source workspace: git-source - name: cargo-cache workspace: cargo-cache subPath: tracing-compare runAfter: - build-image params: - name: docker-image value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" ############# - name: run-image-compare-foreign taskSpec: metadata: {} params: - name: docker-image type: string description: Docker image to run. default: alpine:3.18 stepTemplate: image: alpine:3.18 name: "" resources: requests: cpu: 10m memory: 60Mi 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", "build"] args: [ "--no-default-features", "--features", "compare,foreign_document_test", ] env: - name: CARGO_TARGET_DIR value: /target workspaces: - name: source workspace: git-source - name: cargo-cache workspace: cargo-cache subPath: compare-foreign runAfter: - build-image params: - name: docker-image value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" ############# - name: run-image-all taskSpec: metadata: {} params: - name: docker-image type: string description: Docker image to run. default: alpine:3.18 stepTemplate: image: alpine:3.18 name: "" resources: requests: cpu: 10m memory: 60Mi 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", "build"] args: [ "--no-default-features", "--features", "tracing,compare,foreign_document_test", ] env: - name: CARGO_TARGET_DIR value: /target workspaces: - name: source workspace: git-source - name: cargo-cache workspace: cargo-cache subPath: all runAfter: - build-image params: - name: docker-image value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" ############# - name: run-image-wasm taskSpec: metadata: {} params: - name: docker-image type: string description: Docker image to run. default: alpine:3.18 stepTemplate: image: alpine:3.18 name: "" resources: requests: cpu: 10m memory: 60Mi 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", "build"] args: [ "--target", "wasm32-unknown-unknown", "--profile", "wasm", "--bin", "wasm", "--no-default-features", "--features", "wasm", ] env: - name: CARGO_TARGET_DIR value: /target workspaces: - name: source workspace: git-source - name: cargo-cache workspace: cargo-cache subPath: wasm runAfter: - build-image params: - name: docker-image value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" ############# - name: run-image-wasm-test taskSpec: metadata: {} params: - name: docker-image type: string description: Docker image to run. default: alpine:3.18 stepTemplate: image: alpine:3.18 name: "" resources: requests: cpu: 10m memory: 60Mi 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", "build"] args: [ "--bin", "wasm_test", "--no-default-features", "--features", "wasm_test", ] env: - name: CARGO_TARGET_DIR value: /target workspaces: - name: source workspace: git-source - name: cargo-cache workspace: cargo-cache subPath: wasm-test runAfter: - build-image params: - name: docker-image value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" ############# finally: - name: report-success when: - input: "$(tasks.status)" operator: in values: ["Succeeded", "Completed"] taskRef: resolver: git params: - name: url value: 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://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.18 - name: cache-subdir type: string description: subPath used in the persistent volume for the cargo cache. steptemplate: image: alpine:3.18 name: "" resources: requests: cpu: 10m memory: 60Mi 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: ["ls", "$(workspaces.cargo-cache.path)"] # command: [echo, $(params.cache-subdir)] # command: [cargo, cache, --autoclean] args: [] workspaces: - name: source workspace: git-source - name: cargo-cache workspace: cargo-cache subPath: $(params.cache-subdir) params: - name: docker-image value: "$(params.image-name):$(tasks.fetch-repository.results.commit)" - name: cache-subdir value: none # matrix: # params: # - name: cache-subdir # value: # - none # - tracing # - compare # - default # - tracing-compare # - compare-foreign # - all # - wasm # - wasm-test 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: organic-cargo-cache-build - name: docker-credentials secret: secretName: harbor-plain serviceAccountName: build-bot timeout: 240h0m0s params: - name: image-name value: "harbor.fizz.buzz/private/organic-development-wasm" - name: path-to-image-context value: . - name: path-to-dockerfile value: docker/organic_development/Dockerfile