MegaBites-AI/Windows-powershell
0372
1name: Windows-CI2on:3 workflow_dispatch:4 push:5 branches:6 - master7 - release/**8 - github-mirror9 paths:10 - "**"11 - "*"12 - ".globalconfig"13 - "!.vsts-ci/misc-analysis.yml"14 - "!.github/ISSUE_TEMPLATE/**"15 - "!.dependabot/config.yml"16 - "!test/perf/**"17 - "!.pipelines/**"18 pull_request:19 branches:20 - master21 - release/**22 - github-mirror23 - "*-feature"24 25# Path filters for PRs need to go into the changes job26 27concurrency:28 group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}29 cancel-in-progress: ${{ contains(github.ref, 'merge')}}30 31permissions:32 contents: read33 34run-name: "${{ github.ref_name }} - ${{ github.run_number }}"35 36env:37 DOTNET_CLI_TELEMETRY_OPTOUT: 138 DOTNET_NOLOGO: 139 GIT_CONFIG_PARAMETERS: "'core.autocrlf=false'"40 NugetSecurityAnalysisWarningLevel: none41 POWERSHELL_TELEMETRY_OPTOUT: 142 __SuppressAnsiEscapeSequences: 143 nugetMultiFeedWarnLevel: none44 SYSTEM_ARTIFACTSDIRECTORY: ${{ github.workspace }}/artifacts45 BUILD_ARTIFACTSTAGINGDIRECTORY: ${{ github.workspace }}/artifacts46jobs:47 changes:48 name: Change Detection49 runs-on: ubuntu-latest50 if: startsWith(github.repository_owner, 'azure') || github.repository_owner == 'PowerShell'51 # Required permissions52 permissions:53 pull-requests: read54 contents: read55 56 # Set job outputs to values from filter step57 outputs:58 source: ${{ steps.filter.outputs.source }}59 buildModuleChanged: ${{ steps.filter.outputs.buildModuleChanged }}60 packagingChanged: ${{ steps.filter.outputs.packagingChanged }}61 steps:62 - name: checkout63 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.264 65 - name: Change Detection66 id: filter67 uses: "./.github/actions/infrastructure/path-filters"68 with:69 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}70 71 ci_build:72 name: Build PowerShell73 needs: changes74 if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.buildModuleChanged == 'true' }}75 runs-on: windows-latest76 steps:77 - name: checkout78 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.279 with:80 fetch-depth: 100081 - name: Build82 uses: "./.github/actions/build/ci"83 windows_test_unelevated_ci:84 name: Windows Unelevated CI85 needs:86 - ci_build87 - changes88 if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.buildModuleChanged == 'true' }}89 runs-on: windows-latest90 steps:91 - name: checkout92 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.293 with:94 fetch-depth: 100095 - name: Windows Unelevated CI96 uses: "./.github/actions/test/windows"97 with:98 purpose: UnelevatedPesterTests99 tagSet: CI100 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}101 windows_test_elevated_ci:102 name: Windows Elevated CI103 needs:104 - ci_build105 - changes106 if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.buildModuleChanged == 'true' }}107 runs-on: windows-latest108 steps:109 - name: checkout110 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2111 with:112 fetch-depth: 1000113 - name: Windows Elevated CI114 uses: "./.github/actions/test/windows"115 with:116 purpose: ElevatedPesterTests117 tagSet: CI118 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}119 windows_test_unelevated_others:120 name: Windows Unelevated Others121 needs:122 - ci_build123 - changes124 if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.buildModuleChanged == 'true' }}125 runs-on: windows-latest126 steps:127 - name: checkout128 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2129 with:130 fetch-depth: 1000131 - name: Windows Unelevated Others132 uses: "./.github/actions/test/windows"133 with:134 purpose: UnelevatedPesterTests135 tagSet: Others136 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}137 windows_test_elevated_others:138 name: Windows Elevated Others139 needs:140 - ci_build141 - changes142 if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.buildModuleChanged == 'true' }}143 runs-on: windows-latest144 steps:145 - name: checkout146 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2147 with:148 fetch-depth: 1000149 - name: Windows Elevated Others150 uses: "./.github/actions/test/windows"151 with:152 purpose: ElevatedPesterTests153 tagSet: Others154 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}155 xunit_tests:156 name: xUnit Tests157 needs:158 - changes159 if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.buildModuleChanged == 'true' }}160 uses: ./.github/workflows/xunit-tests.yml161 with:162 runner_os: windows-latest163 test_results_artifact_name: testResults-xunit164 analyze:165 name: CodeQL Analysis166 needs: changes167 if: ${{ needs.changes.outputs.source == 'true' || needs.changes.outputs.buildModuleChanged == 'true' }}168 uses: ./.github/workflows/analyze-reusable.yml169 permissions:170 actions: read171 contents: read172 security-events: write173 with:174 runner_os: windows-latest175 windows_packaging:176 name: Windows Packaging177 needs:178 - changes179 if: ${{ needs.changes.outputs.packagingChanged == 'true' }}180 uses: ./.github/workflows/windows-packaging-reusable.yml181 ready_to_merge:182 name: windows ready to merge183 needs:184 - xunit_tests185 - windows_test_elevated_ci186 - windows_test_elevated_others187 - windows_test_unelevated_ci188 - windows_test_unelevated_others189 - analyze190 - windows_packaging191 if: always()192 uses: PowerShell/compliance/.github/workflows/ready-to-merge.yml@c8b3ad5819ad7078f3e375519b4f8c6232d1cbdf # v1.0.0193 with:194 needs_context: ${{ toJson(needs) }}195 