Files
runner/docs/adrs/1040-composite-supports-action-steps.md
eric sciple 2aff5d4d8b .
2021-04-07 11:51:58 -05:00

2.0 KiB

Date: 2021-04-06

Status: Accepted

Context

We will add support for actions to be referenced, with composite actions.

Decision

TODO:

  • Decide recursion limit

Consequences

TODO: Move these details into a tracking issue instead

  • Launch
    • New feature flag
    • Move Action policy enforcement from workflow run, to resolve actions endpoint
  • Runner
    • New feature flag
    • Download all nested actions
      • Decide recursion limit
      • src/Runner.Worker/ActionManager.cs
      • Precursor: Remove feature flag DistributedTask.NewActionMetadata
    • Update schema to support uses within a composite step
      • src/Runner.Worker/action_yaml.json
      • src/Sdk/DTPipelines/Pipelines/ObjectTemplating/PipelineTemplateConverter.cs
      • Mimic server validation, generate IDs, etc
    • Handle inputs/outputs between nested layers
      • Update server to generate context names when empty
    • Fix issue with hashFiles within a composite action
    • Support container-actions and actions with pre-step and post-step
      • Composite actions is intended double as a re-use mechanism. So pre/post support is critical, and should execute in the normal order.
      • Investigate how to deal with pre-steps. Today, nested steps are created just-in-time. However, pre-steps are generally executed before regular steps. Also, container actions implicitly have a pre-step to pull or build the image
      • Investigate whether we copy the continue-on-error setting to the pre/post steps
      • Investigate CompositeActionHandler.cs especially wrt clearing the output scopes
      • Investigate whether we need additional validation to restrict contexts available to pre-step condition and post-step condition
    • Testing
      • Support all types of action manifests: Node.js, Dockerfile, docker://, composite, no manifest only Dockerfile
      • Support all types of action references: docker://, ./, owner/repo@ref
      • Support for actions with pre-step and post-step. For pre/post, also test intra-action-state