Skip to content

Local composite actions always relative to top level repository #1348

Open
@nyarly

Description

@nyarly

Describe the bug

I'm building a set of actions for my organization, and I would like to re-use common sections as composite actions. This appears to be the motivating case around #646, and it certainly suits my needs.

However: I have a pattern like:

main repo

- uses: actions/checkout@v2-beta # check out your code
- uses: actions/checkout@v2-beta # check out the actions repo
  with:
    repository: my-org/github-actions
    ref: refs/tags/v1
    path: github-actions
- name: Run the private action
  uses: ./github-actions/build-em-all

then in my-org/github-actions /build-em-all/action.yml

#...
- uses: ./do-tedious-setup

My dilemma here is that the above won't work - the action is looked up relative the the consumer's workspace; so it should be - uses: ./github-actions/do-tedious-setup - but that's entirely dependent on the checkout in the consumer! The actions library has to expect that it's checked out in the right directory, which itself imposes a restriction on the file structure of consuming projects.

Even if I were to parameterize the checkout location, the uses field (probably rightfully) doesn't get any contexts to work from, so I can't deliver the input.

For the moment, I'm settling on documenting the requirement and hoping it doesn't cause a problem.

Expected behavior

It'd be great if actions were looked up with a Bash style PATH behavior and that a workflow could append items to the lookup list.

Runner Version and Platform

Version of your runner? Github hosted ubuntu-latest

Metadata

Metadata

Assignees

No one assigned

    Labels

    Runner BugBug fix scope to the runnerbugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions