Skip to content

Rebuild Documentation #212

Rebuild Documentation

Rebuild Documentation #212

Workflow file for this run

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