Skip to main content

Build scripts guide

Build Scripts Guide

Essential build scripts in the /scripts/ directory that automate application builds, documentation generation, compliance validation, and security scanning for the Edge AI Accelerator project.

Application build scripts

Matrix build detection

ScriptPurposeUsage
Detect-Folder-Changes.ps1Detects application/service changes for matrix builds./scripts/build/Detect-Folder-Changes.ps1
Build-Consistency-Check.ps1Validates Azure DevOps and GitHub workflow alignment./scripts/build/Build-Consistency-Check.ps1

Enables dynamic matrix builds by detecting changes in application and service directories.

Application building

ScriptPurposeUsage
application-builder.ps1Multi-language application build orchestration./scripts/build/application-builder.ps1

Supports .NET, Rust, Node.js, and Python application builds with integrated security scanning, Docker builds, and SLSA bundle generation.

In this guide

Documentation scripts

Terraform documentation

ScriptPurposeUsage
tf-docs-check.shValidates Terraform module documentation consistency./scripts/tf-docs-check.sh
update-all-terraform-docs.shUpdates all Terraform module documentation./scripts/update-all-terraform-docs.sh
install-terraform-docs.shInstalls terraform-docs tool./scripts/install-terraform-docs.sh

Generates README.md files from Terraform configuration and validates documentation consistency across modules.

Bicep documentation

ScriptPurposeUsage
bicep-docs-check.shValidates Bicep module documentation consistency./scripts/bicep-docs-check.sh
generate-bicep-docs.pyGenerates Bicep module documentationpython ./scripts/generate-bicep-docs.py
update-all-bicep-docs.shUpdates all Bicep module documentation./scripts/update-all-bicep-docs.sh

Generates README.md files from Bicep templates and validates parameter documentation.

Compliance validation

Variable compliance

ScriptPurposePlatform
Bicep-Var-Compliance-Check.ps1Bicep parameter compliance validationPowerShell
tf-vars-compliance-check.pyTerraform variable compliance validationPython

Validates naming conventions, type definitions, documentation requirements, and default value standards.

Security scanning

Infrastructure security

ScriptPurposeUsage
Run-Checkov.ps1Infrastructure security scanning./scripts/Run-Checkov.ps1

Comprehensive security scanning for Terraform and Bicep configurations using Checkov.

Container and dependency security

ScriptPurposeUsage
Invoke-ContainerSecurityScan.ps1Container image vulnerability scanning (Grype)./scripts/security/Invoke-ContainerSecurityScan.ps1
Invoke-SecurityGate.ps1Centralized security gate enforcement./scripts/security/Invoke-SecurityGate.ps1
Invoke-SecurityReportCompression.ps1Security report compression and optimization./scripts/security/Invoke-SecurityReportCompression.ps1

Integrated container image vulnerability scanning, language-specific dependency audits, and centralized security gate enforcement with report compression.

Version checking

ScriptPurposeUsage
aio-version-checker.pyAzure IoT Operations version validationpython ./scripts/aio-version-checker.py
tf-provider-version-check.shTerraform provider version validation./scripts/tf-provider-version-check.sh

Validates version consistency and compatibility across components.

Usage examples

Application build workflows

# Detect application changes for matrix builds
./scripts/build/Detect-Folder-Changes.ps1 -BaseBranch "main" -ChangedFiles @("src/500-application/myapp/Program.cs")

# Build application with security scanning
./scripts/build/application-builder.ps1 -ApplicationPath "src/500-application/myapp" -Language "dotnet" -SecurityScan

# Validate workflow consistency
./scripts/build/Build-Consistency-Check.ps1

Aggregated failure reporting

The application build system automatically aggregates and reports all failures at the end of each build run, providing a comprehensive view of:

  • Build Failures: Services that failed to build with detailed error context
  • Security Issues: Container images with critical vulnerabilities detected by Grype
  • Dependency Audits: Services with vulnerable dependencies from language-specific audits (.NET, Rust, Node.js, Python)

This consolidated failure summary is emitted as warnings after the JSON output, making it easy to identify and address all issues in a single view.

Documentation maintenance

# Update all Terraform documentation
./scripts/update-all-terraform-docs.sh

# Update all Bicep documentation
./scripts/update-all-bicep-docs.sh

# Validate documentation consistency
./scripts/tf-docs-check.sh
./scripts/bicep-docs-check.sh

Compliance validation implementation

# Validate Bicep parameter compliance
./scripts/Bicep-Var-Compliance-Check.ps1
# Validate Terraform variable compliance
python ./scripts/tf-vars-compliance-check.py

# Check version consistency
python ./scripts/aio-version-checker.py
./scripts/tf-provider-version-check.sh

Security scanning implementation

# Run infrastructure security scanning
./scripts/Run-Checkov.ps1

# Scan container image for vulnerabilities
./scripts/security/Invoke-ContainerSecurityScan.ps1 -ImageName "myapp:latest" -OutputFormat "sarif"

# Execute security gate with custom thresholds
./scripts/security/Invoke-SecurityGate.ps1 -GrypeSeverityThreshold "medium" -CheckovSeverityThreshold "high"

# Compress security reports for artifact optimization
./scripts/security/Invoke-SecurityReportCompression.ps1 -InputPath "./security-reports" -OutputPath "./compressed-reports"

🤖 Crafted with precision by ✨Copilot following brilliant human instruction, then carefully refined by our team of discerning human reviewers.