Skip to content

[FEATURE] Build reusable QA/testing tools for azurelocal-toolkit #19

@kristopherjturner

Description

@kristopherjturner

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

Metadata

Metadata

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions