← ClaudeAtlas

github-action-authoringlisted

Use when authoring or debugging composite GitHub Actions: adding platform support (Windows/Linux/macOS), fixing PATH issues on runners, updating action inputs/outputs/steps, writing PowerShell steps, debugging installer flag ordering, or adding CI test jobs.
Ortus-Solutions/skills · ★ 0 · Code & Development · score 61
Install: claude install-skill Ortus-Solutions/skills
# GitHub Action Authoring — setup-boxlang ## When to Use - Adding or fixing Windows, Linux, or macOS support in `action.yml` - Writing or debugging PowerShell (`shell: powershell`) steps - Adding new inputs, outputs, or conditional steps - Updating `tests.yml` with new platform/feature coverage - Debugging PATH issues on GitHub Actions Windows runners - Installing third-party tools (BoxLang, CommandBox) in CI --- ## Architecture `action.yml` is a **composite action** with platform-specific parallel step pairs: | Step | Unix/Linux/macOS | Windows | |------|-----------------|---------| | Setup BoxLang | `shell: bash` + `install-boxlang.sh` | `shell: powershell` + `install-boxlang.ps1` | | Install CommandBox | `shell: bash` + `curl` + `unzip` | `shell: powershell` + dedicated step | | Install modules | `shell: bash` + `install-bx-module` | skipped (not available on Windows) | | ForgeBox API Key | `shell: bash` | `shell: powershell` | Every step pair uses `if: runner.os != 'Windows'` / `if: runner.os == 'Windows'` conditions. --- ## Critical Rules ### Platform conditionals Always use **both** sides for every platform-specific step: ```yaml - name: My Step (Unix/Linux/macOS) if: runner.os != 'Windows' shell: bash run: | ... - name: My Step (Windows) if: runner.os == 'Windows' shell: powershell run: | ... ``` ### Environment variables in PowerShell steps `${{ env.SOME_VAR }}` does **NOT** expand inside composite action PowerShell step bodies — it reso