Successfully deploy working artifacts to S3

This commit is contained in:
Radon Rosborough 2020-12-23 21:15:40 -08:00
parent 78d1a28b53
commit f544ae6c16
7 changed files with 23 additions and 15 deletions

View File

@ -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

View File

@ -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 "$@"

View File

@ -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/*

View File

@ -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 "$@"

0
docker/runtime/install.bash Normal file → Executable file
View File

0
docker/runtime/pid1.bash Normal file → Executable file
View File

View File

@ -28,9 +28,11 @@ Architecture: amd64
Maintainer: Radon Rosborough <radon.neon@gmail.com>
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 <<EOF > "\${pkg}/DEBIAN/control"