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
kind: Task
metadata:
name: build-image
name: build-docker-image
namespace: tekton-demo
spec:
params:
- name: IMAGE
- name: git-url
type: string
- name: git-revision
type: string
default: "main"
- name: image-url
type: string
description: Image name to build
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
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
env:
- name: DOCKER_CONFIG
value: /tekton/home/.docker/
script: |
#!/busybox/sh
/kaniko/executor \
--dockerfile=./Dockerfile \
--context=source \
--destination=$(params.image-url) \
--insecure \
--insecure-push

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
kind: Pipeline
metadata:
name: pipeline-build
name: docker-build-pipeline
namespace: tekton-demo
spec:
params:
- name: IMAGE
- name: git-url
type: string
- name: GIT_URL
- name: git-revision
type: string
- name: GIT_REVISION
default: "main"
- name: image-url
type: string
default: main
workspaces:
- name: shared-data
tasks:
- name: build
taskRef:
name: build-image
name: build-docker-image
params:
- name: IMAGE
value: $(params.IMAGE)
- name: GIT_URL
value: $(params.GIT_URL)
- name: GIT_REVISION
value: $(params.GIT_REVISION)
workspaces:
- name: source
workspace: shared-data
- name: git-url
value: $(params.git-url)
- name: git-revision
value: $(params.git-revision)
- name: image-url
value: $(params.image-url)

View File

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

View File

@ -1,7 +1,7 @@
apiVersion: triggers.tekton.dev/v1beta1
kind: TriggerTemplate
metadata:
name: gitea-trigger-template
name: docker-build-template
namespace: tekton-demo
spec:
params:
@ -11,26 +11,15 @@ spec:
- apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
generateName: build-run-
generateName: docker-build-run-
spec:
serviceAccountName: tekton-build-sa
pipelineRef:
name: pipeline-build
name: docker-build-pipeline
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
- 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