-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaction.yml
More file actions
153 lines (141 loc) · 4.48 KB
/
Copy pathaction.yml
File metadata and controls
153 lines (141 loc) · 4.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
name: 'AutoSpec AI - Android E2E Test Generator'
description: 'Automatically generates Android E2E tests (Maestro/Espresso) from commit diffs using LLMs'
author: 'autospec-ai'
branding:
icon: 'smartphone'
color: 'green'
inputs:
# --- LLM Configuration ---
llm_provider:
description: 'LLM provider: anthropic | openai | custom'
required: false
default: 'anthropic'
llm_api_key:
description: 'API key for the LLM provider (use GitHub secrets)'
required: true
llm_model:
description: 'Model to use (defaults: claude-sonnet-4-20250514 for anthropic, gpt-4o for openai)'
required: false
default: ''
llm_base_url:
description: 'Custom base URL for OpenAI-compatible providers (e.g., Ollama, Together, Groq)'
required: false
default: ''
# --- Android Configuration ---
application_id:
description: 'Android application ID (auto-detected from build.gradle if not set)'
required: false
default: ''
module_path:
description: 'Path to the Android module (e.g., app)'
required: false
default: 'app'
min_sdk:
description: 'Minimum SDK version (auto-detected from build.gradle if not set)'
required: false
default: ''
build_variant:
description: 'Build variant to target'
required: false
default: 'debug'
launcher_activity:
description: 'Launcher activity class (auto-detected from AndroidManifest.xml if not set)'
required: false
default: ''
android_framework:
description: 'UI framework hint: compose | views | hybrid'
required: false
default: 'hybrid'
# --- Test Framework ---
test_framework:
description: 'Test framework: maestro | espresso'
required: false
default: 'maestro'
test_directory:
description: 'Directory where generated tests will be written'
required: false
default: '.maestro/generated'
test_pattern:
description: 'Comma-separated glob patterns to find existing tests'
required: false
default: '.maestro/**/*.yaml,.maestro/**/*.yml'
# --- Emulator ---
emulator_api:
description: 'Android API level for emulator'
required: false
default: '34'
device_profile:
description: 'Device profile name'
required: false
default: 'pixel_6'
# --- Diff Configuration ---
diff_mode:
description: 'How to determine changes: auto | pr | push'
required: false
default: 'auto'
include_paths:
description: 'Comma-separated path prefixes to include (e.g., app/src/main/)'
required: false
default: ''
exclude_paths:
description: 'Comma-separated path prefixes to exclude'
required: false
default: 'test/,androidTest/,.github/,docs/,README,build/,.gradle/'
# --- Behavior ---
auto_commit:
description: 'Automatically commit generated tests'
required: false
default: 'false'
auto_pr:
description: 'Create a PR with generated tests instead of committing to branch'
required: false
default: 'true'
max_test_files:
description: 'Maximum number of test files to generate per run'
required: false
default: '5'
dry_run:
description: 'Preview generated tests without writing files'
required: false
default: 'false'
custom_instructions:
description: 'Additional instructions for the LLM when generating tests'
required: false
default: ''
# --- API Mock Generation ---
generate_api_mocks:
description: 'Detect API dependencies and generate mock config in tests'
required: false
default: 'false'
mock_strategy:
description: 'Mock strategy: maestro-mock | mockwebserver | okhttp-interceptor'
required: false
default: 'maestro-mock'
fixture_extraction_threshold:
description: 'Number of API mock blocks above which fixtures are extracted into a shared file'
required: false
default: '3'
# --- Screenshot Comparison ---
screenshot_comparison:
description: 'Add screenshot comparison assertions to tests'
required: false
default: 'false'
# --- Accessibility ---
accessibility_checks:
description: 'Add accessibility check assertions to tests'
required: false
default: 'false'
outputs:
tests_generated:
description: 'Number of test files generated'
test_files:
description: 'JSON array of generated test file paths'
pr_number:
description: 'PR number if auto_pr is enabled'
summary:
description: 'Human-readable summary of what was generated'
fixture_files:
description: 'JSON array of generated fixture/mock file paths'
runs:
using: 'node20'
main: 'dist/index.js'