--- apiVersion: argoproj.io/v1alpha1 kind: WorkflowTemplate metadata: name: util namespace: cicd-system spec: templates: - name: fetch-git inputs: parameters: - name: repo value: "" - name: ref value: "origin/master" - name: workingDir value: "/work" - name: workingPVC value: "" script: image: debian command: - dash source: | export DEBIAN_FRONTEND=noninteractive export GIT_WORK_TREE="{{inputs.parameters.workingDir}}" export GIT_DIR="$GIT_WORK_TREE/.git" apt update && apt install -y git git init git remote add origin "{{inputs.parameters.repo}}" git fetch origin -a git reset --hard "{{inputs.parameters.ref}}" volumeMounts: - name: workdir mountPath: "{{inputs.parameters.workingDir}}" volumes: - name: workdir persistentVolumeClaim: claimName: "{{inputs.parameters.workingPVC}}" - name: pvc-create inputs: parameters: - name: size value: 1Gi - name: storageClass value: longhorn - name: namePrefix value: argo- outputs: parameters: - name: name valueFrom: jsonPath: "{.metadata.name}" resource: action: create setOwnerReference: true manifest: | apiVersion: v1 kind: PersistentVolumeClaim metadata: generateName: "{{inputs.parameters.namePrefix}}" spec: storageClassName: "{{inputs.parameters.storageClass}}" accessModes: - ReadWriteMany resources: requests: storage: "{{inputs.parameters.size}}" - name: pvc-delete inputs: parametes: - name: name value: "" resource: action: delete manifest: | apiVersion: v1 kind: PersistentVolumeClaim metadata: name: "{{inputs.parameters.name}}" - name: qa-reuse inputs: parameters: - name: workingDir value: "/work" - name: workingPVC value: "" script: image: fsfe/reuse command: - sh source: | cd -- "{{inputs.parameters.workingDir}}" reuse lint volumeMounts: - name: workdir mountPath: "{{inputs.parameters.workingDir}}" volumes: - name: workdir persistentVolumeClaim: claimName: "{{inputs.parameters.workingPVC}}" ...