From 7d15e4c8b63d0f95b7018ebb3ac997c4b5351a21 Mon Sep 17 00:00:00 2001 From: "franz.germann1" Date: Thu, 24 Oct 2024 13:35:21 +0200 Subject: [PATCH] adds lint-scan template --- argo-workflows/example-ci-workflow.yaml | 246 +++++++++++++----------- simple-job.yaml | 6 - 2 files changed, 131 insertions(+), 121 deletions(-) delete mode 100644 simple-job.yaml diff --git a/argo-workflows/example-ci-workflow.yaml b/argo-workflows/example-ci-workflow.yaml index 260d7b7..3c14ba7 100644 --- a/argo-workflows/example-ci-workflow.yaml +++ b/argo-workflows/example-ci-workflow.yaml @@ -12,122 +12,138 @@ spec: entrypoint: ci serviceAccountName: admin volumeClaimTemplates: - - metadata: - name: shared-data - spec: - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: 1Gi + - metadata: + name: shared-data + spec: + accessModes: ["ReadWriteOnce"] + resources: + requests: + storage: 1Gi volumes: - - name: docker-config - secret: - secretName: my-docker-secret + - name: docker-config + secret: + secretName: my-docker-secret templates: - - name: ci - dag: - tasks: - - name: git-clone - template: git-clone - arguments: - parameters: [{name: message, value: "git-clone task completed"}] - - name: ls - template: ls - dependencies: [git-clone] - - name: build - template: build - arguments: - parameters: [{name: message, value: "build task completed"}] - dependencies: [unit-tests, lint-scan] - - name: unit-tests - template: unit-tests - 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: ci + dag: + tasks: + - name: git-clone + template: git-clone + arguments: + parameters: [{ name: message, value: "git-clone task completed" }] + - name: ls + template: ls + dependencies: [git-clone] + - name: build + template: build + arguments: + parameters: [{ name: message, value: "build task completed" }] + dependencies: [unit-tests, lint-scan] + - name: unit-tests + template: unit-tests + arguments: + parameters: + [{ name: message, value: "unit-tests task completed" }] + dependencies: [ls] + - name: lint-scan + template: lint-scan + 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: ls - container: - image: alpine:latest - command: [sh, -c] - args: [ls /] - - - name: git-clone - container: - image: ubuntu:latest - command: [sh, -c] - args: - - | - apt update - apt install -y git - git clone -b main http://forgejo-http.gitea.svc.cluster.local:3000/giteaAdmin/fibonacci_go.git /shared-data/repo - ls -la / - ls -la /shared-data - ls -la /shared-data/repo - volumeMounts: - - name: shared-data - mountPath: /shared-data - - - name: build - container: - image: gcr.io/kaniko-project/executor:v1.23.2 - args: - [ - "--dockerfile=/shared-data/repo/Dockerfile", - "--context=/shared-data/repo/", - "--destination=gitea.cnoe.localtest.me/giteaadmin/fibonacci_go:latest", - "--registry-certificate", - "gitea.cnoe.localtest.me=/shared-data/repo/tls/gitea.cnoe.localtest.me.crt" - ] - volumeMounts: - - name: shared-data - mountPath: /shared-data - - name: docker-config - mountPath: /kaniko/.docker + - name: simple-container + inputs: + parameters: + - name: message + container: + image: alpine:latest + command: [sh, -c] + args: ["echo {{inputs.parameters.message}}"] - - name: unit-tests - container: - image: golang:1.23.2 - command: [sh, -c] - args: - - | - cd /shared-data/repo && \ - go test ./... -v > test-results.txt; \ - cat test-results.txt - volumeMounts: - - name: shared-data - mountPath: /shared-data - # How to extract artifacts - outputs: - artifacts: - - name: test-results - path: /shared-data/repo/test-results.txt \ No newline at end of file + - name: ls + container: + image: alpine:latest + command: [sh, -c] + args: [ls /] + + - name: git-clone + container: + image: ubuntu:latest + command: [sh, -c] + args: + - | + apt update + apt install -y git + git clone -b main https://forgejo.edf-bootstrap.cx.fg1.ffm.osc.live/Franz.Germann/fibonacci_go.git /shared-data/repo + ls -la / + ls -la /shared-data + ls -la /shared-data/repo + volumeMounts: + - name: shared-data + mountPath: /shared-data + + - name: build + container: + image: gcr.io/kaniko-project/executor:v1.23.2 + args: + [ + "--dockerfile=/shared-data/repo/Dockerfile", + "--context=/shared-data/repo/", + "--destination=forgejo.edf-bootstrap.cx.fg1.ffm.osc.live/franz.germann/fibonacci_go:latest", + ] + volumeMounts: + - name: shared-data + mountPath: /shared-data + - name: docker-config + mountPath: /kaniko/.docker + + - name: unit-tests + container: + image: golang:1.23.2 + command: [sh, -c] + args: + - | + cd /shared-data/repo && \ + go test ./... -v > test-results.txt; \ + cat test-results.txt + volumeMounts: + - name: shared-data + mountPath: /shared-data + # How to extract artifacts + + - name: lint-scan + container: + image: golangci/golangci-lint:v1.61.0 + command: [sh, -c] + args: + - | + cd /shared-data/repo && \ + golangci-lint run ./... --out-format=json --timeout 5m > lint-results.json; \ + cat lint-results.json + volumeMounts: + - name: shared-data + mountPath: /shared-data diff --git a/simple-job.yaml b/simple-job.yaml deleted file mode 100644 index 21280bd..0000000 --- a/simple-job.yaml +++ /dev/null @@ -1,6 +0,0 @@ -on: [push] -jobs: - test: - runs-on: docker - steps: - - run: echo All Good \ No newline at end of file