Fixes #18 - Dependencies #19
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |