cloudsidedev / appside

Multitenant environment automation.
http://cloudside.ch
GNU Affero General Public License v3.0
38 stars 7 forks source link

CI #69

Open ivomarino opened 7 years ago

ivomarino commented 7 years ago

We want to be able to test latest AppFlow code based on Continuous Integration via Jenkins. The basic idea is to run Jenkins inside a Docker container or a FreeBSD Jail and trigger the build/test process on each git commit to master or a specific testing branch via pipeline.

The stages of the pipeline process (thanks to @sneaker for suggestions on this), should run in parallel and perform this specific tasks:

We should trigger the LXC/VM creation via API, like pvesh on Proxmox and vm on FreeNAS Corral, we also could use curl REST API calls.

ivomarino commented 7 years ago

For proxmox we can also consider using proxmoxer but we would need to write some Python code in that case.

ivomarino commented 7 years ago

this allows self-provisioning agains mrrobot using local connection: root@ubuntu:/tmp/appflow# ansible-playbook -e conf_env=development --skip-tags hosts --limit local -i examples/appflow-mrrobot/development/inventory playbooks/generic.yml -- works inside a Docker container.

This also works in case we want to simulate atlantis:

echo "127.0.0.1 atlantis" > /etc/hosts
root@ubuntu-14:/tmp/appflow# ansible-playbook -e ansible_connection=local --skip-tags hosts --limit atlantis -i examples/appflow-mrrobot/development/inventory playbooks/generic.yml

In case we don't have ansible on the Jenkins node we could trigger remote self-provisioning directly on the Docker container, LXC or VM.