name: shell-and-powershell-ci on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: shell-check: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install shellcheck run: sudo apt-get update && sudo apt-get install -y shellcheck - name: Run shellcheck run: | find . -type f -name "*.sh" -print0 | xargs -0 -r shellcheck -e SC1007,SC1090,SC2016 - name: Run production inventory placeholder guard self-test run: bash scripts/check_production_inventory_placeholders.sh --self-test rust-runtime-guard: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Test detmir-core runtime guard run: cargo test --manifest-path adk-rust/Cargo.toml -p detmir-core runtime_guard - name: Test detmir readiness crate run: cargo test --manifest-path adk-rust/Cargo.toml -p detmir-readiness powershell-analyzer: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install PSScriptAnalyzer shell: pwsh run: | Set-PSRepository -Name PSGallery -InstallationPolicy Trusted Install-Module PSScriptAnalyzer -Scope CurrentUser -Force - name: Analyze PowerShell scripts shell: pwsh run: | $targets = @( "windows/*.ps1", "windows/*.psm1", "windows/*.psd1" ) $issues = $targets | ForEach-Object { Invoke-ScriptAnalyzer -Path $_ -Recurse -Severity Error } if ($issues) { $issues | Format-Table -AutoSize throw "PSScriptAnalyzer detected issues." }