Skip to content

Commit

Permalink
fixup! WIP: Use a Matrix for CI
Browse files Browse the repository at this point in the history
  • Loading branch information
hoh committed Oct 10, 2023
1 parent 361b554 commit 9073f9e
Showing 1 changed file with 17 additions and 17 deletions.
34 changes: 17 additions & 17 deletions .github/workflows/test-on-droplets-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ on:

jobs:
run_on_droplet:
name: "Run in DigitalOcean Droplet with ${{ matrix.os_name }}"
name: "Run in DigitalOcean Droplet with ${{ matrix.os_config.os_name }}"
runs-on: ubuntu-latest
concurrency: "${{ matrix.concurrency_group }}-${{ matrix.check_vm_alias }}"
concurrency: "${{ matrix.os_config.concurrency_group }}-${{ matrix.check_vm.alias }}"
timeout-minutes: 10

strategy:
Expand Down Expand Up @@ -38,10 +38,10 @@ jobs:

# Check compatibility with all supported runtimes.
check_vm:
- check_vm_alias: "runtime-6770" # Old runtime, using Debian 11
check_vm_id: "67705389842a0a1b95eaa408b009741027964edc805997475e95c505d642edd8"
- check_vm_alias: "runtime-3fc0" # New runtime, using Debian 12
check_vm_id: "3fc0aa9569da840c43e7bd2033c3c580abb46b007527d6d20f2d4e98e867f7af"
- alias: "runtime-6770" # Old runtime, using Debian 11
item_hash: "67705389842a0a1b95eaa408b009741027964edc805997475e95c505d642edd8"
- alias: "runtime-3fc0" # New runtime, using Debian 12
item_hash: "3fc0aa9569da840c43e7bd2033c3c580abb46b007527d6d20f2d4e98e867f7af"

steps:
- name: Checkout repository
Expand All @@ -66,59 +66,59 @@ jobs:
- name: Create the Droplet
run: |
doctl compute droplet create \
--image ${{ matrix.os_image }} \
--image ${{ matrix.os_config.os_image }} \
--size c-4 \
--region ams3 \
--vpc-uuid 5976b7bd-4417-49e8-8522-672aaa920c30 \
--enable-ipv6 \
--ssh-keys b3:ff:08:7f:57:00:fd:7a:14:00:f2:35:0a:f6:e8:55 \
aleph-vm-ci-${{ matrix.os_name }}-${{ matrix.check_vm_alias }}
aleph-vm-ci-${{ matrix.os_config.os_name }}-${{ matrix.check_vm.alias }}
- name: Build Package
run: |
cd packaging && make ${{ matrix.package_build_command }} && cd ..
cd packaging && make ${{ matrix.os_config.package_build_command }} && cd ..
ls packaging/target
- name: Wait for the system to setup and boot
run: |
export DROPLET_IPV4="$(doctl compute droplet get ${{ matrix.droplet_prefix }} --output json | ./.github/scripts/extract_droplet_ipv4.py)"
export DROPLET_IPV4="$(doctl compute droplet get ${{ matrix.os_config.droplet_prefix }} --output json | ./.github/scripts/extract_droplet_ipv4.py)"
until ssh-keyscan -H ${DROPLET_IPV4}; do sleep 1; done
timeout-minutes: 3

- name: Install Aleph-VM on the Droplet
run: |
export DROPLET_IPV4="$(doctl compute droplet get ${{ matrix.droplet_prefix }} --output json | ./.github/scripts/extract_droplet_ipv4.py)"
export DROPLET_IPV4="$(doctl compute droplet get ${{ matrix.os_config.droplet_prefix }} --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 update"
ssh root@${DROPLET_IPV4} DEBIAN_FRONTEND=noninteractive "apt-get upgrade -y"
ssh root@${DROPLET_IPV4} DEBIAN_FRONTEND=noninteractive "apt-get 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/${{ matrix.package_name }} root@${DROPLET_IPV4}:/opt
ssh root@${DROPLET_IPV4} DEBIAN_FRONTEND=noninteractive "apt install -y /opt/${{ matrix.package_name }}"
scp packaging/target/${{ matrix.os_config.package_name }} root@${DROPLET_IPV4}:/opt
ssh root@${DROPLET_IPV4} DEBIAN_FRONTEND=noninteractive "apt install -y /opt/${{ matrix.os_config.package_name }}"
# Allow some time for IPFS Kubo to start
sleep 5
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_ALLOCATION_TOKEN_HASH=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 >> /etc/aleph-vm/supervisor.env"
ssh root@${DROPLET_IPV4} "echo ALEPH_VM_CHECK_FASTAPI_VM_ID=${{ matrix.check_vm_id }} >> /etc/aleph-vm/supervisor.env"
ssh root@${DROPLET_IPV4} "echo ALEPH_VM_CHECK_FASTAPI_VM_ID=${{ matrix.check_vm.item_hash }} >> /etc/aleph-vm/supervisor.env"
ssh root@${DROPLET_IPV4} "echo ALEPH_VM_SENTRY_DSN=${{ secrets.SENTRY_DSN }} >> /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 ${{ matrix.droplet_prefix }} --output json | ./.github/scripts/extract_droplet_ipv4.py)"
export DROPLET_IPV4="$(doctl compute droplet get ${{ matrix.os_config.droplet_prefix }} --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: Schedule an instance on the Droplet by faking a call from the scheduler
run: |
export DROPLET_IPV4="$(doctl compute droplet get ${{ matrix.droplet_prefix }} --output json | ./.github/scripts/extract_droplet_ipv4.py)"
export DROPLET_IPV4="$(doctl compute droplet get ${{ matrix.os_config.droplet_prefix }} --output json | ./.github/scripts/extract_droplet_ipv4.py)"
curl --retry 5 --max-time 10 --fail -X POST -H "Content-Type: application/json" \
-H "X-Auth-Signature: test" \
-d '{"persistent_vms": [], "instances": ["67705389842a0a1b95eaa408b009741027964edc805997475e95c505d642edd8"]}' \
Expand All @@ -127,4 +127,4 @@ jobs:
- name: Cleanup
if: always()
run: |
doctl compute droplet delete -f ${{ matrix.droplet_prefix }}
doctl compute droplet delete -f ${{ matrix.os_config.droplet_prefix }}

0 comments on commit 9073f9e

Please sign in to comment.