j7s-ci/j7s-os/j7s-os-pipeline.yaml

81 lines
2.1 KiB
YAML

# A pipeline to build j7s-os images.
# Steps:
# Clone the j7s-os repo from onedev.
# Call make <> in the repo.
# Build and push a new deployment container.
# Deploy the deployment container as a service.
---
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: j7s-os-pipeline
namespace: j7s-ci
spec:
description: Build and deploy j7s-os images.
params:
- name: make-image-name
type: string
description: The name of image to make in the os repo.
- name: branch
type: string
default: main
description: branch of j7s-os image to build.
workspaces:
- name: shared-data
description: Shared data.
- name: git-credentials
description: Tekton's ssh credentials
tasks:
- name: fetch-repo
workspaces:
- name: output
workspace: shared-data
- name: ssh-directory
workspace: git-credentials
params:
- name: url
value: ssh://git@git.jpace121.net:2222/public/j7s-os.git
- name: branch
value: $(params.branch)
taskRef:
name: j7s-git-clone
- name: image-build
runAfter: ["fetch-repo"]
workspaces:
- name: source
workspace: shared-data
params:
- name: image-name
value: $(params.make-image-name)
taskRef:
name: j7s-os-image-build
- name: build-deploy-image
runAfter: ["image-build"]
workspaces:
- name: source
workspace: shared-data
params:
- name: commit
value: $(params.make-image-name)
- name: image
value: j7s-os-deploy
- name: registry
value: harbor.internal.jpace121.net/library
- name: version
value: $(tasks.image-build.results.version-string)
- name: registry-login-secret-name
value: harbor-login
taskRef:
name: j7s-os-buildah
- name: deploy-image
runAfter: ["build-deploy-image"]
workspaces:
- name: ssh-directory
workspace: git-credentials
params:
- name: image
value: harbor.internal.jpace121.net/library/j7s-os-deploy
- name: version
value: $(tasks.image-build.results.version-string)
taskRef:
name: j7s-os-k8s-deploy