Skip to content

PSScriptModule | CI | 21340612182 | push #269

PSScriptModule | CI | 21340612182 | push

PSScriptModule | CI | 21340612182 | push #269

Workflow file for this run

name: CI
run-name: "${{ github.event.repository.name }} | CI | ${{ github.run_id }} | ${{ github.event_name }}"
permissions: read-all
on:
workflow_dispatch:
push:
branches:
- main
paths:
- 'src/**'
- 'tests/**'
- '*.ps1'
- '*.psd1'
pull_request:
branches:
- main
- 'release/**'
- 'hotfix/**'
paths:
- 'src/**'
- 'tests/**'
- '.github/**/*'
- '*.ps1'
- '*.psd1'
jobs:
dependencies:
name: Dependencies
runs-on: ubuntu-latest
outputs:
module-list: ${{ steps.resolve.outputs.module-list }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
repository: ${{ github.repository }}
- name: Resolve dependencies
id: resolve
uses: ./.github/actions/ps-resolve-dependencies
unit-tests:
name: Unit Tests
needs: [dependencies]
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
permissions:
issues: write
pull-requests: write
checks: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Run Pester Unit Tests
uses: ./.github/actions/ps-unit-tests
with:
module-list: ${{ needs.dependencies.outputs.module-list }}
static-code-analysis:
name: Static Code Analysis
needs: [dependencies]
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
checks: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Run PSScriptAnalyzer
uses: ./.github/actions/ps-static-code-analysis
with:
module-list: ${{ needs.dependencies.outputs.module-list }}
code-injection:
name: Code Injection
needs: [dependencies]
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
checks: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Run InjectionHunter
uses: ./.github/actions/ps-code-injection
with:
module-list: ${{ needs.dependencies.outputs.module-list }}
semantic-code-analysis:
name: Semantic Code Analysis
needs: [dependencies]
runs-on: ubuntu-latest
permissions:
security-events: write
actions: read
contents: read
packages: read
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
with:
languages: actions
build-mode: none
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v4
with:
category: "/language:${{matrix.language}}"
build:
name: Build
needs: [dependencies, unit-tests, static-code-analysis, code-injection, semantic-code-analysis]
runs-on: ubuntu-latest
permissions:
contents: write
outputs:
release-version: ${{ steps.build.outputs.release-version }}
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
repository: ${{ github.repository }}
fetch-depth: 0
- name: Build Module
id: build
uses: ./.github/actions/ps-build
with:
release-type: 'Debug'
module-list: ${{ needs.dependencies.outputs.module-list }}
- name: Run Integration Tests
uses: ./.github/actions/ps-integration-tests