☁️ cloud_auto_deployor
cloud_auto_deployor is a Python package that simplifies end-to-end deployment of test automation projects to Azure using Docker and Azure Container Instances (ACI).
Ideal for local developers, QA teams, and CI/CD use cases.
Features
- Auto-builds Docker image from your automation project
- Pushes the image to Azure Container Registry (ACR)
- Deploys the container to Azure Container Instance (ACI)
- Automatically runs your test suite (e.g. Pytest) in the container
- No manual Azure Portal steps required
Installation
pip install cloud-auto-deployor
Make sure you have
DockerandAzure CLIinstalled and logged in (az login).
Setup
Your test automation project should include:
demo_project/
├── Dockerfile
├── requirements.txt
├── tests/
│ └── test_example.py
├── run_tests.py # Triggers pytest
└── config.json # Azure details (see below)
Example config.json
{
"resource_group": "<your_resource_group>",
"acr_name": "<your_acr_name>",
"image_name": "<your_image_name>",
"image_tag": "v1",
"container_name": "<your_container_name>",
"location": "<your_region>"
}
Usage
From your test project root (where config.json lives), run:
python -m cloud_auto_deployor.main
What happens:
- Reads
config.json - Builds Docker image using your Dockerfile
- Pushes to ACR (auto-creates if needed)
- Deploys container instance (ACI)
- Automatically triggers
run_tests.pyto run your tests - ✅ Results appear in Azure Portal Logs
Sample run_tests.py
import pytest
import os
import sys
def run_tests():
sys.path.insert(0, os.getcwd())
exit_code = pytest.main(["-vv", "tests/"])
return exit_code
if __name__ == "__main__":
run_tests()
Uninstall / Clean Up
To remove the container:
az container delete \
--name <your_container_name> \
--resource-group <your_resource_group> \
--yes
To remove the image from ACR:
az acr repository delete \
--name <your_acr_name> \
--image <your_image_name>:<your_image_tag> \
--yes
Delete Entire Resource Group
az group delete --name <your_resource_group> --yes --no-wait
Explanation:
**• --name: Name of your resource group (e.g., demo-deploy-group)
• --yes: Auto-confirms the deletion prompt
• --no-wait: Returns immediately without waiting for the deletion to complete (optional)**
Author
Developed by Raja Periyasamy – Automation Lead | Azure DevOps Follower
📧 cloudautodeployer@gmail.com
License
MIT License
Release Notes
v1.0.6 -- enable acr access
- Initial open-source release
- Supports end-to-end Docker → ACR → ACI automation
- Auto-triggers test execution from
run_tests.py - Removed tracked
config.json, now properly gitignored - Minor cleanup and security best practices applied
- read me file changes
- Azure resources delete expression syntax updated
Metadata
Release files for cloud-auto-deployor 1.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cloud_auto_deployor-1.0.6.tar.gz | 6.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cloud_auto_deployor-1.0.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.9 kB
Release files / cloud_auto_deployor-1.0.6.tar.gz
| Download URL | cloud_auto_deployor-1.0.6.tar.gz |
|---|---|
| Size | 6.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f56fd4976b8025d5236971dfce2ffa582e09746c585c0789f4a06b26b886cf6e
|
|
BLAKE2b-256 checksum How to use checksums |
8471751f7600c26f176d8d868746cc04bedd81c3c5b57b1c4ff2c9579726f580
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.1
|
Release files / cloud_auto_deployor-1.0.6-py3-none-any.whl
| Download URL | cloud_auto_deployor-1.0.6-py3-none-any.whl |
|---|---|
| Size | 7.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5629d3a375a95e49c249ea80ce0f89ec469d11ba4978642c83145d063b3bd614
|
|
BLAKE2b-256 checksum How to use checksums |
25c7b33d26025f27dff828640d4ec3f537332d255f7d50eb0da58858b7ec19a6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.1
|