diff --git a/tekton/2-Setup/kubeconfig-creds.yaml b/tekton/2-Setup/kubeconfig-creds.yaml new file mode 100644 index 0000000..22f0748 --- /dev/null +++ b/tekton/2-Setup/kubeconfig-creds.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Secret +metadata: + name: kubeconfig + namespace: tekton-pipelines + annotations: + kube-1password: ppvndbst3pdqpvfaavgy7mkluq + kube-1password/vault: Kubernetes + kube-1password/secret-text-key: config +type: Opaque diff --git a/tekton/pipelines/deploy.yaml b/tekton/pipelines/deploy.yaml index b5142fc..5f274c5 100644 --- a/tekton/pipelines/deploy.yaml +++ b/tekton/pipelines/deploy.yaml @@ -65,12 +65,36 @@ spec: inputs: - name: src resource: git-source - - name: make-release + - name: build-and-publish-sha-public + conditions: + - conditionRef: is-public-project + params: + - name: isprivate + value: $(params.isprivate) taskRef: - name: make + name: docker-build-and-publish params: - - name: TARGET - value: "release" + - name: IMAGE + value: $(params.publicdockerregistry)/$(params.projectname):$(params.gitrevision) + resources: + inputs: + - name: src + resource: git-source + - name: make-release + taskRef: + name: make + runAfter: + - build-and-publish-sha + - build-and-publish-sha-public + params: + - name: TARGET + value: "release" + - name: REPO + value: $(params.projectname) + - name: PR_ID + value: "" + - name: SHA + value: $(params.gitrevision) resources: inputs: - name: src diff --git a/tekton/tasks/docker-build-and-publish.yaml b/tekton/tasks/docker-build-and-publish.yaml index 386d0e1..2345ae9 100644 --- a/tekton/tasks/docker-build-and-publish.yaml +++ b/tekton/tasks/docker-build-and-publish.yaml @@ -41,6 +41,7 @@ spec: - --destination=$(params.IMAGE) - --oci-layout-path=/workspace/src/image-digest - --digest-file=/tekton/results/IMAGE_DIGEST + - --cache=true securityContext: runAsUser: 0 volumeMounts: diff --git a/tekton/tasks/make.yaml b/tekton/tasks/make.yaml index 4ce85d6..cea1584 100644 --- a/tekton/tasks/make.yaml +++ b/tekton/tasks/make.yaml @@ -7,6 +7,12 @@ spec: params: - name: TARGET description: The make target to run + - name: REPO + description: The name of the repo + - name: PR_ID + description: The ID of the pull request + - name: SHA + description: The commit sha resources: inputs: - name: src @@ -16,14 +22,27 @@ spec: workingDir: /workspace/src image: docker.cluster.fun/averagemarcus/ci-builder:latest script: | - make --dry-run -t $(params.TARGET) &> /dev/null && make $(params.TARGET) || echo "No '$(params.TARGET)' target found, skipping" + make --dry-run $(params.TARGET) &> /dev/null || (echo "No '$(params.TARGET)' target found, skipping" && exit 0) + make $(params.TARGET) env: - name: REPO value: $(params.REPO) - name: PR_ID value: $(params.PR_ID) + - name: SHA + value: $(params.SHA) - name: ACCESS_TOKEN valueFrom: secretKeyRef: name: gitea-access-token key: access-token + - name: KUBECONFIG + value: /root/.kube/config + volumeMounts: + - name: kubeconfig + mountPath: /root/.kube/config + subPath: config + volumes: + - name: kubeconfig + secret: + secretName: kubeconfig