Add CI job to run clippy.
This commit is contained in:
		
							parent
							
								
									48af194da0
								
							
						
					
					
						commit
						904f834c86
					
				
							
								
								
									
										279
									
								
								.lighthouse/pipeline-rust-clippy.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										279
									
								
								.lighthouse/pipeline-rust-clippy.yaml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,279 @@ | ||||
| apiVersion: tekton.dev/v1beta1 | ||||
| kind: PipelineRun | ||||
| metadata: | ||||
|   name: rust-clippy | ||||
| spec: | ||||
|   pipelineSpec: | ||||
|     timeouts: | ||||
|       pipeline: "2h0m0s" | ||||
|       tasks: "1h0m40s" | ||||
|       finally: "0h30m0s" | ||||
|     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: | ||||
|               - --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-cargo-clippy | ||||
|         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: 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", | ||||
|                   "clippy", | ||||
|                   "--no-deps", | ||||
|                   "--all-targets", | ||||
|                   "--all-features", | ||||
|                   "--", | ||||
|                   "-D", | ||||
|                   "warnings", | ||||
|                 ] | ||||
|               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: "$(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 | ||||
|           stepTemplate: | ||||
|             image: alpine:3.18 | ||||
|             name: "" | ||||
|             resources: | ||||
|               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: "$(params.image-name):$(tasks.fetch-repository.results.commit)" | ||||
|     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-clippy | ||||
|     - name: docker-credentials | ||||
|       secret: | ||||
|         secretName: harbor-plain | ||||
|   serviceAccountName: build-bot | ||||
|   params: | ||||
|     - name: image-name | ||||
|       value: "harbor.fizz.buzz/private/natter-development" | ||||
|     - name: path-to-image-context | ||||
|       value: docker/natter_development/ | ||||
|     - name: path-to-dockerfile | ||||
|       value: docker/natter_development/Dockerfile | ||||
| @ -16,3 +16,10 @@ spec: | ||||
|       skip_branches: | ||||
|         # We already run on every commit, so running when the semver tags get pushed is causing needless double-processing. | ||||
|         - "^v[0-9]+\\.[0-9]+\\.[0-9]+$" | ||||
|     - name: rust-clippy | ||||
|       source: "pipeline-rust-clippy.yaml" | ||||
|       # Override https-based url from lighthouse events. | ||||
|       clone_uri: "git@code.fizz.buzz:talexander/natter.git" | ||||
|       skip_branches: | ||||
|         # We already run on every commit, so running when the semver tags get pushed is causing needless double-processing. | ||||
|         - "^v[0-9]+\\.[0-9]+\\.[0-9]+$" | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Tom Alexander
						Tom Alexander