50 lines
1.2 KiB
YAML
50 lines
1.2 KiB
YAML
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."
|
|
}
|