diff --git a/.tekton/pipeline-service-test.yaml b/.tekton/pipeline-service-test.yaml index b2246d499..fc03bd735 100644 --- a/.tekton/pipeline-service-test.yaml +++ b/.tekton/pipeline-service-test.yaml @@ -14,7 +14,9 @@ metadata: pipelinesascode.tekton.dev/task-4: "[.tekton/tasks/generate-cluster-name.yaml]" pipelinesascode.tekton.dev/task-5: "[.tekton/tasks/pipeline-service-setup.yaml]" pipelinesascode.tekton.dev/task-6: "[.tekton/tasks/pipeline-service-tests.yaml]" - pipelinesascode.tekton.dev/task-7: "[git-clone]" + pipelinesascode.tekton.dev/task-7: "[.tekton/tasks/tekton-results-fetch-sha.yaml]" + pipelinesascode.tekton.dev/task-8: "[.tekton/tasks/tekton-results-upstream-e2e.yaml]" + pipelinesascode.tekton.dev/task-9: "[git-clone]" pipelinesascode.tekton.dev/max-keep-runs: "5" spec: pipelineRef: @@ -26,6 +28,8 @@ spec: value: "{{ revision }}" - name: target_branch value: "{{ target_branch }}" + - name: results_url + value: "https://github.com/openshift-pipelines/tektoncd-results" timeouts: pipeline: "1h0m0s" workspaces: @@ -48,3 +52,11 @@ spec: resources: requests: storage: 50Mi + - name: tekton-results-source + volumeClaimTemplate: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 3Gi diff --git a/.tekton/pipeline/acceptance-tests.yaml b/.tekton/pipeline/acceptance-tests.yaml index 70d508c59..79adaf3c4 100644 --- a/.tekton/pipeline/acceptance-tests.yaml +++ b/.tekton/pipeline/acceptance-tests.yaml @@ -8,10 +8,12 @@ spec: - name: repo_url - name: revision - name: target_branch + - name: results_url timeouts: finally: "0h20m0s" workspaces: - name: source + - name: tekton-results-source - name: kubeconfig-dir - name: shared-workspace tasks: @@ -107,6 +109,45 @@ spec: workspace: shared-workspace - name: source workspace: source + - name: tekton-results-fetch-sha + taskRef: + name: tekton-results-fetch-sha + runAfter: + - "clone-pipeline-service-git" + params: + - name: target_branch + value: $(params.target_branch) + workspaces: + - name: source + workspace: source + - name: clone-downstream-tekton-results + taskRef: + name: git-cli + kind: ClusterTask + runAfter: + - "tekton-results-fetch-sha" + params: + - name: GIT_SCRIPT + value: | + git fetch origin "$(params.results_url)" + git checkout "$(tasks.tekton-results-fetch-sha.results.tekton-results-downstream-sha)" + workspaces: + - name: output + workspace: tekton-results-source + - name: tekton-results-upstream-e2e + taskRef: + name: tekton-results-upstream-e2e + runAfter: + - "clone-downstream-tekton-results" + - "plnsvc-setup" + params: + - name: target_branch + value: $(params.target_branch) + workspaces: + - name: source + workspace: tekton-results-source + - name: kubeconfig-dir + workspace: kubeconfig-dir finally: - name: destroy-cluster taskRef: diff --git a/.tekton/tasks/tekton-results-fetch-sha.yaml b/.tekton/tasks/tekton-results-fetch-sha.yaml new file mode 100644 index 000000000..c50935071 --- /dev/null +++ b/.tekton/tasks/tekton-results-fetch-sha.yaml @@ -0,0 +1,20 @@ +--- +apiVersion: tekton.dev/v1beta1 +kind: Task +metadata: + name: tekton-results-fetch-sha +spec: + workspaces: + - name: source + params: + - name: target_branch + results: + - name: tekton-results-downstream-sha + description: Tekton Results updated SHA in Pipeline Service + steps: + - name: fetch-results-sha + workingDir: $(workspaces.source.path) + image: quay.io/openshift-pipeline/ci:latest + script: | + #! /usr/bin/env bash + yq '.images[0].newTag' $(workspaces.source.path)/operator/gitops/argocd/pipeline-service/tekton-results/base/kustomization.yaml | tee $(results.tekton-results-downstream-sha.path) diff --git a/.tekton/tasks/tekton-results-upstream-e2e.yaml b/.tekton/tasks/tekton-results-upstream-e2e.yaml new file mode 100644 index 000000000..bfab3ada1 --- /dev/null +++ b/.tekton/tasks/tekton-results-upstream-e2e.yaml @@ -0,0 +1,28 @@ +--- +apiVersion: tekton.dev/v1beta1 +kind: Task +metadata: + name: tekton-results-upstream-e2e +spec: + params: + - name: target_branch + workspaces: + - name: source + - name: kubeconfig-dir + steps: + - name: execute-tekton-results-upstream-e2e + image: quay.io/redhat-pipeline-service/ci-runner:$(params.target_branch) + workingDir: $(workspaces.source.path) + env: + - name: KUBECONFIG + value: "$(workspaces.kubeconfig-dir.path)/kubeconfig" + script: | + #! /usr/bin/env bash + export SA_TOKEN_PATH=${SA_TOKEN_PATH:-"/tmp/tekton-results/tokens"} + mkdir -p ${SA_TOKEN_PATH} + service_accounts=(all-namespaces-read-access single-namespace-read-access) + for service_account in "${service_accounts[@]}"; do + kubectl create token "$service_account" > "${SA_TOKEN_PATH}"/"$service_account" + done + export CGO_ENABLED=0 + go test -v -count=1 --tags=e2e $(workspaces.source.path)/test/e2e/...