diff --git a/server/.gitignore b/.gitignore similarity index 64% rename from server/.gitignore rename to .gitignore index 0994438d..36c124db 100644 --- a/server/.gitignore +++ b/.gitignore @@ -1,14 +1,21 @@ -__pycache__ -*.pyc -*.egg-info -env -venv build dist -.tox +env +venv + +docs/.sphinx/warnings.txt +docs/.sphinx/.wordlist.dic +docs/.sphinx/.doctrees/ + .coverage +.swp +.tox +.vscode + +*.py[cod] +*.egg* +*.bak *.charm + _build -docs/.sphinx/warnings.txt -docs/.sphinx/.wordlist.dic -docs/.sphinx/.doctrees/ \ No newline at end of file +__pycache__ diff --git a/README.md b/README.md new file mode 100644 index 00000000..43b38984 --- /dev/null +++ b/README.md @@ -0,0 +1,38 @@ +# What is Testflinger? + +Testflinger is a system for orchestrating the time-sharing of access to a pool of target machines. + +Each Testflinger system consists of: + +- a web service (called just Testflinger) that provides an API to request jobs by placing them on a queue +- per machine agents that wait for jobs to placed on queues they can service and then process them + +Jobs can be either fully automated scripts that can attempt to complete within the allocated time or interactive shell sessions. + +The Testflinger system is particular useful for sharing finite machine resources between different consumers in a predictable fashion. + +Typically this has been used for managing a test lab where CI/CD test runs and also exploratory testing by human operators is desired. + +# Documentation + +You can find more information and documentation on the [Testflinger Documentation Page](https://testflinger.readthedocs.io/en/latest/). + +# Content of this repository + +A full deployment of testflinger consists of the following components: + +- `Testflinger Server`: The API server, and Web UI +- `Testflinger Agent`: Requests and processes jobs from associated queues on the server on behalf of a device +- `Testflinger Device Connectors`: Handles provisioning and other device-specific details for each type of device +- `Testflinger CLI`: The command-line tool for submitting jobs, checking status of jobs, and retreiving results + +This monorepo is organized in a way that is consistant with the components described above: + +```bash +└── providers + ├── server + ├── agent + ├── device-connectors + ├── cli + └── docs + diff --git a/agent/.gitignore b/agent/.gitignore deleted file mode 100644 index da344c16..00000000 --- a/agent/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -*~ -.coverage -.vscode/ -build/ -env/ -__pycache__/ -*.py[cod] -*$py.class -*.conf -*.egg* -*.bak -.swp diff --git a/agent/.pmr-merge-hook b/agent/.pmr-merge-hook deleted file mode 100755 index 394df162..00000000 --- a/agent/.pmr-merge-hook +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -set -e - -rm -rf tfenv -virtualenv -q -p python3 tfenv -. tfenv/bin/activate -./setup.py test diff --git a/cli/.gitignore b/cli/.gitignore deleted file mode 100644 index ca62b051..00000000 --- a/cli/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -env/ -dist/ -build/ -testflinger_cli.egg-info/ -**/__pycache__/ -.coverage diff --git a/cli/renovate.json b/cli/renovate.json deleted file mode 100644 index 39a2b6e9..00000000 --- a/cli/renovate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "config:base" - ] -} diff --git a/device-connectors/.gitignore b/device-connectors/.gitignore deleted file mode 100644 index 8de9a2f1..00000000 --- a/device-connectors/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -__pycache__ -*.pyc -*.egg* -*.swp -env -venv -build -dist -.tox -.coverage -.vscode diff --git a/device-connectors/.pmr-merge-hook b/device-connectors/.pmr-merge-hook deleted file mode 100755 index 828e4a23..00000000 --- a/device-connectors/.pmr-merge-hook +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# This hook is executed for all incoming merge requests -set -e - -rm -rf env -virtualenv -p python3 env -. env/bin/activate -pip install -r test_requirements.txt -./setup.py flake8 -rm -rf env diff --git a/device-connectors/renovate.json b/device-connectors/renovate.json deleted file mode 100644 index 39a2b6e9..00000000 --- a/device-connectors/renovate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "config:base" - ] -} diff --git a/agent/renovate.json b/renovate.json similarity index 100% rename from agent/renovate.json rename to renovate.json diff --git a/server/renovate.json b/server/renovate.json deleted file mode 100644 index 39a2b6e9..00000000 --- a/server/renovate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "config:base" - ] -}