diff options
Diffstat (limited to 'data.d/k3s-master/manifests.d/tyilnet/cicd-system/resources/workflow-templates/util-raku.yaml')
-rw-r--r-- | data.d/k3s-master/manifests.d/tyilnet/cicd-system/resources/workflow-templates/util-raku.yaml | 137 |
1 files changed, 131 insertions, 6 deletions
diff --git a/data.d/k3s-master/manifests.d/tyilnet/cicd-system/resources/workflow-templates/util-raku.yaml b/data.d/k3s-master/manifests.d/tyilnet/cicd-system/resources/workflow-templates/util-raku.yaml index cf6282b..64b6ad2 100644 --- a/data.d/k3s-master/manifests.d/tyilnet/cicd-system/resources/workflow-templates/util-raku.yaml +++ b/data.d/k3s-master/manifests.d/tyilnet/cicd-system/resources/workflow-templates/util-raku.yaml @@ -9,12 +9,31 @@ spec: - name: dist-fez inputs: parameters: + - name: fezUsernameSecret + value: "argo-credentials-fez" + - name: fezPasswordSecret + value: "argo-credentials-fez" + - name: fezUsernameSecretKey + value: "username" + - name: fezPasswordSecretKey + value: "password" - name: workingDir value: "/work" - name: workingPVC value: "" script: image: rakudo-star + env: + - name: FEZ_USERNAME + valueFrom: + secretKeyRef: + name: "{{inputs.parameters.fezUsernameSecret}}" + key: "{{inputs.parameters.fezUsernameSecretKey}}" + - name: FEZ_PASSWORD + valueFrom: + secretKeyRef: + name: "{{inputs.parameters.fezPasswordSecret}}" + key: "{{inputs.parameters.fezPasswordSecretKey}}" command: - sh source: | @@ -31,14 +50,25 @@ spec: spawn fez login expect ">>= Username*" { - send -- "tyil\r" + send -- "$FEZ_USERNAME\r" } expect ">>= Password*" { - send -- "gvo8xeORGDmm1ktqJPqHG86987L46vuE94Mw1LEu4rUZc5s9siYhnq5sXDC4\r" + log_user 0 + send -- "$FEZ_PASSWORD\r" + log_user 1 + } + + expect { + eof { + exit 0 + } + + "*Failed to login*" { + exit 1 + } } - expect eof EOF printf "\n" @@ -46,15 +76,110 @@ spec: expect <<-EOF set timeout 60 - spawn fez upload + spawn fez upload -f expect { "Upload anyway*" { send -- "n\r" + exit 1 + } + eof { + exit 0 + } + } + EOF + volumeMounts: + - name: workdir + mountPath: "{{inputs.parameters.workingDir}}" + volumes: + - name: workdir + persistentVolumeClaim: + claimName: "{{inputs.parameters.workingPVC}}" + + - name: qa-fez + inputs: + parameters: + - name: fezUsernameSecret + value: "argo-credentials-fez" + - name: fezPasswordSecret + value: "argo-credentials-fez" + - name: fezUsernameSecretKey + value: "username" + - name: fezPasswordSecretKey + value: "password" + - name: workingDir + value: "/work" + - name: workingPVC + value: "" + script: + image: rakudo-star + env: + - name: FEZ_USERNAME + valueFrom: + secretKeyRef: + name: "{{inputs.parameters.fezUsernameSecret}}" + key: "{{inputs.parameters.fezUsernameSecretKey}}" + - name: FEZ_PASSWORD + valueFrom: + secretKeyRef: + name: "{{inputs.parameters.fezPasswordSecret}}" + key: "{{inputs.parameters.fezPasswordSecretKey}}" + command: + - sh + source: | + cd -- "{{inputs.parameters.workingDir}}" + + set -x + + apt update && apt install -y expect + zef install fez --exclude="z" + + expect <<-EOF + set timeout 30 + log_user 0 + + spawn fez login + + expect ">>= Username*" { + send -- "$FEZ_USERNAME\r" + } + + expect ">>= Password*" { + send -- "$FEZ_PASSWORD\r" + } + + expect { + eof { + exit 0 + } + + "*Failed to login*" { + exit 1 + } + } + EOF + + printf "\n" + + expect <<-EOF + set timeout 60 + + spawn fez upload --dry-run + + expect { + "*ERROR*" { + exit 1 + } + + eof { + exit 0 } - eof { } } EOF + fez_exit=$? + + rm -fr -- sdist # Who in their right mind leaves trash on a dry-run + exit $fez_exit volumeMounts: - name: workdir mountPath: "{{inputs.parameters.workingDir}}" @@ -63,7 +188,7 @@ spec: persistentVolumeClaim: claimName: "{{inputs.parameters.workingPVC}}" - - name: prove + - name: qa-prove inputs: parameters: - name: workingDir |