Skip to content

Add IdLE.Provider.EntraID module for Microsoft Graph-based identity lifecycle operations #264

Add IdLE.Provider.EntraID module for Microsoft Graph-based identity lifecycle operations

Add IdLE.Provider.EntraID module for Microsoft Graph-based identity lifecycle operations #264

Workflow file for this run

name: CI
on:
pull_request:
push:
branches: [ main ]
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
test:
name: Pester (${{ matrix.os }})
runs-on: ${{ matrix.os }}
permissions:
contents: read
actions: write
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v6
- name: Run Pester
shell: pwsh
run: pwsh -NoProfile -File ./tools/Invoke-IdlePesterTests.ps1 -CI
- name: Upload Pester artifacts
if: always()
uses: actions/upload-artifact@v6
with:
name: pester-artifacts-${{ matrix.os }}
if-no-files-found: warn
path: |
artifacts/test-results.xml
artifacts/coverage.xml
lint:
name: PSScriptAnalyzer
runs-on: ubuntu-latest
permissions:
contents: read
actions: read
security-events: write
steps:
- uses: actions/checkout@v6
- name: Run PSScriptAnalyzer
shell: pwsh
run: pwsh -NoProfile -File ./tools/Invoke-IdleScriptAnalyzer.ps1 -CI
- name: Upload PSScriptAnalyzer artifacts
if: always()
uses: actions/upload-artifact@v6
with:
name: psscriptanalyzer-artifacts
if-no-files-found: warn
path: |
artifacts/pssa-results.json
artifacts/pssa-results.sarif
- name: Upload SARIF to GitHub Code Scanning
if: always() && github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: github/codeql-action/upload-sarif@v4
with:
sarif_file: artifacts/pssa-results.sarif
docs-cmdlet-reference:
name: Verify cmdlet reference is up to date
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install platyPS
shell: pwsh
run: |
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
# Ensure PSGallery does not prompt (non-interactive CI)
if (Get-Command -Name Set-PSRepository -ErrorAction SilentlyContinue) {
try {
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted -ErrorAction Stop
} catch {
# Ignore if not supported in this environment
}
}
# platyPS is pinned for deterministic Markdown output.
# See CONTRIBUTING.md for upgrade procedure.
Install-Module -Name platyPS -RequiredVersion 0.14.2 -Scope CurrentUser -Force -AllowClobber -ErrorAction Stop
- name: Debug platyPS version
shell: pwsh
run: |
Get-Module -ListAvailable platyPS | Sort-Object Version -Descending | Select-Object -First 1 | Format-List Name,Version,Path
- name: Generate cmdlet reference
shell: pwsh
run: |
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
pwsh -NoProfile -File ./tools/Generate-IdleCmdletReference.ps1
- name: Verify working tree clean
shell: bash
run: |
set -euo pipefail
echo "== git status =="
git status --porcelain || true
echo "== git diff (first 200 lines) =="
git diff | sed -n '1,200p' || true
git diff --exit-code
docs-step-reference:
name: Verify step reference is up to date
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Generate step reference
shell: pwsh
run: |
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
pwsh -NoProfile -File ./tools/Generate-IdleStepReference.ps1
- name: Verify working tree clean
shell: bash
run: |
set -euo pipefail
echo "== git status =="
git status --porcelain || true
echo "== git diff (first 200 lines) =="
git diff | sed -n '1,200p' || true
git diff --exit-code