Files
AWatch-rus/.github/workflows/ci.yml
T

71 lines
2.0 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 -S error -e SC1007,SC1090,SC2016
- name: Run production inventory placeholder guard self-test
run: bash scripts/check_production_inventory_placeholders.sh --self-test
- name: Run private-config guard
run: bash scripts/check_private_config_guard.sh
- name: Run portal contract sync guard
run: node scripts/check_portal_contract_sync.mjs
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."
}