setup tekton cicd
							parent
							
								
									49c94a9ecf
								
							
						
					
					
						commit
						f4cb552af5
					
				| @ -0,0 +1,41 @@ | |||||||
|  | apiVersion: triggers.tekton.dev/v1beta1 | ||||||
|  | kind: EventListener | ||||||
|  | metadata: | ||||||
|  |   name: gitea-pushes | ||||||
|  |   namespace: sakal-us | ||||||
|  | spec: | ||||||
|  |   serviceAccountName: tekton-triggers-sakal-us | ||||||
|  |   triggers: | ||||||
|  |     # inline Trigger: | ||||||
|  |     - name: build-and-deploy-sakal-us | ||||||
|  |       bindings: # TriggerBindings to pluck data from EventListener and map it to named variables | ||||||
|  |         - name: gitrevision | ||||||
|  |           value: $(body.commits[0].id) | ||||||
|  |         - name: gitrepositoryurl | ||||||
|  |           value: $(body.repository.clone_url) | ||||||
|  |       template: # TriggerTemplates to render various Tekton CRDs using plucked data | ||||||
|  |         spec: | ||||||
|  |           params: | ||||||
|  |             - name: gitrevision | ||||||
|  |               description: The git revision | ||||||
|  |               default: main | ||||||
|  |             - name: gitrepositoryurl | ||||||
|  |               description: The git repository url | ||||||
|  |               default: https://git.sakal.us/avraham/sakal.us.git | ||||||
|  |           resourcetemplates: | ||||||
|  |             - apiVersion: tekton.dev/v1beta1 | ||||||
|  |               kind: PipelineRun | ||||||
|  |               metadata: | ||||||
|  |                 generateName: build-and-deploy-sakal-us- | ||||||
|  |               spec: | ||||||
|  |                 pipelineRef: | ||||||
|  |                   name: build-and-deploy-sakal-us | ||||||
|  |                 params: | ||||||
|  |                 - name: gitrevision | ||||||
|  |                   value: $(tt.params.gitrevision) | ||||||
|  |                 - name: gitrepositoryurl | ||||||
|  |                   value: $(tt.params.gitrepositoryurl) | ||||||
|  |                 workspaces: | ||||||
|  |                 - name: repo | ||||||
|  |                   persistentVolumeClaim: | ||||||
|  |                     claimName: sakal-us-cicd | ||||||
| @ -0,0 +1,4 @@ | |||||||
|  | apiVersion: v1 | ||||||
|  | kind: Namespace | ||||||
|  | metadata: | ||||||
|  |   name: sakal-us | ||||||
| @ -0,0 +1,76 @@ | |||||||
|  | apiVersion: tekton.dev/v1beta1 | ||||||
|  | kind: Pipeline | ||||||
|  | metadata: | ||||||
|  |   name: build-and-deploy-sakal-us | ||||||
|  |   namespace: sakal-us | ||||||
|  | spec: | ||||||
|  |   params: | ||||||
|  |     - name: gitrevision | ||||||
|  |       type: string | ||||||
|  |     - name: gitrepositoryurl | ||||||
|  |       type: string | ||||||
|  |   workspaces: | ||||||
|  |     - name: repo | ||||||
|  |   tasks: | ||||||
|  |     - name: git-clone | ||||||
|  |       workspaces: | ||||||
|  |         - name: repo | ||||||
|  |           workspace: repo | ||||||
|  |       params: | ||||||
|  |         - name: gitrepositoryurl | ||||||
|  |           value: "$(params.gitrepositoryurl)" | ||||||
|  |         - name: gitrevision | ||||||
|  |           value: "$(params.gitrevision)" | ||||||
|  |       taskSpec: | ||||||
|  |         workspaces: | ||||||
|  |           - name: repo | ||||||
|  |         params: | ||||||
|  |           - name: gitrepositoryurl | ||||||
|  |             type: string | ||||||
|  |           - name: gitrevision | ||||||
|  |             type: string | ||||||
|  |         steps: | ||||||
|  |           - name: git-clone | ||||||
|  |             image: bitnami/git | ||||||
|  |             script: git clone $(params.gitrepositoryurl) $(workspaces.repo.path) && cd $(workspaces.repo.path) && git checkout $(params.gitrevision) | ||||||
|  |     - name: npm-build | ||||||
|  |       runAfter: | ||||||
|  |         - git-clone | ||||||
|  |       workspaces: | ||||||
|  |         - name: repo | ||||||
|  |           workspace: repo | ||||||
|  |       taskSpec: | ||||||
|  |         workspaces: | ||||||
|  |           - name: repo | ||||||
|  |         steps: | ||||||
|  |           - name: build | ||||||
|  |             image: node:20 | ||||||
|  |             workingDir: $(workspaces.repo.path) | ||||||
|  |             script: npm install && npm run build | ||||||
|  |     - name: deploy-to-s3 | ||||||
|  |       runAfter: | ||||||
|  |         - npm-build | ||||||
|  |       workspaces: | ||||||
|  |         - name: repo | ||||||
|  |           workspace: repo | ||||||
|  |       taskSpec: | ||||||
|  |         workspaces: | ||||||
|  |           - name: repo | ||||||
|  |         steps: | ||||||
|  |           - name: deploy-to-s3 | ||||||
|  |             image: bitnami/minio-client | ||||||
|  |             workingDir: $(workspaces.repo.path) | ||||||
|  |             env: | ||||||
|  |               - name: MINIO_SERVER_HOST | ||||||
|  |                 value: minio.minio-dev.svc.cluster.local | ||||||
|  |               - name: MINIO_SERVER_ACCESS_KEY | ||||||
|  |                 valueFrom: | ||||||
|  |                   secretKeyRef: | ||||||
|  |                     name: minio-dev | ||||||
|  |                     key: accessKey | ||||||
|  |               - name: MINIO_SERVER_SECRET_KEY | ||||||
|  |                 valueFrom: | ||||||
|  |                   secretKeyRef: | ||||||
|  |                     name: minio-dev | ||||||
|  |                     key: secretKey | ||||||
|  |             script: mc cp dist/ sakal-us/ | ||||||
| @ -0,0 +1,12 @@ | |||||||
|  | apiVersion: v1 | ||||||
|  | kind: PersistentVolumeClaim | ||||||
|  | metadata: | ||||||
|  |   name: sakal-us-cicd | ||||||
|  |   namespace: sakal-us | ||||||
|  | spec: | ||||||
|  |   resources: | ||||||
|  |     requests: | ||||||
|  |       storage: 512Mi | ||||||
|  |   volumeMode: Filesystem | ||||||
|  |   accessModes: | ||||||
|  |     - ReadWriteOnce | ||||||
| @ -0,0 +1,32 @@ | |||||||
|  | apiVersion: v1 | ||||||
|  | kind: ServiceAccount | ||||||
|  | metadata: | ||||||
|  |   name: tekton-triggers-sakal-us | ||||||
|  |   namespace: sakal-us | ||||||
|  | --- | ||||||
|  | apiVersion: rbac.authorization.k8s.io/v1 | ||||||
|  | kind: RoleBinding | ||||||
|  | metadata: | ||||||
|  |   name: triggers-example-eventlistener-binding | ||||||
|  |   namespace: sakal-us | ||||||
|  | subjects: | ||||||
|  | - kind: ServiceAccount | ||||||
|  |   name: tekton-triggers-sakal-us | ||||||
|  | roleRef: | ||||||
|  |   apiGroup: rbac.authorization.k8s.io | ||||||
|  |   kind: ClusterRole | ||||||
|  |   name: tekton-triggers-eventlistener-roles | ||||||
|  | --- | ||||||
|  | apiVersion: rbac.authorization.k8s.io/v1 | ||||||
|  | kind: ClusterRoleBinding | ||||||
|  | metadata: | ||||||
|  |   name: triggers-example-eventlistener-clusterbinding | ||||||
|  |   namespace: sakal-us | ||||||
|  | subjects: | ||||||
|  | - kind: ServiceAccount | ||||||
|  |   name: tekton-triggers-sakal-us | ||||||
|  |   namespace: default | ||||||
|  | roleRef: | ||||||
|  |   apiGroup: rbac.authorization.k8s.io | ||||||
|  |   kind: ClusterRole | ||||||
|  |   name: tekton-triggers-eventlistener-clusterroles | ||||||
					Loading…
					
					
				
		Reference in New Issue