Fix: Fixing dependency error for Debian 12. #431
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Test new runtime and examples" | |
on: | |
push | |
jobs: | |
run_debian_11: | |
name: "Test new runtime on Droplet with Debian 11" | |
runs-on: ubuntu-latest | |
concurrency: droplet-aleph-vm-runtime | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
# Fetch the whole history for all tags and branches (required for aleph.__version__) | |
fetch-depth: 0 | |
- name: Workaround github issue https://github.com/actions/runner-images/issues/7192 | |
run: sudo echo RESET grub-efi/install_devices | sudo debconf-communicate grub-pc | |
- name: Install doctl | |
uses: digitalocean/action-doctl@v2 | |
with: | |
token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }} | |
- name: Setup SSH private key | |
run: | | |
mkdir ~/.ssh | |
echo $DIGITALOCEAN_SSH_PRIVATE_KEY | base64 --decode > ~/.ssh/id_ed25519 | |
chmod 0700 ~/.ssh | |
chmod 0600 ~/.ssh/id_ed25519 | |
env: | |
DIGITALOCEAN_SSH_PRIVATE_KEY: ${{ secrets.DIGITALOCEAN_SSH_PRIVATE_KEY }} | |
- name: Create the Droplet | |
run: | | |
doctl compute droplet create \ | |
--image debian-11-x64 \ | |
--size c-2 \ | |
--region fra1 \ | |
--vpc-uuid 992896c8-c089-4da3-9288-f81e28c095a4 \ | |
--enable-ipv6 \ | |
--ssh-keys b3:ff:08:7f:57:00:fd:7a:14:00:f2:35:0a:f6:e8:55 \ | |
aleph-vm-ci-runtime | |
- name: "Build custom runtime" | |
run: | | |
sudo apt update | |
sudo apt install -y debootstrap | |
cd runtimes/aleph-debian-11-python && sudo ./create_disk_image.sh && cd ../.. | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: aleph-debian-11-python.squashfs | |
path: runtimes/aleph-debian-11-python/rootfs.squashfs | |
- name: Build Debian Package | |
run: | | |
cd packaging && make all-podman-debian-11 && cd .. | |
ls packaging/target | |
- name: Wait for the system to setup and boot | |
run: | | |
export DROPLET_IPV4="$(doctl compute droplet get aleph-vm-ci-runtime --output json | ./.github/scripts/extract_droplet_ipv4.py)" | |
until ssh-keyscan -H ${DROPLET_IPV4}; do sleep 1; done | |
- name: Copy the runtime to the system | |
run: | | |
export DROPLET_IPV4="$(doctl compute droplet get aleph-vm-ci-runtime --output json | ./.github/scripts/extract_droplet_ipv4.py)" | |
ssh-keyscan -H ${DROPLET_IPV4} > ~/.ssh/known_hosts | |
scp runtimes/aleph-debian-11-python/rootfs.squashfs root@${DROPLET_IPV4}:/opt | |
- name: Install Aleph-VM on the Droplet | |
run: | | |
export DROPLET_IPV4="$(doctl compute droplet get aleph-vm-ci-runtime --output json | ./.github/scripts/extract_droplet_ipv4.py)" | |
ssh-keyscan -H ${DROPLET_IPV4} > ~/.ssh/known_hosts | |
ssh root@${DROPLET_IPV4} DEBIAN_FRONTEND=noninteractive "apt-get -o DPkg::Lock::Timeout=60 update" | |
ssh root@${DROPLET_IPV4} DEBIAN_FRONTEND=noninteractive "apt-get -o DPkg::Lock::Timeout=60 upgrade -y" | |
ssh root@${DROPLET_IPV4} DEBIAN_FRONTEND=noninteractive "apt-get -o DPkg::Lock::Timeout=60 install -y docker.io apparmor-profiles" | |
ssh root@${DROPLET_IPV4} "docker run -d -p 127.0.0.1:4021:4021/tcp --restart=always --name vm-connector alephim/vm-connector:alpha" | |
scp packaging/target/aleph-vm.debian-11.deb root@${DROPLET_IPV4}:/opt | |
scp -pr ./examples root@${DROPLET_IPV4}:/opt/ | |
ssh root@${DROPLET_IPV4} DEBIAN_FRONTEND=noninteractive "apt -o DPkg::Lock::Timeout=60 install -y /opt/aleph-vm.debian-11.deb" | |
ssh root@${DROPLET_IPV4} "echo ALEPH_VM_SUPERVISOR_HOST=0.0.0.0 >> /etc/aleph-vm/supervisor.env" | |
ssh root@${DROPLET_IPV4} "echo ALEPH_VM_FAKE_DATA_PROGRAM=/opt/examples/example_fastapi >> /etc/aleph-vm/supervisor.env" | |
ssh root@${DROPLET_IPV4} "echo ALEPH_VM_FAKE_DATA_RUNTIME=/opt/rootfs.squashfs >> /etc/aleph-vm/supervisor.env" | |
ssh root@${DROPLET_IPV4} "systemctl restart aleph-vm-supervisor" | |
- name: Test Aleph-VM on the Droplet | |
run: | | |
export DROPLET_IPV4="$(doctl compute droplet get aleph-vm-ci-runtime --output json | ./.github/scripts/extract_droplet_ipv4.py)" | |
sleep 3 | |
curl --retry 5 --max-time 10 --fail "http://${DROPLET_IPV4}:4020/about/usage/system" | |
curl --retry 5 --max-time 10 --fail "http://${DROPLET_IPV4}:4020/status/check/fastapi" | |
- name: Cleanup | |
if: always() | |
run: | | |
doctl compute droplet delete -f aleph-vm-ci-runtime |