diff --git a/README.md b/README.md index bbe1b7e..6562958 100644 --- a/README.md +++ b/README.md @@ -55,24 +55,14 @@ podman login quay.io podman push quay.io/madroadshowfrance2023/tekton-pipeline-slack-bot:latest ``` -## Creating a native executable +## Usage in Tekton Pipelines -You can create a native executable using: - -```shell script -./mvnw package -Pnative -``` - -Or, if you don't have GraalVM installed, you can run the native executable build in a container using: - -```shell script -./mvnw package -Pnative -Dquarkus.native.container-build=true +```sh +kubectl create secret generic tekton-tokens --from-literal=bot-token=xoxb-.... --from-literal=app-token=xapp-.... +kubectl apply -f src/main/kubernetes/pipeline.yaml +kubectl create -f src/main/kubernetes/pipelinerun.yaml ``` -You can then execute your native executable with: `./target/slack-bot-1.0.0-SNAPSHOT-runner` - -If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling. - ## Related Guides * [Getting started with Bolt (Socket Mode)](https://slack.dev/java-slack-sdk/guides/getting-started-with-bolt-socket-mode) diff --git a/src/main/kubernetes/pipeline.yaml b/src/main/kubernetes/pipeline.yaml new file mode 100644 index 0000000..2683a03 --- /dev/null +++ b/src/main/kubernetes/pipeline.yaml @@ -0,0 +1,91 @@ +apiVersion: tekton.dev/v1beta1 +kind: Task +metadata: + name: foo +spec: + steps: + - name: foo + image: registry.access.redhat.com/ubi8/ubi:8.8 + script: | + #!/bin/sh + set -eu + + echo "FOO" + + exit 0 +--- +apiVersion: tekton.dev/v1beta1 +kind: Task +metadata: + name: bar +spec: + steps: + - name: bar + image: registry.access.redhat.com/ubi8/ubi:8.8 + script: | + #!/bin/sh + set -eu + + echo "BAR" + + exit 0 +--- +apiVersion: tekton.dev/v1beta1 +kind: Task +metadata: + name: slack-approval +spec: + params: + - name: slackChannel + type: string + - name: slackSecretName + type: string + - name: pipelineId + type: string + steps: + - name: slack-approval + image: quay.io/madroadshowfrance2023/tekton-pipeline-slack-bot:latest + env: + - name: SLACK_CHANNEL + value: "$(params.slackChannel)" + - name: TEKTON_PIPELINE_ID + value: "$(params.pipelineId)" + - name: SLACK_BOT_TOKEN + valueFrom: + secretKeyRef: + name: $(params.slackSecretName) + key: "bot-token" + - name: SLACK_APP_TOKEN + valueFrom: + secretKeyRef: + name: $(params.slackSecretName) + key: "app-token" +--- +apiVersion: tekton.dev/v1beta1 +kind: Pipeline +metadata: + name: sample-pipeline +spec: + tasks: + - name: foo + taskRef: + name: foo + + - name: slack-approval + params: + - name: slackChannel + value: "#mad-roadshow-france-2023" + - name: slackSecretName + value: "tekton-tokens" + - name: pipelineId + value: "$(context.pipelineRun.name)" + runAfter: + - foo + taskRef: + name: slack-approval + + - name: bar + taskRef: + name: bar + runAfter: + - slack-approval diff --git a/src/main/kubernetes/pipelinerun.yaml b/src/main/kubernetes/pipelinerun.yaml new file mode 100644 index 0000000..031a794 --- /dev/null +++ b/src/main/kubernetes/pipelinerun.yaml @@ -0,0 +1,7 @@ +apiVersion: tekton.dev/v1beta1 +kind: PipelineRun +metadata: + generateName: sample-pipeline- +spec: + pipelineRef: + name: sample-pipeline