From f544ae6c16355ec53b16e50b4d8b18a87f412c05 Mon Sep 17 00:00:00 2001 From: Radon Rosborough Date: Wed, 23 Dec 2020 21:15:40 -0800 Subject: [PATCH] Successfully deploy working artifacts to S3 --- Makefile | 14 ++++++++++---- docker/admin/pid1.bash | 10 +++++----- docker/packaging/install.bash | 2 +- docker/packaging/pid1.bash | 8 ++++---- docker/runtime/install.bash | 0 docker/runtime/pid1.bash | 0 src/packager/make-script.js | 4 +++- 7 files changed, 23 insertions(+), 15 deletions(-) mode change 100644 => 100755 docker/runtime/install.bash mode change 100644 => 100755 docker/runtime/pid1.bash diff --git a/Makefile b/Makefile index e3032b9..3353a56 100644 --- a/Makefile +++ b/Makefile @@ -9,8 +9,8 @@ export BUILD := build/$(T)/$(L) DEB := riju-$(T)-$(L).deb S3_DEBS := s3://$(S3_BUCKET_BASE)-debs -S3_DEB := $(S3_DEBS)/debs/$(T)/$(L)/$(DEB) -S3_HASH := $(S3_DEBS)/hashes/$(T)/$(L)/riju-$(T)-$(L).sha1 +S3_DEB := $(S3_DEBS)/debs/$(DEB) +S3_HASH := $(S3_DEBS)/hashes/riju-$(T)-$(L) .PHONY: help help: @@ -43,7 +43,7 @@ app-image: script: @: $${L} $${T} mkdir -p $(BUILD) - node src/packager/make-script --lang $(L) --type $(T) > $(BUILD)/build.bash + node src/packager/make-script.js --lang $(L) --type $(T) > $(BUILD)/build.bash chmod +x $(BUILD)/build.bash .PHONY: pkg @@ -68,6 +68,12 @@ packaging-shell: runtime-shell: docker run -it --rm -v $(PWD):/src riju-runtime +.PHONY: install +install: + @: $${L} $${T} + [[ -z "$$(ls -A /var/lib/apt/lists)" ]] && sudo apt update + sudo apt reinstall -y ./$(BUILD)/$(DEB) + ### Fetch things from registries .PHONY: fetch-packaging-image @@ -117,7 +123,7 @@ publish-app-image: .PHONY: publish-pkg publish-pkg: @: $${L} $${T} $${S3_BUCKET_BASE} - aws s3 cp <(dpkg-deb -f $(BUILD)/$(DEB) Riju-Script-Hash) $(S3_HASH) + hash=$$(dpkg-deb -f $(BUILD)/$(DEB) Riju-Script-Hash); test $${hash}; aws s3 cp - $(S3_HASH)/$${hash} < /dev/null aws s3 cp $(BUILD)/$(DEB) $(S3_DEB) ### Miscellaneous diff --git a/docker/admin/pid1.bash b/docker/admin/pid1.bash index bd3162e..412e3c9 100755 --- a/docker/admin/pid1.bash +++ b/docker/admin/pid1.bash @@ -2,10 +2,10 @@ set -euo pipefail -groupadd -g "$(stat -c %g "$PWD")" -o -p '!' -r riju -useradd -u "$(stat -c %u "$PWD")" -g "$(stat -c %g "$PWD")" -o -m -N -l -s /usr/bin/bash -G sudo riju +groupadd -g "$(stat -c %g "$PWD")" -o -p '!' -r riju-admin +useradd -u "$(stat -c %u "$PWD")" -g "$(stat -c %g "$PWD")" -o -m -N -l -s /usr/bin/bash -G sudo riju-admin -runuser -u riju -- touch /home/riju/.sudo_as_admin_successful -runuser -u riju -- ln -sT /var/riju/.aws /home/riju/.aws +runuser -u riju-admin -- touch /home/riju-admin/.sudo_as_admin_successful +runuser -u riju-admin -- ln -sT /var/riju/.aws /home/riju-admin/.aws -exec runuser -u riju "$@" +exec runuser -u riju-admin "$@" diff --git a/docker/packaging/install.bash b/docker/packaging/install.bash index b8ba126..34619ae 100755 --- a/docker/packaging/install.bash +++ b/docker/packaging/install.bash @@ -23,7 +23,7 @@ deb https://dl.yarnpkg.com/debian/ stable main EOF apt-get update -apt-get install -y fakeroot less make man nodejs sudo yarn +apt-get install -y fakeroot less make man nodejs sudo unzip wget yarn rm -rf /var/lib/apt/lists/* diff --git a/docker/packaging/pid1.bash b/docker/packaging/pid1.bash index 0689f59..d362bde 100755 --- a/docker/packaging/pid1.bash +++ b/docker/packaging/pid1.bash @@ -2,9 +2,9 @@ set -euo pipefail -groupadd -g "$(stat -c %g "$PWD")" -o -p '!' -r riju -useradd -u "$(stat -c %u "$PWD")" -g "$(stat -c %g "$PWD")" -o -m -N -l -s /usr/bin/bash -G sudo riju +groupadd -g "$(stat -c %g "$PWD")" -o -p '!' -r riju-packager +useradd -u "$(stat -c %u "$PWD")" -g "$(stat -c %g "$PWD")" -o -m -N -l -s /usr/bin/bash -G sudo riju-packager -runuser -u riju touch /home/riju/.sudo_as_admin_successful +runuser -u riju-packager touch /home/riju-packager/.sudo_as_admin_successful -exec runuser -u riju "$@" +exec runuser -u riju-packager "$@" diff --git a/docker/runtime/install.bash b/docker/runtime/install.bash old mode 100644 new mode 100755 diff --git a/docker/runtime/pid1.bash b/docker/runtime/pid1.bash old mode 100644 new mode 100755 diff --git a/src/packager/make-script.js b/src/packager/make-script.js index a5c3b67..3273d10 100644 --- a/src/packager/make-script.js +++ b/src/packager/make-script.js @@ -28,9 +28,11 @@ Architecture: amd64 Maintainer: Radon Rosborough Description: The ${name} language packaged for Riju`; if (apt.length > 0) { - debianControlData += `\ + debianControlData += ` Depends: ${apt.join(", ")}`; } + debianControlData += ` +Riju-Script-Hash: \$(sha1sum "\$0" | awk '{ print \$1 }')`; parts.push(`\ install -d "\${pkg}/DEBIAN" cat < "\${pkg}/DEBIAN/control"