hcloud-tests/.drone.yml

36 lines
1.2 KiB
YAML

kind: pipeline
type: docker
name: hcloud
steps:
- name: check requirements
image: alpine
commands:
- '[ -n "$SERVER_ID" ]'
- name: archinstall
image: alpine
environment:
HCLOUD_TOKEN:
from_secret: hcloud_token
AUTHORIZED_KEYS_B64:
from_secret: authorized_keys_b64
commands:
- apk add -U openssh
- wget -O- https://github.com/hetznercloud/cli/releases/latest/download/hcloud-linux-amd64.tar.gz | tar zx
- ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -q -N ''
- ./hcloud ssh-key delete drone || true
- ./hcloud ssh-key create --name drone --public-key-from-file /root/.ssh/id_ed25519.pub
- ./hcloud server enable-rescue $SERVER_ID --ssh-key drone > /dev/null
- ./hcloud server reset $SERVER_ID
- IP="$(./hcloud server ip "$SERVER_ID")"
- until ping -c 1 "$IP"; do sleep 5; done
- until ssh-keyscan "$IP" > /root/.ssh/known_hosts; do sleep 5; done
- scp install-arch.sh root@"$IP":/root/install-arch.sh
- echo "$AUTHORIZED_KEYS_B64" | base64 -d > authorized_keys
- scp authorized_keys root@"$IP":/root/authorized_keys
- ssh root@$IP chmod +x /root/install-arch.sh
- ssh root@$IP /root/install-arch.sh
- ./hcloud server reset $SERVER_ID
- ./hcloud ssh-key delete drone
- until ping -c 1 "$IP"; do sleep 5; done