Skip to content

PSScriptModule | CI | 21415219469 | pull_request #277

PSScriptModule | CI | 21415219469 | pull_request

PSScriptModule | CI | 21415219469 | pull_request #277

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:
changes:
name: Label Changes
runs-on: [ubuntu-latest]
if: github.event_name == 'pull_request'
permissions:
contents: read
pull-requests: write
steps:
- name: Labeler
id: labeler
uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b #v6.0.1
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 }}
build:
name: Build
needs: [dependencies, unit-tests, static-code-analysis, code-injection]
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