Browse Source

add instructions for tekton

main
Nicolas Massé 3 years ago
parent
commit
a7bb2ce54b
  1. 20
      README.md
  2. 91
      src/main/kubernetes/pipeline.yaml
  3. 7
      src/main/kubernetes/pipelinerun.yaml

20
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)

91
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

7
src/main/kubernetes/pipelinerun.yaml

@ -0,0 +1,7 @@
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
generateName: sample-pipeline-
spec:
pipelineRef:
name: sample-pipeline
Loading…
Cancel
Save