Execute script in subshell located in folder

Better handling of white spaces in input.
Add test for creation of build jobs without sha256sum input.
This commit is contained in:
erik 2022-11-11 15:10:47 +01:00
parent 5bd0eb88bc
commit 70f356a1a9
4 changed files with 35 additions and 5 deletions

View file

@ -8,7 +8,7 @@ function get-and-unzip-website-data() {
function execute-scripts-when-existing { function execute-scripts-when-existing {
websitedir=$(ls $BUILDDIR) websitedir=$(ls $BUILDDIR)
if [[ -e $BUILDDIR/$websitedir/$SCRIPTFILE ]] if [[ -f $BUILDDIR/$websitedir/$SCRIPTFILE ]]
then then
checksum="$(sha256sum $BUILDDIR/$websitedir/$SCRIPTFILE)" checksum="$(sha256sum $BUILDDIR/$websitedir/$SCRIPTFILE)"
if [[ "$SHA256SUM" == "$checksum" ]] if [[ "$SHA256SUM" == "$checksum" ]]
@ -22,7 +22,7 @@ function execute-scripts-when-existing {
exit 1 exit 1
fi fi
else else
prinf "No script file provided, exiting." printf "No script file provided, exiting."
exit 0 exit 0
fi fi
} }

View file

@ -2,7 +2,7 @@
apt update > /dev/null; apt update > /dev/null;
apt install -y unzip rsync imagemagick apt install -y unzip rsync
mkdir /etc/lein/ mkdir /etc/lein/

View file

@ -47,11 +47,15 @@
(defn-spec get-hash-from-sha256sum-output string? (defn-spec get-hash-from-sha256sum-output string?
[sha256sum-output string?] [sha256sum-output string?]
(first (st/split sha256sum-output #" "))) (if (nil? sha256sum-output)
nil
(first (st/split sha256sum-output #"\ +"))))
(defn-spec get-file-name-from-sha256sum-output string? (defn-spec get-file-name-from-sha256sum-output string?
[sha256sum-output string?] [sha256sum-output string?]
(second (st/split sha256sum-output #" "))) (if (nil? sha256sum-output)
nil
(second (st/split (st/trim sha256sum-output) #"\ +"))))
(defn-spec replace-dots-by-minus string? (defn-spec replace-dots-by-minus string?
[fqdn pred/fqdn-string?] [fqdn pred/fqdn-string?]

View file

@ -230,6 +230,32 @@
:branchname "main", :branchname "main",
:unique-name "test.io"})))) :unique-name "test.io"}))))
(deftest should-generate-website-initial-build-job-without-script-file
(is (= {:apiVersion "batch/v1",
:kind "Job",
:metadata {:name "test-io-initial-build-job", :labels {:app.kubernetes.part-of "test-io-website"}},
:spec
{:template
{:spec
{:containers
[{:image "domaindrivenarchitecture/c4k-website-build",
:name "test-io-build-app",
:imagePullPolicy "IfNotPresent",
:command ["/entrypoint.sh"],
:envFrom [{:secretRef {:name "test-io-secret"}}],
:env [{:name "SHA256SUM", :value nil} {:name "SCRIPTFILE", :value nil}],
:volumeMounts [{:name "content-volume", :mountPath "/var/www/html/website"}]}],
:volumes [{:name "content-volume", :persistentVolumeClaim {:claimName "test-io-content-volume"}}],
:restartPolicy "OnFailure"}}}}
(cut/generate-website-initial-build-job {:authtoken "abedjgbasdodj",
:gitea-host "gitlab.de",
:username "someuser",
:fqdns ["test.de" "test.org" "www.test.de" "www.test.org"],
:gitea-repo "repo",
:issuer "staging",
:branchname "main",
:unique-name "test.io"}))))
(deftest should-generate-website-build-secret (deftest should-generate-website-build-secret
(is (= {:name-c1 "test-io-secret", (is (= {:name-c1 "test-io-secret",
:name-c2 "test-org-secret", :name-c2 "test-org-secret",