Skip to content

Fixes #18 - Dependencies #18

Fixes #18 - Dependencies

Fixes #18 - Dependencies #18

Workflow file for this run

name: Build and Test F7History
on:
pull_request:
branches:
- main
paths-ignore:
- '**.md'
- '.all-contributorsrc'
jobs:
build:
runs-on: windows-latest
steps:
- name: HACK - Install Latest PowerShell (so we get v7.3+ that uses .net 7)
shell: pwsh
run: |
dotnet tool install --global PowerShell
"$HOME/.dotnet/tools`r`n$(Get-Content -Path $env:GITHUB_PATH)" | Set-Content -Path $env:GITHUB_PATH -Encoding utf8
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0
with:
versionSpec: '5.x'
- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v0
with:
useConfigFile: true
- name: Build F7History v${{ steps.gitversion.outputs.FullSemVer }}
id: build
shell: pwsh
run: |
Install-module -Name ModuleBuilder -Force -SkipPublisherCheck -Scope CurrentUser
./build.ps1 -Version ${{ steps.gitversion.outputs.FullSemVer }}
- name: Upload Build Output
uses: actions/upload-artifact@v3
with:
name: Modules
path: ${{github.workspace}}/Output
- name: Upload Tests
uses: actions/upload-artifact@v3
with:
name: PesterTests
path: ${{github.workspace}}/Tests
- name: Upload PSScriptAnalyzerSettings.psd1
uses: actions/upload-artifact@v3
with:
name: ScriptAnalyzer
path: ${{github.workspace}}/PSScriptAnalyzerSettings.psd1
lint:
needs: build
name: Run PSScriptAnalyzer
runs-on: ubuntu-latest
steps:
- name: Download Build Output
uses: actions/download-artifact@v3
- name: Invoke-ScriptAnalyzer
uses: devblackops/github-action-psscriptanalyzer@master
with:
rootPath: Modules/F7History
repoToken: ${{ secrets.GITHUB_TOKEN }}
test:
needs: build
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
steps:
- name: HACK - Install Latest PowerShell (so we get v7.3+ that uses .net 7)
shell: pwsh
run: |
dotnet tool install --global PowerShell
"$HOME/.dotnet/tools`r`n$(Get-Content -Path $env:GITHUB_PATH)" | Set-Content -Path $env:GITHUB_PATH -Encoding utf8
- name: Download Build Output
uses: actions/download-artifact@v3
# see https://github.com/Jaykul/RequiredModules/issues/6
- name: Manually Install Modules F7History is dependent on
shell: pwsh
run: |
Install-Module -Name Microsoft.PowerShell.ConsoleGuiTools -Force -SkipPublisherCheck -Scope CurrentUser
Install-Module -Name PSReadLine -Force -SkipPublisherCheck -Scope CurrentUser
- name: Run Pester Tests
shell: pwsh
run: |
Import-Module ${{github.workspace}}/Modules/F7History -Verbose
$MyOptions = @{
Run = @{ # Run configuration.
PassThru = $true # Return result object after finishing the test run.
}
}
$config = New-PesterConfiguration -Hashtable $MyOptions
$config.Output.Verbosity = "Detailed"
$config.CodeCoverage.Enabled = $true
$config.CodeCoverage.OutputPath = "./coverage.xml"
Invoke-Pester -Configuration $config
- name: Publish Test Results
uses: zyborg/dotnet-tests-report@v1
with:
test_results_path: results.xml
- name: Upload Results
uses: actions/upload-artifact@v3
with:
name: Pester Results
path: ${{github.workspace}}/*.xml