Rebuild Documentation #212
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: Rebuild Documentation | |
on: workflow_dispatch | |
# push: | |
# branches: [main] | |
jobs: | |
Rebuild-Documentation: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install platyPS module | |
shell: pwsh | |
run: | | |
Write-Host "Installing platyPS Powershell Module.." | |
git clone https://github.com/TehMuffinMoo/platyPS /tmp/platyPS | |
- name: Update Documentation | |
shell: pwsh | |
run: | | |
Write-Host "Importing platyPS Module.." | |
Import-Module '/tmp/platyPS/src/platyPS/platyPS.psd1' -ErrorAction Stop | |
Write-Host "Creating temporary docs directory.." | |
New-Item -ItemType Directory './docs-temp' | |
Write-Host "Importing ibPS Module.." | |
Import-Module './Modules/ibPS/ibPS.psd1' -Force -DisableNameChecking | |
Write-Host "Import ibPS Classes.." | |
. ./Modules/ibPS/Functions/BloxOne/Private/Classes.ps1 | |
Write-Host "Obtaining list of excluded docs.." | |
$ExcludedDocs = Import-Csv ./docs/exclusions.csv -Header 'doc' | |
Write-Host "Updating documentation.." | |
$DocumentationVersion = (Test-ModuleManifest -Path "./Modules/ibPS/ibPS.psd1").Version.ToString() | |
New-MarkdownHelp -Module ibPS -OutputFolder './docs-temp' -HelpVersion $($DocumentationVersion) -Force | |
Write-Host "Cleaning up old documentation.." | |
$OldDocs = Get-ChildItem ./docs/BloxOne -Recurse -File | where {$_.Name -notin $ExcludedDocs.doc} | Remove-Item -Force | |
$OldDocs = Get-ChildItem ./docs/General -Recurse -File | where {$_.Name -notin $ExcludedDocs.doc} | Remove-Item -Force | |
$OldDocs = Get-ChildItem ./docs/NIOS -Recurse -File | where {$_.Name -notin $ExcludedDocs.doc} | Remove-Item -Force | |
Write-Host "Relocating documentation.." | |
foreach ($F in Get-ChildItem './Modules/ibPS/Functions/' -Recurse) { | |
$DocToFind = "./docs-temp/$($F.BaseName).md" | |
if ((Test-Path $DocToFind) -and "$($F.BaseName).md" -notin $($ExcludedDocs.doc)) { | |
$BaseName = (Get-Item $F.DirectoryName).BaseName | |
switch ($BaseName) { | |
"BloxOneDDI" { | |
$BaseName = "$((Get-Item (Split-Path $($F.DirectoryName))).BaseName)/BloxOne DDI" | |
} | |
"BloxOneTD" { | |
$BaseName = "$((Get-Item (Split-Path $($F.DirectoryName))).BaseName)/BloxOne Threat Defense" | |
} | |
"BloxOnePlatform" { | |
$BaseName = "$((Get-Item (Split-Path $($F.DirectoryName))).BaseName)/BloxOne Platform" | |
} | |
"BloxOneCloud" { | |
$BaseName = "$((Get-Item (Split-Path $($F.DirectoryName))).BaseName)/BloxOne Cloud" | |
} | |
"Wrapper" { | |
$BaseName = "$((Get-Item (Split-Path $($F.DirectoryName))).BaseName)/Generic Wrapper" | |
} | |
"Misc" { | |
$BaseName = "General" | |
} | |
"Cleanup" { | |
$BaseName = "$((Get-Item (Split-Path $($F.DirectoryName))).BaseName)/Cleanup" | |
} | |
"Tools" { | |
$BaseName = "$((Get-Item (Split-Path $($F.DirectoryName))).BaseName)/Tools" | |
} | |
"Profiles" { | |
$BaseName = "$((Get-Item (Split-Path $($F.DirectoryName))).BaseName)/Profiles" | |
} | |
"Private" { | |
$BaseName = "$((Get-Item (Split-Path $($F.DirectoryName))).BaseName)/Functions" | |
} | |
} | |
Move-Item "$($DocToFind)" "./docs/$($BaseName)/" -Force | |
} | |
} | |
Copy-Item './CHANGELOG.md' './docs/Change Log.md' -Force | |
Write-Host "Removing temporary docs directory.." | |
Remove-Item './docs-temp' -Recurse -Force -Confirm:$false | |
$Version = "v$($DocumentationVersion)" | |
Write-Output "Version=$($Version)" | Out-File -FilePath $ENV:GITHUB_ENV -Encoding utf8 -Append | |
- name: Update Repository | |
run: | | |
git config --global user.name ${{ github.actor }} | |
git config --global user.password ${{ secrets.GIT_ACTIONS }} | |
git config --global user.email 'mat.cox@tmmn.uk' | |
git add . | |
git status | |
if ! git diff-index --quiet HEAD; then | |
git commit -m "Updated Documentation (${{ env.Version }})" | |
git push | |
else | |
echo "Documentation already up to date!" | |
fi |