Skip to content

fix: add semantic-release for automated versioning and npm publishing #22

fix: add semantic-release for automated versioning and npm publishing

fix: add semantic-release for automated versioning and npm publishing #22

name: AppClaw Action — Branch Test (Layer 3)

Check failure on line 1 in .github/workflows/layer3-branch-test.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/layer3-branch-test.yml

Invalid workflow file

(Line: 42, Col: 15): Unrecognized named-value: 'github'. Located at position 1 within expression: github.head_ref || 'main', (Line: 65, Col: 15): Unrecognized named-value: 'github'. Located at position 1 within expression: github.head_ref || 'main', (Line: 88, Col: 15): Unrecognized named-value: 'github'. Located at position 1 within expression: github.head_ref || 'main'
# 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 }}"