diff --git a/.github/workflows/test-on-droplets-matrix.yml b/.github/workflows/test-on-droplets-matrix.yml index f190d8893..6592d973d 100644 --- a/.github/workflows/test-on-droplets-matrix.yml +++ b/.github/workflows/test-on-droplets-matrix.yml @@ -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: @@ -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 @@ -66,29 +66,29 @@ 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" @@ -96,21 +96,21 @@ jobs: 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" @@ -118,7 +118,7 @@ jobs: - 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"]}' \ @@ -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 }}