vade-cli 0.1.1

A command-line tool to deploy applications on Linux servers
# e2e tests

Requirements (other than vade's own):

- `incus`: creates and tears down the test VM
- `curl`: makes requests to ensure the deployed apps work

## Incus setup

You can probably grab Incus from your package manager. After that, initialize it as follows:

```bash
sudo systemctl enable --now incus.socket incus.service
sudo incus admin init

# Assuming `incusbr0` is the bridge network, we need to allow traffic between it and the host
# See https://linuxcontainers.org/incus/docs/main/howto/network_bridge_firewalld/#ufw-add-rules-for-the-bridge for details
sudo ufw allow in on incusbr0
sudo ufw route allow in on incusbr0
sudo ufw route allow out on incusbr0
```

## Running the tests

```bash
./run_tests.sh                              # full run, fresh VM
./run_tests.sh --reuse-vm                   # full run, reused VM
./run_tests.sh --reuse-vm guestbook timer   # selection run, reused VM

# We currently do not shut down the VM after testing, so you need to do that manually
sudo incus delete --force vade-test-vm
```

## Upcoming tests

- Nuke app removes it, leaving no traces (no user, no files, no stray systemd units).