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
160 changes: 160 additions & 0 deletions .github/workflows/powershell.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
name: PowerShell

on:
push:
branches: [ "main", "master" ]
paths-ignore:
- 'docs/**'
- 'example/**'
- 'Videos/**'
- 'Changelog.md'
- 'README.md'
pull_request:

permissions:
contents: read

jobs:
build:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
name: Build
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.

- name: Run PSScriptAnalyzer
uses: microsoft/psscriptanalyzer-action@6b2948b1944407914a58661c49941824d149734f
with:
# Check https://github.com/microsoft/action-psscriptanalyzer for more info about the options.
# The below set up runs PSScriptAnalyzer to your entire repository and runs some basic security rules.
path: .\src
recurse: true
# Include your own basic security rules. Removing this option will run all the rules
includeRule: '"PSAvoidGlobalAliases", "PSAvoidUsingConvertToSecureStringWithPlainText"'
output: results.sarif

# Upload the SARIF file generated in the previous step
- name: Upload SARIF results file
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif

- uses: dotnet/nbgv@f088059084cb5d872e9d1a994433ca6440c2bf72
id: nbgv

- name: Build
shell: pwsh
run: ./build.ps1 build ${{ steps.nbgv.outputs.VersionMajor }} ${{ steps.nbgv.outputs.VersionMinor }} ${{ steps.nbgv.outputs.BuildNumber }} ${{ steps.nbgv.outputs.VersionRevision }} ${{ steps.nbgv.outputs.PrereleaseVersionNoLeadingHyphen }}

- name: Store build output
uses: actions/upload-artifact@v4
with:
name: build
path: |
publish
retention-days: 1

test7-old:
permissions:
contents: read # for actions/checkout to fetch code
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
name: Test PowerShell 7 Past Versions
needs: Build
runs-on: ubuntu-latest
container:
image: mcr.microsoft.com/powershell:${{ matrix.pwshv }}-ubuntu-22.04
strategy:
matrix:
pwshv: ['7.2', '7.3']

steps:
- uses: actions/checkout@v4

- name: Download build output
uses: actions/download-artifact@v4
with:
name: build
path: publish

- name: Test
shell: pwsh
run: ./build.ps1 test

test7-current:
permissions:
contents: read # for actions/checkout to fetch code
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
name: Test PowerShell 7.4
needs: Build
runs-on: ubuntu-latest
container:
image: mcr.microsoft.com/powershell:${{ matrix.pwshv }}-ubuntu-22.04
strategy:
matrix:
pwshv: ['7.4']

steps:
- uses: actions/checkout@v4

- name: Download build output
uses: actions/download-artifact@v4
with:
name: build
path: publish

- name: Test
shell: pwsh
run: ./build.ps1 test

test5:
permissions:
contents: read # for actions/checkout to fetch code
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
name: Test PowerShell 5
needs: Build
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Download build output
uses: actions/download-artifact@v4
with:
name: build
path: publish

- name: Test
shell: powershell
run: ./build.ps1 test

publish:
permissions:
contents: read # for actions/checkout to fetch code
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
name: Publish
needs: [test7-current]
runs-on: ubuntu-latest
container:
image: mcr.microsoft.com/dotnet/sdk:8.0
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4

- name: Download build output
uses: actions/download-artifact@v4
with:
name: build
path: publish

- name: Publish
shell: pwsh
run: ./build.ps1 publish
env:
PSPublishApiKey: ${{ secrets.NUGETAPIKEY }}
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -215,3 +215,5 @@ pip-log.txt
.mr.developer.cfg
InstallLocally.ps1
CleanPSHumanizer.ps1

testResults.xml
45 changes: 0 additions & 45 deletions DoTests.ps1

This file was deleted.

115 changes: 0 additions & 115 deletions FileSystem.types.ps1xml

This file was deleted.

Binary file removed Humanizer.dll
Binary file not shown.
Loading
Loading