Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
282 changes: 141 additions & 141 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,141 +1,141 @@
name: CI

concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

on:
pull_request:
branches: [master]
paths-ignore:
&paths-ignore # Documentation (NOT docs/** - that's PlatyPS source!)
- "CHANGELOG.md"
- "LICENSE"
# AI assistant instruction files
- "AGENTS.md"
- "CLAUDE.md"
- "GEMINI.md"
- ".cursor/**"
- ".github/copilot-instructions.md"
- ".github/ai-context/**"
- ".github/instructions/**"
# GitHub/editor meta files
- ".github/*.md"
- ".github/ISSUE_TEMPLATE/**"
- ".github/PULL_REQUEST_TEMPLATE/**"
- ".vscode/**"
- ".editorconfig"
- ".spelling"
# Untracked regenerated docs (kept in case they ever land)
- "docs-regenerated/**"
push:
branches: [master]
paths-ignore: *paths-ignore
workflow_dispatch:

jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: AtlassianPS/AtlassianPS.Standards/.github/actions/setup-powershell@9a9367e22847bd24f86208ed2d98d207b0e2a3b3 # v0.1.6

- run: Invoke-Build -Task Lint
shell: pwsh

build:
name: Build Module
needs: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: AtlassianPS/AtlassianPS.Standards/.github/actions/setup-powershell@9a9367e22847bd24f86208ed2d98d207b0e2a3b3 # v0.1.6

- run: Invoke-Build -Task Clean, Build
shell: pwsh

- uses: actions/upload-artifact@v7
with:
name: Release
path: ./Release/

test_windows_ps5:
name: Test (Windows PS5)
needs: build
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
- uses: AtlassianPS/AtlassianPS.Standards/.github/actions/setup-powershell@9a9367e22847bd24f86208ed2d98d207b0e2a3b3 # v0.1.6
with:
ps-version: "5"
# Setup is run below in the powershell (PS 5.1) shell instead of pwsh,
# so the Windows PowerShell module path is populated.
skip-setup: "true"

- uses: actions/download-artifact@v8
with:
name: Release
path: ./Release/

- name: Setup
shell: powershell
run: |
./Tools/setup.ps1
Invoke-Build -Task ShowDebugInfo

- run: Invoke-Build -Task Test
shell: powershell

- uses: actions/upload-artifact@v7
if: always()
with:
name: Windows-PS5-Unit-Tests
path: Test*.xml

test_pwsh:
name: Test (${{ matrix.name }})
needs: build
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- { os: windows-latest, name: "Windows PS7" }
- { os: ubuntu-latest, name: "Ubuntu" }
- { os: macos-latest, name: "macOS" }
steps:
- uses: actions/checkout@v6
- uses: AtlassianPS/AtlassianPS.Standards/.github/actions/setup-powershell@9a9367e22847bd24f86208ed2d98d207b0e2a3b3 # v0.1.6

- uses: actions/download-artifact@v8
with:
name: Release
path: ./Release/

- run: Invoke-Build -Task Test
shell: pwsh

- uses: actions/upload-artifact@v7
if: always()
with:
name: ${{ matrix.name }}-Unit-Tests
path: Test*.xml

