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 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." }