apiVersion: tekton.dev/v1beta1 kind: Pipeline metadata: name: build-and-deploy-pipeline spec: tasks: - name: clone-repo taskRef: name: git-clone params: - name: url value: "https://gitea.example.com/yourorg/yourrepo.git" - name: revision value: "main" # or any branch or tag - name: get-git-commit-hash taskSpec: steps: - name: get-commit-hash image: busybox script: | #!/bin/sh # Get the current Git commit hash COMMIT_HASH=$(git rev-parse --short HEAD) echo "COMMIT_HASH=$COMMIT_HASH" > $(results.commit-hash.path) results: - name: commit-hash description: The short Git commit hash - name: build-image taskRef: name: kaniko params: - name: IMAGE value: "harbor.example.com/myproject/myapp:$(results.commit-hash.commit-hash)" - name: CONTEXT value: "$(resources.clone-repo.results.git-dir)" - name: DOCKERFILE value: "$(resources.clone-repo.results.git-dir)/Dockerfile" - name: REGISTRY value: "harbor.example.com" resources: inputs: - name: clone-repo resource: clone-repo - name: push-image taskRef: name: kaniko-push params: - name: IMAGE value: "harbor.example.com/myproject/myapp:$(results.commit-hash.commit-hash)" - name: REGISTRY value: "harbor.example.com" resources: inputs: - name: build-image resource: build-image - name: trigger-argocd taskRef: name: argocd-sync params: - name: app-name value: "myapp" - name: project value: "myproject" - name: sync-options value: "--prune --retry"