diff --git a/test/e2e-tests-upgrade.sh b/test/e2e-tests-upgrade.sh index 75b285642ab..68b6dbc8bb3 100755 --- a/test/e2e-tests-upgrade.sh +++ b/test/e2e-tests-upgrade.sh @@ -66,17 +66,31 @@ uninstall_pipeline_crd_version $PREVIOUS_PIPELINE_VERSION header "Install the previous release of Tekton pipeline $PREVIOUS_PIPELINE_VERSION" install_pipeline_crd_version $PREVIOUS_PIPELINE_VERSION +header "Create resources at previous release version" +kubectl create namespace upgrade +trap "kubectl delete namespace upgrade" EXIT +kubectl create -f ./test/upgrade/simpleResources.yaml || fail_test + # Upgrade to the current release. header "Upgrade to the current release of Tekton pipeline" install_pipeline_crd -# Run the integration tests. -go_test_e2e -timeout=20m ./test || failed=1 +# Create runs from the Task and Pipeline resources created at the previous release version +header "Start runs upon resources created at current release version" +kubectl create -f ./test/upgrade/simpleRuns.yaml || fail_test # Run the post-integration tests. We do not need to install the resources again, since # they are installed before the upgrade. We verify if they still work, after going through # the upgrade. -go_test_e2e -tags=examples -timeout=20m ./test/ || failed=1 +for test in taskrun pipelinerun; do + header "Running YAML e2e tests for ${test}s" + if ! run_tests ${test}; then + echo "ERROR: one or more YAML tests failed" + output_yaml_test_results ${test} + output_pods_logs ${test} + failed=1 + fi +done (( failed )) && fail_test diff --git a/test/upgrade/simpleResources.yaml b/test/upgrade/simpleResources.yaml new file mode 100644 index 00000000000..03fa3b4b49f --- /dev/null +++ b/test/upgrade/simpleResources.yaml @@ -0,0 +1,67 @@ +apiVersion: tekton.dev/v1 +kind: Task +metadata: + name: simple-task + namespace: upgrade +spec: + params: + - name: rsp + type: string + default: "response" + steps: + - name: echo-param + image: alpine + script: | + echo "$(params.rsp)" + - name: check-workspace + image: alpine + script: | + if [ "$(workspaces.workspace.bound)" == "true" ]; then + echo "Workspace provided" + fi + sidecars: + - name: server + image: alpine:3.12.0 + command: ['/bin/bash'] + workingDir: /foo + script: echo server + workspaces: + - name: workspace + mountPath: /foo +--- +apiVersion: tekton.dev/v1 +kind: Pipeline +metadata: + name: simple-pipeline + namespace: upgrade +spec: + description: foo + tasks: + - name: check-workspace + taskSpec: + params: + - name: task1-param + type: string + default: "1" + steps: + - image: alpine + name: check-workspace + script: | + if [ "$(workspaces.workspace.bound)" == "true" ]; then + echo "Workspace provided \n" + echo $(params.task1-param) + fi + timeout: 180s + workspaces: + - name: workspace + finally: + - name: echo-status + taskSpec: + params: + - name: echoStatus + type: string + default: "Succeeded" + steps: + - name: verify-status + image: ubuntu + script: echo $(params.echoStatus) diff --git a/test/upgrade/simpleRuns.yaml b/test/upgrade/simpleRuns.yaml new file mode 100644 index 00000000000..57825780ce8 --- /dev/null +++ b/test/upgrade/simpleRuns.yaml @@ -0,0 +1,23 @@ +apiVersion: tekton.dev/v1 +kind: PipelineRun +metadata: + name: simple-pipelinerun + namespace: upgrade +spec: + pipelineRef: + name: simple-pipeline + workspaces: + - name: workspace + emptyDir: {} +--- +apiVersion: tekton.dev/v1 +kind: TaskRun +metadata: + name: simple-taskrun + namespace: upgrade +spec: + taskRef: + name: simple-task + workspaces: + - name: workspace + emptyDir: {}