2024-10-18 14:26:36 +02:00
apiVersion : argoproj.io/v1alpha1
kind : Workflow
metadata :
generateName : example-ci-workflow-
namespace : argo
labels :
workflows.argoproj.io/archive-strategy : "false"
annotations :
workflows.argoproj.io/description : |
This is a simple workflow to show what steps we need to take to deploy an application.
spec :
entrypoint : ci
serviceAccountName : admin
2024-10-22 16:06:32 +02:00
volumeClaimTemplates :
- metadata :
name : shared-data
spec :
2024-10-23 15:14:37 +02:00
accessModes : [ "ReadWriteOnce" ]
2024-10-22 16:06:32 +02:00
resources :
requests :
storage : 1Gi
2024-10-23 15:14:37 +02:00
volumes :
- name : docker-config
secret :
secretName : my-docker-secret
2024-10-18 14:26:36 +02:00
templates :
- name : ci
dag :
tasks :
- name : git-clone
2024-10-22 16:06:32 +02:00
template : git-clone
2024-10-18 14:26:36 +02:00
arguments :
parameters : [ {name: message, value : "git-clone task completed" }]
- name : ls
template : ls
dependencies : [ git-clone]
- name : build
2024-10-22 16:06:32 +02:00
template : build
2024-10-18 14:26:36 +02:00
arguments :
parameters : [ {name: message, value : "build task completed" }]
dependencies : [ unit-tests, lint-scan]
- name : unit-tests
template : simple-container
arguments :
parameters : [ {name: message, value : "unit-tests task completed" }]
dependencies : [ ls]
- name : lint-scan
template : simple-container
arguments :
parameters : [ {name: message, value : "lint-scan task completed" }]
dependencies : [ ls]
- name : trivy-image-scan
template : simple-container
arguments :
parameters : [ {name: message, value : "trivy-image-scan task completed" }]
dependencies : [ build]
- name : trivy-filesystem-scan
template : simple-container
arguments :
parameters : [ {name: message, value : "trivy-filesystem-scan task completed" }]
dependencies : [ git-clone]
- name : push-image
template : simple-container
arguments :
parameters : [ {name: message, value : "push-image task completed" }]
# when: " == true"
dependencies : [ trivy-image-scan, trivy-filesystem-scan]
- name : simple-container
inputs :
parameters :
- name : message
container :
image : alpine:latest
command : [ sh, -c]
args : [ "echo {{inputs.parameters.message}}" ]
- name : ls
container :
image : alpine:latest
command : [ sh, -c]
2024-10-21 13:29:04 +02:00
args : [ ls /]
- name : git-clone
2024-10-22 16:06:32 +02:00
container :
image : ubuntu:latest
command : [ sh, -c]
args :
- |
apt update
apt install -y git
2024-10-23 15:14:37 +02:00
git clone -b main http://forgejo-http.gitea.svc.cluster.local:3000/giteaAdmin/fibonacci_go.git /shared-data/repo
2024-10-22 16:06:32 +02:00
ls -la /
ls -la /shared-data
2024-10-23 15:14:37 +02:00
ls -la /shared-data/repo
2024-10-22 16:06:32 +02:00
volumeMounts :
- name : shared-data
mountPath : /shared-data
- name : build
container :
2024-10-23 15:14:37 +02:00
image : gcr.io/kaniko-project/executor:v1.23.2
args :
[
"--dockerfile=/shared-data/repo/Dockerfile" ,
"--context=/shared-data/repo/" ,
"--destination=forgejo-http.gitea.svc.cluster.local:3000/giteaadmin/fibonacci_go:latest"
]
2024-10-22 16:06:32 +02:00
volumeMounts :
2024-10-23 15:14:37 +02:00
- name : shared-data
mountPath : /shared-data
- name : docker-config
mountPath : /kaniko/.docker
2024-10-21 13:29:04 +02:00