From 6252fb9bd16bfa689a10c679adfa185531ae6721 Mon Sep 17 00:00:00 2001 From: Peter Kurhajec <61538034+PTKu@users.noreply.github.com> Date: Wed, 15 Apr 2026 11:36:00 +0200 Subject: [PATCH 1/4] ci(docs): trigger after dev workflow success From f0511b332d9614787dce89672a66eff4db14ce75 Mon Sep 17 00:00:00 2001 From: Peter Kurhajec <61538034+PTKu@users.noreply.github.com> Date: Wed, 15 Apr 2026 11:41:37 +0200 Subject: [PATCH 2/4] ci(docs): trigger after dev workflow success --- .github/workflows/docs.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 6d20f820b..a3a3d9e53 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,13 +1,10 @@ name: docs on: - push: - branches: [ "dev" ] - paths: - - 'src/**' - - 'docfx/**' - - 'scripts/_build_documentation.ps1' - - '.github/workflows/docs.yml' + workflow_run: + workflows: ["dev"] + types: [completed] + branches: [dev] workflow_dispatch: permissions: @@ -21,6 +18,7 @@ concurrency: jobs: build: + if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }} runs-on: [self-hosted, Windows, X64, L2, AX] steps: - name: Checkout From 6652fd5bef018d4d98c48379c7f53498d8644d4e Mon Sep 17 00:00:00 2001 From: Peter Kurhajec <61538034+PTKu@users.noreply.github.com> Date: Wed, 15 Apr 2026 12:17:15 +0200 Subject: [PATCH 3/4] ci: move docs build+deploy into dev workflow (shared runner workspace) --- .github/workflows/dev.yml | 70 ++++++++++++++++++++++++++++++++++++++ .github/workflows/docs.yml | 5 --- 2 files changed, 70 insertions(+), 5 deletions(-) diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 42d2b63f9..61f0a5dd1 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -1,6 +1,12 @@ name: dev permissions: contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: false on: # push: @@ -53,3 +59,67 @@ jobs: dotnet run --project cake/Build.csproj --do-publish-only --do-publish --do-publish-release "PACK_EXIT_CODE=$LASTEXITCODE" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 shell: pwsh + + docs: + needs: build + runs-on: [self-hosted, Windows, X64, L2, AX] + steps: + - name: Generate ctrl API metadata (ixd) + shell: pwsh + run: | + dotnet ixd ` + -x .\src\abstractions\ctrl ` + .\src\core\ctrl ` + .\src\data\ctrl ` + .\src\inspectors\ctrl ` + .\src\io\ctrl ` + .\src\probers\ctrl ` + .\src\simatic1500\ctrl ` + .\src\timers\ctrl ` + .\src\utils\ctrl ` + .\src\components.abstractions\ctrl ` + .\src\components.abb.robotics\ctrl ` + .\src\components.balluff.identification\ctrl ` + .\src\components.cognex.vision\ctrl ` + .\src\components.desoutter.tightening\ctrl ` + .\src\components.drives\ctrl ` + .\src\components.dukane.welders\ctrl ` + .\src\components.elements\ctrl ` + .\src\components.festo.drives\ctrl ` + .\src\components.keyence.vision\ctrl ` + .\src\components.kuka.robotics\ctrl ` + .\src\components.mitsubishi.robotics\ctrl ` + .\src\components.pneumatics\ctrl ` + .\src\components.rexroth.drives\ctrl ` + .\src\components.rexroth.press\ctrl ` + .\src\components.rexroth.tightening\ctrl ` + .\src\components.robotics\ctrl ` + .\src\components.siem.communication\ctrl ` + .\src\components.siem.identification\ctrl ` + .\src\components.ur.robotics\ctrl ` + .\src\components.zebra.vision\ctrl ` + -o .\docfx\apictrl\ + + - name: Docfx metadata + shell: pwsh + run: dotnet docfx metadata .\docfx\docfx.json + + - name: Docfx build + shell: pwsh + run: dotnet docfx build .\docfx\docfx.json --output .\docs\ + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v3 + with: + path: docs + + deploy: + needs: docs + runs-on: [self-hosted, Windows, X64, L2, AX] + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index a3a3d9e53..55faf66ed 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,10 +1,6 @@ name: docs on: - workflow_run: - workflows: ["dev"] - types: [completed] - branches: [dev] workflow_dispatch: permissions: @@ -18,7 +14,6 @@ concurrency: jobs: build: - if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }} runs-on: [self-hosted, Windows, X64, L2, AX] steps: - name: Checkout From 4c365fd51a52e418cb28f05bc6c80988bb775ae3 Mon Sep 17 00:00:00 2001 From: Peter Kurhajec <61538034+PTKu@users.noreply.github.com> Date: Wed, 15 Apr 2026 12:26:37 +0200 Subject: [PATCH 4/4] refactor(docs): DRY ixd invocation into scripts/_invoke_ixd.ps1 --- .github/workflows/dev.yml | 34 +----------------------------- .github/workflows/docs.yml | 34 +----------------------------- scripts/_build_documentation.ps1 | 33 +---------------------------- scripts/_invoke_ixd.ps1 | 36 ++++++++++++++++++++++++++++++++ scripts/build_test_docu.ps1 | 33 +---------------------------- 5 files changed, 40 insertions(+), 130 deletions(-) create mode 100644 scripts/_invoke_ixd.ps1 diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 61f0a5dd1..fe90aa937 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -66,39 +66,7 @@ jobs: steps: - name: Generate ctrl API metadata (ixd) shell: pwsh - run: | - dotnet ixd ` - -x .\src\abstractions\ctrl ` - .\src\core\ctrl ` - .\src\data\ctrl ` - .\src\inspectors\ctrl ` - .\src\io\ctrl ` - .\src\probers\ctrl ` - .\src\simatic1500\ctrl ` - .\src\timers\ctrl ` - .\src\utils\ctrl ` - .\src\components.abstractions\ctrl ` - .\src\components.abb.robotics\ctrl ` - .\src\components.balluff.identification\ctrl ` - .\src\components.cognex.vision\ctrl ` - .\src\components.desoutter.tightening\ctrl ` - .\src\components.drives\ctrl ` - .\src\components.dukane.welders\ctrl ` - .\src\components.elements\ctrl ` - .\src\components.festo.drives\ctrl ` - .\src\components.keyence.vision\ctrl ` - .\src\components.kuka.robotics\ctrl ` - .\src\components.mitsubishi.robotics\ctrl ` - .\src\components.pneumatics\ctrl ` - .\src\components.rexroth.drives\ctrl ` - .\src\components.rexroth.press\ctrl ` - .\src\components.rexroth.tightening\ctrl ` - .\src\components.robotics\ctrl ` - .\src\components.siem.communication\ctrl ` - .\src\components.siem.identification\ctrl ` - .\src\components.ur.robotics\ctrl ` - .\src\components.zebra.vision\ctrl ` - -o .\docfx\apictrl\ + run: .\scripts\_invoke_ixd.ps1 - name: Docfx metadata shell: pwsh diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 55faf66ed..c09282618 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -23,39 +23,7 @@ jobs: - name: Generate ctrl API metadata (ixd) shell: pwsh - run: | - dotnet ixd ` - -x .\src\abstractions\ctrl ` - .\src\core\ctrl ` - .\src\data\ctrl ` - .\src\inspectors\ctrl ` - .\src\io\ctrl ` - .\src\probers\ctrl ` - .\src\simatic1500\ctrl ` - .\src\timers\ctrl ` - .\src\utils\ctrl ` - .\src\components.abstractions\ctrl ` - .\src\components.abb.robotics\ctrl ` - .\src\components.balluff.identification\ctrl ` - .\src\components.cognex.vision\ctrl ` - .\src\components.desoutter.tightening\ctrl ` - .\src\components.drives\ctrl ` - .\src\components.dukane.welders\ctrl ` - .\src\components.elements\ctrl ` - .\src\components.festo.drives\ctrl ` - .\src\components.keyence.vision\ctrl ` - .\src\components.kuka.robotics\ctrl ` - .\src\components.mitsubishi.robotics\ctrl ` - .\src\components.pneumatics\ctrl ` - .\src\components.rexroth.drives\ctrl ` - .\src\components.rexroth.press\ctrl ` - .\src\components.rexroth.tightening\ctrl ` - .\src\components.robotics\ctrl ` - .\src\components.siem.communication\ctrl ` - .\src\components.siem.identification\ctrl ` - .\src\components.ur.robotics\ctrl ` - .\src\components.zebra.vision\ctrl ` - -o .\docfx\apictrl\ + run: .\scripts\_invoke_ixd.ps1 - name: Docfx metadata shell: pwsh diff --git a/scripts/_build_documentation.ps1 b/scripts/_build_documentation.ps1 index 9cbaf9d5b..6fc13b248 100644 --- a/scripts/_build_documentation.ps1 +++ b/scripts/_build_documentation.ps1 @@ -1,35 +1,4 @@ -dotnet ixd ` --x .\src\abstractions\ctrl ` -.\src\core\ctrl ` -.\src\data\ctrl ` -.\src\inspectors\ctrl ` -.\src\io\ctrl ` -.\src\probers\ctrl ` -.\src\simatic1500\ctrl ` -.\src\timers\ctrl ` -.\src\utils\ctrl ` -.\src\components.abstractions\ctrl ` -.\src\components.abb.robotics\ctrl ` -.\src\components.balluff.identification\ctrl ` -.\src\components.cognex.vision\ctrl ` -.\src\components.desoutter.tightening\ctrl ` -.\src\components.drives\ctrl ` -.\src\components.dukane.welders\ctrl ` -.\src\components.elements\ctrl ` -.\src\components.festo.drives\ctrl ` -.\src\components.keyence.vision\ctrl ` -.\src\components.kuka.robotics\ctrl ` -.\src\components.mitsubishi.robotics\ctrl ` -.\src\components.pneumatics\ctrl ` -.\src\components.rexroth.drives\ctrl ` -.\src\components.rexroth.press\ctrl ` -.\src\components.rexroth.tightening\ctrl ` -.\src\components.robotics\ctrl ` -.\src\components.siem.communication\ctrl ` -.\src\components.siem.identification\ctrl ` -.\src\components.ur.robotics\ctrl ` -.\src\components.zebra.vision\ctrl ` --o .\docfx\apictrl\ +& "$PSScriptRoot\_invoke_ixd.ps1" # Generate metadata (.NET API documentation) from C# projects dotnet docfx metadata .\docfx\docfx.json diff --git a/scripts/_invoke_ixd.ps1 b/scripts/_invoke_ixd.ps1 new file mode 100644 index 000000000..d0b51634f --- /dev/null +++ b/scripts/_invoke_ixd.ps1 @@ -0,0 +1,36 @@ +param( + [string]$Output = ".\docfx\apictrl\" +) + +dotnet ixd ` + -x .\src\abstractions\ctrl ` + .\src\core\ctrl ` + .\src\data\ctrl ` + .\src\inspectors\ctrl ` + .\src\io\ctrl ` + .\src\probers\ctrl ` + .\src\simatic1500\ctrl ` + .\src\timers\ctrl ` + .\src\utils\ctrl ` + .\src\components.abstractions\ctrl ` + .\src\components.abb.robotics\ctrl ` + .\src\components.balluff.identification\ctrl ` + .\src\components.cognex.vision\ctrl ` + .\src\components.desoutter.tightening\ctrl ` + .\src\components.drives\ctrl ` + .\src\components.dukane.welders\ctrl ` + .\src\components.elements\ctrl ` + .\src\components.festo.drives\ctrl ` + .\src\components.keyence.vision\ctrl ` + .\src\components.kuka.robotics\ctrl ` + .\src\components.mitsubishi.robotics\ctrl ` + .\src\components.pneumatics\ctrl ` + .\src\components.rexroth.drives\ctrl ` + .\src\components.rexroth.press\ctrl ` + .\src\components.rexroth.tightening\ctrl ` + .\src\components.robotics\ctrl ` + .\src\components.siem.communication\ctrl ` + .\src\components.siem.identification\ctrl ` + .\src\components.ur.robotics\ctrl ` + .\src\components.zebra.vision\ctrl ` + -o $Output diff --git a/scripts/build_test_docu.ps1 b/scripts/build_test_docu.ps1 index faf12d209..a04f12d16 100644 --- a/scripts/build_test_docu.ps1 +++ b/scripts/build_test_docu.ps1 @@ -1,35 +1,4 @@ -dotnet ixd ` --x .\src\abstractions\ctrl ` -.\src\core\ctrl ` -.\src\data\ctrl ` -.\src\inspectors\ctrl ` -.\src\io\ctrl ` -.\src\probers\ctrl ` -.\src\simatic1500\ctrl ` -.\src\timers\ctrl ` -.\src\utils\ctrl ` -.\src\components.abstractions\ctrl ` -.\src\components.abb.robotics\ctrl ` -.\src\components.balluff.identification\ctrl ` -.\src\components.cognex.vision\ctrl ` -.\src\components.desoutter.tightening\ctrl ` -.\src\components.drives\ctrl ` -.\src\components.dukane.welders\ctrl ` -.\src\components.elements\ctrl ` -.\src\components.festo.drives\ctrl ` -.\src\components.keyence.vision\ctrl ` -.\src\components.kuka.robotics\ctrl ` -.\src\components.mitsubishi.robotics\ctrl ` -.\src\components.pneumatics\ctrl ` -.\src\components.rexroth.drives\ctrl ` -.\src\components.rexroth.press\ctrl ` -.\src\components.rexroth.tightening\ctrl ` -.\src\components.robotics\ctrl ` -.\src\components.siem.communication\ctrl ` -.\src\components.siem.identification\ctrl ` -.\src\components.ur.robotics\ctrl ` -.\src\components.zebra.vision\ctrl ` --o .\docfx\apictrl\ +& "$PSScriptRoot\_invoke_ixd.ps1" if ((Test-Path .\docs-test\)) { del .\docs-test\