actions / actions/runner-container-hooks
Optionally copy files from step to runner
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 153
- Forks
- 112
- Avg merge
- 6m
- Merged PRs (30d)
- 1
Description
The consensus is that all steps in a job should be able to share files. Previously this was done via a PersistentVolume and since v0.8 this is handled via copying files from the workflow pod to the runner pod and vice versa.
However, if you have a job that only contains of steps that do not run a step container, you do not need the copy functionality because everything runs in the same workflow pod.
Assume that you have 8 of these 'run' steps in a job, and you are working with a node project with quite some dependencies, you will notice that your node_module directory gets quite large. Currently for every step, your entire working directory (including your node_modules) is copied over the the runner. For then to be copied back to the same workflow pod. This adds some massive delays that can be avoided. I know you can work around this by putting all those 'run' steps in a single step, but that does not seem very elegant to me.
Can we make it so that the copy functionality is only executed if there is at least one container action in your job. Because if there is no container action present in your job, I do not see the value of copying everything to the runner and back to the workflow pod.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing where files are copied between the workflow pod and runner pod for each job step, then inspect how container actions are identified. Done means copying is skipped when a job has no container action, while jobs containing at least one container action retain the existing copy behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, typescript
- Domain
- ci-cd
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100