ci-required:
name: CI Result
if: always()
needs: [lint, build, test_windows_ps5, test_pwsh]
runs-on: ubuntu-latest
steps:
- name: Aggregate job results
shell: bash
run: |
results='${{ toJSON(needs) }}'
echo "Job results:"
echo "$results"
if echo "$results" | grep -E '"result":[[:space:]]*"(failure|cancelled)"' > /dev/null; then
echo "::error::One or more required jobs failed or were cancelled."
exit 1
fi
echo "All required jobs passed or were skipped."
name: CI
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
on:
pull_request:
branches: [master]
paths-ignore:
&paths-ignore # Documentation (NOT docs/** - that's PlatyPS source!)
- "CHANGELOG.md"
- "LICENSE"
# AI assistant instruction files
- "AGENTS.md"
- "CLAUDE.md"
- "GEMINI.md"
- ".cursor/**"
- ".github/copilot-instructions.md"
- ".github/ai-context/**"
- ".github/instructions/**"
# GitHub/editor meta files
- ".github/*.md"
- ".github/ISSUE_TEMPLATE/**"
- ".github/PULL_REQUEST_TEMPLATE/**"
- ".vscode/**"
- ".editorconfig"
- ".spelling"
# Untracked regenerated docs (kept in case they ever land)
- "docs-regenerated/**"
push:
branches: [master]
paths-ignore: *paths-ignore
workflow_dispatch:
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: AtlassianPS/AtlassianPS.Standards/.github/actions/setup-powershell@b95fd4d1ad0fca24905a38be4db70da7eeff8cb0 # v0.1.12
- run: Invoke-Build -Task Lint
shell: pwsh
build:
name: Build Module
needs: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: AtlassianPS/AtlassianPS.Standards/.github/actions/setup-powershell@b95fd4d1ad0fca24905a38be4db70da7eeff8cb0 # v0.1.12
- run: Invoke-Build -Task Clean, Build
shell: pwsh
- uses: actions/upload-artifact@v7
with:
name: Release
path: ./Release/
test_windows_ps5:
name: Test (Windows PS5)
needs: build
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
- uses: AtlassianPS/AtlassianPS.Standards/.github/actions/setup-powershell@b95fd4d1ad0fca24905a38be4db70da7eeff8cb0 # v0.1.12
with:
ps-version: "5"
# Setup is run below in the powershell (PS 5.1) shell instead of pwsh,
# so the Windows PowerShell module path is populated.
skip-setup: "true"
- uses: actions/download-artifact@v8
with:
name: Release
path: ./Release/
- name: Setup
shell: powershell
run: |
./Tools/setup.ps1
Invoke-Build -Task ShowDebugInfo
- run: Invoke-Build -Task Test
shell: powershell
- uses: actions/upload-artifact@v7
if: always()
with:
name: Windows-PS5-Unit-Tests
path: Test*.xml
test_pwsh:
name: Test (${{ matrix.name }})
needs: build
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- { os: windows-latest, name: "Windows PS7" }
- { os: ubuntu-latest, name: "Ubuntu" }
- { os: macos-latest, name: "macOS" }
steps:
- uses: actions/checkout@v6
- uses: AtlassianPS/AtlassianPS.Standards/.github/actions/setup-powershell@b95fd4d1ad0fca24905a38be4db70da7eeff8cb0 # v0.1.12
- uses: actions/download-artifact@v8
with:
name: Release
path: ./Release/
- run: Invoke-Build -Task Test
shell: pwsh
- uses: actions/upload-artifact@v7
if: always()
with:
name: ${{ matrix.name }}-Unit-Tests
path: Test*.xml
ci-required:
name: CI Result
if: always()
needs: [lint, build, test_windows_ps5, test_pwsh]
runs-on: ubuntu-latest
steps:
- name: Aggregate job results
shell: bash
run: |
results='${{ toJSON(needs) }}'
echo "Job results:"
echo "$results"
if echo "$results" | grep -E '"result":[[:space:]]*"(failure|cancelled)"' > /dev/null; then
echo "::error::One or more required jobs failed or were cancelled."
exit 1
fi
echo "All required jobs passed or were skipped."
32 changes: 16 additions & 16 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
name: "Copilot Setup Steps"

on:
workflow_dispatch:

jobs:
copilot-setup-steps:
runs-on: ubuntu-latest

permissions:
contents: read

steps:
- uses: actions/checkout@v6

- uses: AtlassianPS/AtlassianPS.Standards/.github/actions/setup-powershell@9a9367e22847bd24f86208ed2d98d207b0e2a3b3 # v0.1.6
name: "Copilot Setup Steps"
on:
workflow_dispatch:
jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v6
- uses: AtlassianPS/AtlassianPS.Standards/.github/actions/setup-powershell@b95fd4d1ad0fca24905a38be4db70da7eeff8cb0 # v0.1.12
Loading
Loading