This commit is contained in:
2025-08-04 15:39:20 +09:00
parent e6c919ec2f
commit 8ffec5a5a7
5 changed files with 48 additions and 96 deletions

View File

@ -1,27 +1,36 @@
apiVersion: tekton.dev/v1beta1 apiVersion: tekton.dev/v1beta1
kind: Task kind: Task
metadata: metadata:
name: build-image name: build-docker-image
namespace: tekton-demo namespace: tekton-demo
spec: spec:
params: params:
- name: IMAGE - name: git-url
type: string
- name: git-revision
type: string
default: "main"
- name: image-url
type: string type: string
description: Image name to build
steps: steps:
- name: git-clone
image: alpine/git
script: |
#!/bin/sh
set -e
git clone $(params.git-url) source
cd source
git checkout $(params.git-revision)
- name: build-and-push - name: build-and-push
image: gcr.io/kaniko-project/executor:latest image: gcr.io/kaniko-project/executor:latest
args: env:
- "--dockerfile=/workspace/source/Dockerfile" - name: DOCKER_CONFIG
- "--context=/workspace/source/" value: /tekton/home/.docker/
- "--destination=$(params.IMAGE)" script: |
volumeMounts: #!/busybox/sh
- name: docker-config /kaniko/executor \
mountPath: /kaniko/.docker --dockerfile=./Dockerfile \
workspaces: --context=source \
- name: source --destination=$(params.image-url) \
volumes: --insecure \
- name: docker-config --insecure-push
secret:
secretName: harbor-dockerconfig

View File

@ -1,39 +0,0 @@
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: build-image
namespace: tekton-demo
spec:
params:
- name: IMAGE
type: string
description: Image name to build
- name: GIT_URL
type: string
- name: GIT_REVISION
type: string
default: main
steps:
- name: clone
image: alpine/git
script: |
#!/bin/sh
git clone $(params.GIT_URL) /workspace/source
cd /workspace/source
git checkout $(params.GIT_REVISION)
- name: build-and-push
image: gcr.io/kaniko-project/executor:latest
args:
- "--dockerfile=/workspace/source/Dockerfile"
- "--context=/workspace/source/"
- "--destination=$(params.IMAGE)"
volumeMounts:
- name: docker-config
mountPath: /kaniko/.docker
workspaces:
- name: source
volumes:
- name: docker-config
secret:
secretName: harbor-dockerconfig

View File

@ -1,31 +1,25 @@
apiVersion: tekton.dev/v1beta1 apiVersion: tekton.dev/v1beta1
kind: Pipeline kind: Pipeline
metadata: metadata:
name: pipeline-build name: docker-build-pipeline
namespace: tekton-demo namespace: tekton-demo
spec: spec:
params: params:
- name: IMAGE - name: git-url
type: string type: string
- name: GIT_URL - name: git-revision
type: string type: string
- name: GIT_REVISION default: "main"
- name: image-url
type: string type: string
default: main
workspaces:
- name: shared-data
tasks: tasks:
- name: build - name: build
taskRef: taskRef:
name: build-image name: build-docker-image
params: params:
- name: IMAGE - name: git-url
value: $(params.IMAGE) value: $(params.git-url)
- name: GIT_URL - name: git-revision
value: $(params.GIT_URL) value: $(params.git-revision)
- name: GIT_REVISION - name: image-url
value: $(params.GIT_REVISION) value: $(params.image-url)
workspaces:
- name: source
workspace: shared-data

View File

@ -1,12 +1,11 @@
apiVersion: triggers.tekton.dev/v1beta1 apiVersion: triggers.tekton.dev/v1beta1
kind: TriggerBinding kind: TriggerBinding
metadata: metadata:
name: gitea-trigger-binding name: docker-build-binding
namespace: tekton-demo namespace: tekton-demo
spec: spec:
params: params:
- name: git-url - name: git-url
value: $(body.repository.clone_url) value: $(body.repository.clone_url)
- name: git-revision - name: git-revision
value: $(body.ref) value: $(body.ref)

View File

@ -1,7 +1,7 @@
apiVersion: triggers.tekton.dev/v1beta1 apiVersion: triggers.tekton.dev/v1beta1
kind: TriggerTemplate kind: TriggerTemplate
metadata: metadata:
name: gitea-trigger-template name: docker-build-template
namespace: tekton-demo namespace: tekton-demo
spec: spec:
params: params:
@ -11,26 +11,15 @@ spec:
- apiVersion: tekton.dev/v1beta1 - apiVersion: tekton.dev/v1beta1
kind: PipelineRun kind: PipelineRun
metadata: metadata:
generateName: build-run- generateName: docker-build-run-
spec: spec:
serviceAccountName: tekton-build-sa serviceAccountName: tekton-build-sa
pipelineRef: pipelineRef:
name: pipeline-build name: docker-build-pipeline
params: params:
- name: IMAGE - name: git-url
value: $(tt.params.git-url)
- name: git-revision
value: $(tt.params.git-revision)
- name: image-url
value: harbor.icurfer.com/open/tekton-demo:latest value: harbor.icurfer.com/open/tekton-demo:latest
- name: GIT_URL
value: $(params.git-url)
- name: GIT_REVISION
value: $(params.git-revision)
workspaces:
- name: shared-data
volumeClaimTemplate:
metadata:
name: source-pvc
spec:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 1Gi