fix: add semantic-release for automated versioning and npm publishing #22
Workflow file for this run
This file contains hidden or 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: AppClaw Action — Branch Test (Layer 3) | ||
|
Check failure on line 1 in .github/workflows/layer3-branch-test.yml
|
||
| # Layer 3 test — validates the action as an external caller would use it. | ||
| # References the branch by name (not ./github-action) so it exercises the | ||
| # full public action resolution path before the branch is tagged and published. | ||
| # | ||
| # Triggers: | ||
| # - Every pull_request (android YAML flow by default) | ||
| # - Actions tab → "Run workflow" for manual runs with custom inputs | ||
| # Required secret: LLM_API_KEY | ||
| on: | ||
| pull_request: | ||
| workflow_dispatch: | ||
| inputs: | ||
| flow: | ||
| description: 'Path to YAML flow file in your repo' | ||
| required: false | ||
| default: 'flows/youtube.yaml' | ||
| goal: | ||
| description: 'Natural language goal (leave empty to use flow instead)' | ||
| required: false | ||
| default: '' | ||
| platform: | ||
| description: 'Platform to test' | ||
| required: false | ||
| default: 'android' | ||
| type: choice | ||
| options: [android, ios] | ||
| jobs: | ||
| # ── Test 1: YAML flow on Android ──────────────────────────────────────────── | ||
| # Runs on every PR (default) and on manual dispatch with android + no goal | ||
| android-flow: | ||
| name: Android — YAML flow | ||
| runs-on: ubuntu-latest | ||
| if: github.event_name == 'pull_request' || (inputs.platform == 'android' && inputs.goal == '') | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: AppiumTestDistribution/AppClaw/github-action@${{ github.head_ref || 'main' }} | ||
| id: run | ||
| with: | ||
| flow: ${{ inputs.flow || 'flows/youtube.yaml' }} | ||
| platform: android | ||
| provider: gemini | ||
| api-key: ${{ secrets.LLM_API_KEY }} | ||
| report-name: layer3-android-flow-${{ github.run_id }} | ||
| - name: Show report path | ||
| if: always() | ||
| run: echo "Report → ${{ steps.run.outputs.report-path }}" | ||
| # ── Test 2: Natural language goal on Android ───────────────────────────────── | ||
| # Runs only on manual dispatch with a goal specified | ||
| android-goal: | ||
| name: Android — natural language goal | ||
| runs-on: ubuntu-latest | ||
| if: github.event_name == 'workflow_dispatch' && inputs.platform == 'android' && inputs.goal != '' | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: AppiumTestDistribution/AppClaw/github-action@${{ github.head_ref || 'main' }} | ||
| id: run | ||
| with: | ||
| goal: ${{ inputs.goal }} | ||
| platform: android | ||
| provider: gemini | ||
| api-key: ${{ secrets.LLM_API_KEY }} | ||
| report-name: layer3-android-goal-${{ github.run_id }} | ||
| - name: Show report path | ||
| if: always() | ||
| run: echo "Report → ${{ steps.run.outputs.report-path }}" | ||
| # ── Test 3: YAML flow on iOS ───────────────────────────────────────────────── | ||
| # Runs only on manual dispatch with ios platform selected | ||
| ios-flow: | ||
| name: iOS — YAML flow | ||
| runs-on: macos-14 | ||
| if: github.event_name == 'workflow_dispatch' && inputs.platform == 'ios' | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: AppiumTestDistribution/AppClaw/github-action@${{ github.head_ref || 'main' }} | ||
| id: run | ||
| with: | ||
| flow: ${{ inputs.flow || 'flows/youtube.yaml' }} | ||
| platform: ios | ||
| provider: gemini | ||
| api-key: ${{ secrets.LLM_API_KEY }} | ||
| report-name: layer3-ios-flow-${{ github.run_id }} | ||
| - name: Show report path | ||
| if: always() | ||
| run: echo "Report → ${{ steps.run.outputs.report-path }}" | ||