Added auto deploy script #162
Workflow file for this run
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: Publish to PowerShell Gallery | |
on: | |
push: | |
tags: | |
- v* | |
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 | |
$content = Get-Content -Path $env:GITHUB_PATH | |
$HOME + "/.dotnet/tools`r`n" + $content | 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 | |
publish: | |
needs: | |
- build | |
- test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download Build Output | |
uses: actions/download-artifact@v3 | |
# - name: Display structure of downloaded files | |
# run: ls -R | |
# 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: Publish Module to PowerShell Gallery | |
shell: pwsh | |
run: | | |
Publish-Module -Path ${{github.workspace}}/Modules/F7History -NuGetApiKey ${{ secrets.F7HISTORY_GALLERY_KEY }} | |