| apiVersion: tekton.dev/v1beta1 |
| kind: Task |
| metadata: |
| name: karavan-quarkus-builder |
| spec: |
| params: |
| - name: project |
| type: string |
| steps: |
| - name: karavan-build-deploy |
| script: | |
| #!/usr/bin/env bash |
| CHECKOUT_DIR="/scripts" |
| |
| if [[ $GIT_REPOSITORY == https* ]] ; |
| then |
| replacer=https://$GIT_PASSWORD@ |
| prefix=https:// |
| url="${GIT_REPOSITORY/$prefix/$replacer}" |
| git clone --depth 1 --branch main $url ${CHECKOUT_DIR} |
| else |
| git clone --depth 1 --branch main ${GIT_REPOSITORY} ${CHECKOUT_DIR} |
| fi |
| |
| cd ${CHECKOUT_DIR}/$(inputs.params.project) |
| |
| entrypoint -Dcamel.jbang.version=3.18.1 camel@apache/camel export |
| |
| export LAST_COMMIT=$(git rev-parse --short HEAD) |
| export DATE=$(date '+%Y%m%d%H%M%S') |
| export TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token) |
| export NAMESPACE=$(cat /var/run/secrets/kubernetes.io/serviceaccount/namespace) |
| |
| /opt/mvnd/bin/mvnd package \ |
| -Dquarkus.container-image.build=true \ |
| -Dquarkus.container-image.push=true \ |
| -Dquarkus.container-image.insecure=true \ |
| -Dquarkus.container-image.username=sa \ |
| -Dquarkus.container-image.password=${TOKEN} \ |
| -Dquarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000 \ |
| -Dquarkus.container-image.builder=jib \ |
| -Dquarkus.kubernetes-client.master-url=kubernetes.default.svc \ |
| -Dquarkus.kubernetes-client.token=${TOKEN} \ |
| -Dquarkus.kubernetes.deploy=true \ |
| -Dquarkus.container-image.group=${NAMESPACE} \ |
| -Dquarkus.container-image.tag=${DATE} |
| image: 'ghcr.io/apache/camel-karavan-builder:3.18.1' |
| env: |
| - name: GIT_REPOSITORY |
| valueFrom: |
| secretKeyRef: |
| name: karavan |
| key: git-repository |
| - name: GIT_USERNAME |
| valueFrom: |
| secretKeyRef: |
| name: karavan |
| key: git-username |
| - name: GIT_PASSWORD |
| valueFrom: |
| secretKeyRef: |
| name: karavan |
| key: git-password |
| - name: rollout |
| image: >- |
| image-registry.openshift-image-registry.svc:5000/openshift/cli:latest |
| script: | |
| #!/usr/bin/env bash |
| oc rollout latest dc/$(inputs.params.project) |
| oc label dc/$(inputs.params.project) app.openshift.io/runtime=camel --overwrite=true |
| workspaces: |
| - mountPath: /root/.m2 |
| name: m2-cache |
| - mountPath: /jbang/.jbang/cache |
| name: jbang-cache |