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 :
accessModes : [ "ReadWriteOnce" ]
resources :
requests :
storage : 1Gi
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
GIT_SSL_NO_VERIFY=true git clone -b main https://gitea.cnoe.localtest.me/giteaAdmin/fibonacci_go.git /shared-data/repo
ls -la /
ls -la /shared-data
volumeMounts :
- name : shared-data
mountPath : /shared-data
- name : build
container :
2024-10-23 11:05:26 +02:00
image : docker:latest
2024-10-22 16:06:32 +02:00
command : [ sh, -c]
args :
- |
ls -la /
ls -la /shared-data
2024-10-23 11:05:26 +02:00
cd /shared-data/repo
docker build . -t fibonacci_go
docker tag fibonacci_go forgejo.edf-bootstrap.cx.fg1.ffm.osc.live/devfw/fibonacci_go:latest
docker login ...
docker push ...
2024-10-22 16:06:32 +02:00
volumeMounts :
- name : shared-data
mountPath : /shared-data
2024-10-21 13:29:04 +02:00