Skip to content

Proposal: Multi step workflows #82

Description

@pelikhan

Extend the action workflow syntax to support multiple job workflows.

Design principles:

  1. the naive user will assume that execution is sequential
  2. they will assume there is only one checked out copy of the repo
  3. they will want different permissions and tools for each agentic part
  4. they will assume the built/package content from a previous stage is available in subsequent stages
  5. they might assume the full conversation history from a previous stage is available in subsequent stage

Note: these principles are not all possible. The user can't have them all given current Actions capabilities.

Design

  1. each frontmatter section determines a new job
  2. a job can be named with the "id" field in the frontmatter (if there is no id: then infer one from the first header in the section of markdown, e.g. "## Do this" becomes "id: do-this", these inferred ids must be checked to be unique)
  3. jobs are implicitly sequenced using the "depends" keyword in the compiled workflow
  4. the jobs are sequenced by using needs:
  5. the cli will validate for invalid ids in the generated graph
  6. each job will have its own permissions section, services etc.
  7. only the first step is allowed to have a "on" section
    (In future, the output of a step automatically passed to another step though artifacts but we can skip this on this PR)

Example

---
on: ...
---
Step 1...

---
permissions: ...
---
Step 2 after step 1 

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions