Skip to content

Add PSScriptAnalyzer workflow for code quality checks #5

Add PSScriptAnalyzer workflow for code quality checks

Add PSScriptAnalyzer workflow for code quality checks #5

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
#
# https://github.com/microsoft/action-psscriptanalyzer
# For more information on PSScriptAnalyzer in general, see
# https://github.com/PowerShell/PSScriptAnalyzer
name: PSScriptAnalyzer
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
permissions:
contents: read
jobs:
build:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
name: PSScriptAnalyzer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Run PSScriptAnalyzer
uses: microsoft/psscriptanalyzer-action@6b2948b1944407914a58661c49941824d149734f
with:
# Check https://github.com/microsoft/action-psscriptanalyzer for more info about the options.
# The below set up runs PSScriptAnalyzer to your entire repository and runs some basic security rules.
path: .\src
recurse: true
# Include your own basic security rules. Removing this option will run all the rules
includeRule: '"PSAvoidGlobalAliases", "PSAvoidUsingConvertToSecureStringWithPlainText"'
output: results.sarif
# Upload the SARIF file generated in the previous step
- name: Upload SARIF results file
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore
# run powershell script /tests/setupTest.ps1 to run pester unit-testing
- name: Run Pester tests
shell: pwsh
run: |
$ErrorActionPreference = "Stop"
$pesterPath = "$($ENV:GITHUB_WORKSPACE)/tests"
Write-Verbose -Message "Running Pester tests...Pester path: $pesterPath" -Verbose
. "$pesterPath/setupTest.ps1"
- name: Upload Test Results
uses: actions/upload-artifact@v4
with:
name: ubuntu-Unit-Tests
path: out/Tests"