Add pipeline for running the rust tests.
This commit is contained in:
		
							parent
							
								
									cb5838345e
								
							
						
					
					
						commit
						6f244a0a5f
					
				
							
								
								
									
										188
									
								
								.lighthouse/pipeline-rust-test.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										188
									
								
								.lighthouse/pipeline-rust-test.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,188 @@
 | 
				
			|||||||
 | 
					apiVersion: tekton.dev/v1beta1
 | 
				
			||||||
 | 
					kind: PipelineRun
 | 
				
			||||||
 | 
					metadata:
 | 
				
			||||||
 | 
					  name: rust-test
 | 
				
			||||||
 | 
					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:
 | 
				
			||||||
 | 
					          name: gitea-set-status
 | 
				
			||||||
 | 
					        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:
 | 
				
			||||||
 | 
					          name: git-clone
 | 
				
			||||||
 | 
					        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:
 | 
				
			||||||
 | 
					          name: kaniko
 | 
				
			||||||
 | 
					        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=tester
 | 
				
			||||||
 | 
					              - --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
 | 
				
			||||||
 | 
					        taskRef:
 | 
				
			||||||
 | 
					          name: run-docker-image
 | 
				
			||||||
 | 
					        workspaces:
 | 
				
			||||||
 | 
					          - name: source
 | 
				
			||||||
 | 
					            workspace: git-source
 | 
				
			||||||
 | 
					          - name: cargo-cache
 | 
				
			||||||
 | 
					            workspace: cargo-cache
 | 
				
			||||||
 | 
					        runAfter:
 | 
				
			||||||
 | 
					          - build-image
 | 
				
			||||||
 | 
					        params:
 | 
				
			||||||
 | 
					          - name: command
 | 
				
			||||||
 | 
					            value: [cargo, test, --no-fail-fast]
 | 
				
			||||||
 | 
					          - 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:
 | 
				
			||||||
 | 
					          name: gitea-set-status
 | 
				
			||||||
 | 
					        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:
 | 
				
			||||||
 | 
					          name: gitea-set-status
 | 
				
			||||||
 | 
					        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
 | 
				
			||||||
 | 
					        taskRef:
 | 
				
			||||||
 | 
					          name: run-docker-image
 | 
				
			||||||
 | 
					        workspaces:
 | 
				
			||||||
 | 
					          - name: source
 | 
				
			||||||
 | 
					            workspace: git-source
 | 
				
			||||||
 | 
					          - name: cargo-cache
 | 
				
			||||||
 | 
					            workspace: cargo-cache
 | 
				
			||||||
 | 
					        params:
 | 
				
			||||||
 | 
					          - name: command
 | 
				
			||||||
 | 
					            value: [cargo, cache, --autoclean]
 | 
				
			||||||
 | 
					          - name: args
 | 
				
			||||||
 | 
					            value: []
 | 
				
			||||||
 | 
					          - 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-test
 | 
				
			||||||
 | 
					    - 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
 | 
				
			||||||
@ -9,3 +9,10 @@ spec:
 | 
				
			|||||||
      branches:
 | 
					      branches:
 | 
				
			||||||
        - ^main$
 | 
					        - ^main$
 | 
				
			||||||
        - ^master$
 | 
					        - ^master$
 | 
				
			||||||
 | 
					    - name: rust-test
 | 
				
			||||||
 | 
					      source: "pipeline-rust-test.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