diff --git a/.tekton/pipeline-service-test.yaml b/.tekton/pipeline-service-test.yaml index 05c55f9ba..9d210903d 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: @@ -30,6 +32,8 @@ spec: value: "{{ revision }}" - name: target_branch value: "{{ target_branch }}" + - name: results_url + value: "https://github.com/openshift-pipelines/tektoncd-results" timeouts: pipeline: "1h30m0s" workspaces: @@ -49,3 +53,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 93444d692..7e347e1bd 100644 --- a/.tekton/pipeline/acceptance-tests.yaml +++ b/.tekton/pipeline/acceptance-tests.yaml @@ -10,10 +10,12 @@ spec: - name: revision - name: target_branch - name: ocp_version + - name: results_url timeouts: finally: "0h30m0s" workspaces: - name: source + - name: tekton-results-source - name: shared-workspace tasks: - name: generate-cluster-name @@ -106,6 +108,35 @@ 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: tekton-results-upstream-e2e + taskRef: + name: tekton-results-upstream-e2e + runAfter: + - "tekton-results-fetch-sha" + - "plnsvc-setup" + params: + - name: target_branch + value: $(params.target_branch) + - name: repo_url + value: "$(params.results_url)" + - name: revision + value: "$(tasks.tekton-results-fetch-sha.results.tekton-results-downstream-sha)" + workspaces: + - name: source + workspace: tekton-results-source + - name: kubeconfig-dir + workspace: shared-workspace 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..4e28fbd5b --- /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 + echo -n "$(yq '.images[0].newTag' $(workspaces.source.path)/operator/gitops/argocd/pipeline-service/tekton-results/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..15a2508fb --- /dev/null +++ b/.tekton/tasks/tekton-results-upstream-e2e.yaml @@ -0,0 +1,43 @@ +--- +apiVersion: tekton.dev/v1beta1 +kind: Task +metadata: + name: tekton-results-upstream-e2e +spec: + params: + - name: target_branch + - name: repo_url + - name: revision + 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 + cd $(workspaces.source.path) + git clone --no-checkout $(params.repo_url) + cd tektoncd-results + git config remote.origin.fetch '+refs/heads/downstream*:refs/remotes/origin/downstream*' + git fetch origin $(params.revision) + git checkout $(params.revision) + export SA_TOKEN_PATH=${SA_TOKEN_PATH:-"/tmp/tekton-results/tokens"} + export SSL_CERT_PATH=${SSL_CERT_PATH:="/tmp/tekton-results/ssl"} + mkdir -p ${SA_TOKEN_PATH} ${SSL_CERT_PATH} + kubectl get secrets tekton-results-tls -n tekton-results --template='{{index .data "tls.crt"}}' | base64 -d > ${SSL_CERT_PATH}/tekton-results-cert.pem + kubectl get secrets tekton-results-tls -n tekton-results --template='{{index .data "tls.key"}}' | base64 -d > ${SSL_CERT_PATH}/tekton-results-key.pem + kubectl apply -f ./test/e2e/kustomize/rbac.yaml + 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 API_SERVER_NAME="tekton-results-api-service.tekton-results.svc.cluster.local" + export API_SERVER_ADDR="https://$(kubectl get route tekton-results -n tekton-results --template='{{.spec.host}}'):443" + echo $API_SERVER_ADDR + export CGO_ENABLED=0 + go test -v -count=1 --tags=e2e $(go list --tags=e2e ./test/e2e/... | grep -v /client) diff --git a/ci/images/ci-runner/hack/bin/deploy-cluster.sh b/ci/images/ci-runner/hack/bin/deploy-cluster.sh index 402085e06..bd38962af 100755 --- a/ci/images/ci-runner/hack/bin/deploy-cluster.sh +++ b/ci/images/ci-runner/hack/bin/deploy-cluster.sh @@ -97,6 +97,7 @@ deploy_cluster() { exit 1 fi check_clusteroperators + oc annotate ingresses.config/cluster ingress.operator.openshift.io/default-enable-http2=true } deploy_cluster \ No newline at end of file