diff --git a/deploy/deployment.yaml b/deploy/deployment.yaml index 1f13202..76503ee 100644 --- a/deploy/deployment.yaml +++ b/deploy/deployment.yaml @@ -18,7 +18,7 @@ spec: app: accounts spec: containers: - - image: us.icr.io/sn-labs-irgalamarr/accounts:1 + - image: IMAGE_NAME_HERE name: accounts resources: {} env: diff --git a/tekton/pipeline.yaml b/tekton/pipeline.yaml index 97c4b18..a9de80b 100644 --- a/tekton/pipeline.yaml +++ b/tekton/pipeline.yaml @@ -15,6 +15,7 @@ spec: - name: repo-url - name: branch default: main + - name: build-image tasks: - name: init workspaces: @@ -50,3 +51,50 @@ spec: value: ["--count","--max-complexity=10","--max-line-length=127","--statistics"] runAfter: - clone + + - name: tests + workspaces: + - name: source + workspace: pipeline-workspace + taskRef: + name: nose + params: + - name: database_uri + value: "sqlite:///test.db" + - name: args + value: "-v --with-spec --spec-color" + runAfter: + - clone + + - name: build + workspaces: + - name: source + workspace: pipeline-workspace + taskRef: + name: buildah + kind: ClusterTask + params: + - name: IMAGE + value: "$(params.build-image)" + runAfter: + - tests + - lint + + - name: deploy + workspaces: + - name: manifest-dir + workspace: pipeline-workspace + taskRef: + name: openshift-client + kind: ClusterTask + params: + - name: SCRIPT + value: | + echo "Updating manifest..." + sed -i "s|IMAGE_NAME_HERE|$(params.build-image)|g" deploy/deployment.yaml + cat deploy/deployment.yaml + echo "Deploying to OpenShift..." + oc apply -f deploy/ + oc get pods -l app=accounts + runAfter: + - build diff --git a/tekton/tasks.yaml b/tekton/tasks.yaml index 25644df..380bf02 100644 --- a/tekton/tasks.yaml +++ b/tekton/tasks.yaml @@ -49,4 +49,38 @@ spec: # Delete files and directories starting with .. plus any other character rm -rf "${WORKSPACE_SOURCE_PATH}"/..?* fi +--- +apiVersion: tekton.dev/v1beta1 +kind: Task +metadata: + name: nose +spec: + description: This task will run nosetests on the provided input. + workspaces: + - name: source + params: + - name: args + description: Arguments to pass to nose + type: string + default: "-v" + - name: database_uri + description: Database connection string + type: string + default: "sqlite:///test.db" + steps: + - name: nosetests + image: python:3.9-slim + workingDir: $(workspaces.source.path) + env: + - name: DATABASE_URI + value: $(params.database_uri) + script: | + #!/bin/bash + set -e + + echo "***** Installing dependencies *****" + python -m pip install --upgrade pip wheel + pip install -qr requirements.txt + echo "***** Running nosetests with: $(params.args)" + nosetests $(params.args)