{"id":"6e445673-b0e4-4649-b568-37a89b6317c2","shortId":"fD2KHr","kind":"skill","title":"expo-cicd-workflows","tagline":"Helps understand and write EAS workflow YAML files for Expo projects. Use this skill when the user asks about CI/CD or workflows in an Expo or EAS context, mentions .eas/workflows/, or wants help with EAS build pipelines or deployment automation.","description":"# EAS Workflows Skill\n\nHelp developers write and edit EAS CI/CD workflow YAML files.\n\n## When to Use\n- You need to create, edit, or validate `.eas/workflows/*.yml` files for an Expo project.\n- The task involves EAS build pipelines, deployment automation, workflow triggers, or Expo CI/CD configuration.\n- You need schema-backed workflow guidance rather than relying on stale memorized syntax.\n\n## Reference Documentation\n\nFetch these resources before generating or validating workflow files. Use the fetch script (implemented using Node.js) in this skill's `scripts/` directory; it caches responses using ETags for efficiency:\n\n```bash\n# Fetch resources\nnode {baseDir}/scripts/fetch.js <url>\n```\n\n1. **JSON Schema** — https://api.expo.dev/v2/workflows/schema\n   - It is NECESSARY to fetch this schema\n   - Source of truth for validation\n   - All job types and their required/optional parameters\n   - Trigger types and configurations\n   - Runner types, VM images, and all enums\n\n2. **Syntax Documentation** — https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/syntax.mdx\n   - Overview of workflow YAML syntax\n   - Examples and English explanations\n   - Expression syntax and contexts\n\n3. **Pre-packaged Jobs** — https://raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/pre-packaged-jobs.mdx\n   - Documentation for supported pre-packaged job types\n   - Job-specific parameters and outputs\n\nDo not rely on memorized values; these resources evolve as new features are added.\n\n## Workflow File Location\n\nWorkflows live in `.eas/workflows/*.yml` (or `.yaml`).\n\n## Top-Level Structure\n\nA workflow file has these top-level keys:\n\n- `name` — Display name for the workflow\n- `on` — Triggers that start the workflow (at least one required)\n- `jobs` — Job definitions (required)\n- `defaults` — Shared defaults for all jobs\n- `concurrency` — Control parallel workflow runs\n\nConsult the schema for the full specification of each section.\n\n## Expressions\n\nUse `${{ }}` syntax for dynamic values. The schema defines available contexts:\n\n- `github.*` — GitHub repository and event information\n- `inputs.*` — Values from `workflow_dispatch` inputs\n- `needs.*` — Outputs and status from dependent jobs\n- `jobs.*` — Job outputs (alternative syntax)\n- `steps.*` — Step outputs within custom jobs\n- `workflow.*` — Workflow metadata\n\n## Generating Workflows\n\nWhen generating or editing workflows:\n\n1. Fetch the schema to get current job types, parameters, and allowed values\n2. Validate that required fields are present for each job type\n3. Verify job references in `needs` and `after` exist in the workflow\n4. Check that expressions reference valid contexts and outputs\n5. Ensure `if` conditions respect the schema's length constraints\n\n## Validation\n\nAfter generating or editing a workflow file, validate it against the schema:\n\n```sh\n# Install dependencies if missing\n[ -d \"{baseDir}/scripts/node_modules\" ] || npm install --prefix {baseDir}/scripts\n\nnode {baseDir}/scripts/validate.js <workflow.yml> [workflow2.yml ...]\n```\n\nThe validator fetches the latest schema and checks the YAML structure. Fix any reported errors before considering the workflow complete.\n\n## Answering Questions\n\nWhen users ask about available options (job types, triggers, runner types, etc.), fetch the schema and derive the answer from it rather than relying on potentially outdated information.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["expo","cicd","workflows","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-expo-cicd-workflows","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/expo-cicd-workflows","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34793 github stars · SKILL.md body (3,734 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T00:50:54.254Z","embedding":null,"createdAt":"2026-04-18T21:36:52.043Z","updatedAt":"2026-04-24T00:50:54.254Z","lastSeenAt":"2026-04-24T00:50:54.254Z","tsv":"'/expo/expo/refs/heads/main/docs/pages/eas/workflows/pre-packaged-jobs.mdx':202 '/expo/expo/refs/heads/main/docs/pages/eas/workflows/syntax.mdx':181 '/scripts':426 '/scripts/fetch.js':139 '/scripts/node_modules':421 '/scripts/validate.js':429 '/v2/workflows/schema':145 '1':140,346 '2':176,359 '3':195,370 '4':382 '5':391 'ad':230 'allow':357 'altern':328 'answer':451,471 'api.expo.dev':144 'api.expo.dev/v2/workflows/schema':143 'ask':22,455,514 'autom':44,82 'avail':304,457 'back':93 'basedir':138,420,425,428 'bash':134 'boundari':522 'build':40,79 'cach':128 'check':383,438 'ci/cd':24,54,87 'cicd':3 'clarif':516 'clear':489 'complet':450 'concurr':280 'condit':394 'configur':88,168 'consid':447 'constraint':400 'consult':285 'context':32,194,305,388 'control':281 'creat':64 'criteria':525 'current':352 'custom':334 'd':419 'default':274,276 'defin':303 'definit':272 'depend':323,416 'deploy':43,81 'deriv':469 'describ':493 'develop':49 'directori':126 'dispatch':316 'display':255 'document':104,178,203 'dynam':299 'ea':9,31,39,45,53,78 'eas/workflows':34,68,237 'edit':52,65,344,405 'effici':133 'english':189 'ensur':392 'enum':175 'environ':505 'environment-specif':504 'error':445 'etag':131 'etc':464 'event':310 'evolv':225 'exampl':187 'exist':378 'expert':510 'explan':190 'expo':2,14,29,73,86 'expo-cicd-workflow':1 'express':191,295,385 'featur':228 'fetch':105,116,135,150,347,433,465 'field':363 'file':12,57,70,113,232,247,408 'fix':442 'full':290 'generat':109,339,342,403 'get':351 'github':306,307 'guidanc':95 'help':5,37,48 'imag':172 'implement':118 'inform':311,480 'input':312,317,519 'instal':415,423 'involv':77 'job':159,199,209,212,270,271,279,324,325,326,335,353,368,372,459 'job-specif':211 'json':141 'key':253 'latest':435 'least':267 'length':399 'level':243,252 'limit':481 'live':235 'locat':233 'match':490 'memor':101,221 'mention':33 'metadata':338 'miss':418,527 'name':254,256 'necessari':148 'need':62,90,318,375 'new':227 'node':137,427 'node.js':120 'npm':422 'one':268 'option':458 'outdat':479 'output':216,319,327,332,390,499 'overview':182 'packag':198,208 'parallel':282 'paramet':164,214,355 'permiss':520 'pipelin':41,80 'potenti':478 'pre':197,207 'pre-packag':196,206 'prefix':424 'present':365 'project':15,74 'question':452 'rather':96,474 'raw.githubusercontent.com':180,201 'raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/pre-packaged-jobs.mdx':200 'raw.githubusercontent.com/expo/expo/refs/heads/main/docs/pages/eas/workflows/syntax.mdx':179 'refer':103,373,386 'reli':98,219,476 'report':444 'repositori':308 'requir':269,273,362,518 'required/optional':163 'resourc':107,136,224 'respect':395 'respons':129 'review':511 'run':284 'runner':169,462 'safeti':521 'schema':92,142,152,287,302,349,397,413,436,467 'schema-back':91 'scope':492 'script':117,125 'section':294 'sh':414 'share':275 'skill':18,47,123,484 'skill-expo-cicd-workflows' 'sourc':153 'source-sickn33' 'specif':213,291,506 'stale':100 'start':263 'status':321 'step':330,331 'stop':512 'structur':244,441 'substitut':502 'success':524 'support':205 'syntax':102,177,186,192,297,329 'task':76,488 'test':508 'top':242,251 'top-level':241,250 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':497 'trigger':84,165,261,461 'truth':155 'type':160,166,170,210,354,369,460,463 'understand':6 'use':16,60,114,119,130,296,482 'user':21,454 'valid':67,111,157,360,387,401,409,432,507 'valu':222,300,313,358 'verifi':371 'vm':171 'want':36 'within':333 'workflow':4,10,26,46,55,83,94,112,184,231,234,246,259,265,283,315,336,337,340,345,381,407,449 'workflow2.yml':430 'write':8,50 'yaml':11,56,185,240,440 'yml':69,238","prices":[{"id":"ce87cc5d-40e1-4e96-addc-e4c34fe14429","listingId":"6e445673-b0e4-4649-b568-37a89b6317c2","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:36:52.043Z"}],"sources":[{"listingId":"6e445673-b0e4-4649-b568-37a89b6317c2","source":"github","sourceId":"sickn33/antigravity-awesome-skills/expo-cicd-workflows","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/expo-cicd-workflows","isPrimary":false,"firstSeenAt":"2026-04-18T21:36:52.043Z","lastSeenAt":"2026-04-24T00:50:54.254Z"}],"details":{"listingId":"6e445673-b0e4-4649-b568-37a89b6317c2","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"expo-cicd-workflows","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34793,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T00:28:59Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"9ea77873473077a01f0d3bf0727bfca205b9e0bb","skill_md_path":"skills/expo-cicd-workflows/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/expo-cicd-workflows"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"expo-cicd-workflows","license":"MIT License","description":"Helps understand and write EAS workflow YAML files for Expo projects. Use this skill when the user asks about CI/CD or workflows in an Expo or EAS context, mentions .eas/workflows/, or wants help with EAS build pipelines or deployment automation."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/expo-cicd-workflows"},"updatedAt":"2026-04-24T00:50:54.254Z"}}