-
Notifications
You must be signed in to change notification settings - Fork 0
[FEATURE] Build reusable QA/testing tools for azurelocal-toolkit #19
Copy link
Copy link
Labels
type/featureFeature requestFeature request
Description
Request
Build a complete set of reusable QA tools for the azurelocal-toolkit that can be run manually to test, verify, and proof all scripts and automation code in the repo.
Coverage
| Technology | Location | Scale |
|---|---|---|
| PowerShell | scripts/ |
~453 .ps1 files |
| Terraform | src/terraform/ |
26 .tf files (6 modules) |
| Ansible | src/ansible/ |
7 roles, 6 playbooks |
| ARM Templates | src/arm-templates/ |
Placeholder (empty) |
| Bicep | src/bicep/ |
Placeholder (empty) |
Folder structure
scripts/tools/
├── authoring/ ← script creation & packaging
│ ├── Convert-ToStandaloneScript.ps1 ← EXISTING (moved here)
│ └── New-ScriptFromTemplate.ps1 ← EXISTING (moved here)
└── qa/ ← testing & QA
├── README.md ← NEW
├── PSScriptAnalyzerSettings.psd1 ← NEW
├── Test-PowerShellScripts.ps1 ← NEW
├── Test-TerraformCode.ps1 ← NEW
├── Test-AnsibleCode.ps1 ← NEW
├── Test-BicepCode.ps1 ← NEW
├── Test-ArmTemplates.ps1 ← NEW
└── Test-VariableConfig.ps1 ← NEW
Tools to create
| Tool | What it does | Dependencies |
|---|---|---|
Test-PowerShellScripts.ps1 |
PSScriptAnalyzer lint + PowerShell AST syntax validation for all .ps1 files under scripts/ |
PSScriptAnalyzer module |
Test-TerraformCode.ps1 |
terraform validate + terraform fmt -check for src/terraform/ |
terraform CLI |
Test-AnsibleCode.ps1 |
ansible-lint + ansible-playbook --syntax-check for src/ansible/ |
ansible-lint, ansible |
Test-BicepCode.ps1 |
az bicep build + az bicep lint for src/bicep/ |
Azure CLI with bicep |
Test-ArmTemplates.ps1 |
ARM TTK validation for src/arm-templates/ |
arm-ttk module |
Test-VariableConfig.ps1 |
Wraps existing validate-registry.ps1 + validate-variables.ps1 into one QA tool |
Python 3, pyyaml, jsonschema |
PSScriptAnalyzerSettings.psd1 |
Shared PSScriptAnalyzer rule configuration | — |
README.md |
Usage docs for all QA tools | — |
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
type/featureFeature requestFeature request