Description
Is your feature request related to a problem? Please describe.
With actions/github script it's not possible to setup some cleanup logic to run at the end of the job.
Describe the solution you'd like
A post
hook is supported by node20
actions. Adding support for this would not be too difficult on github-script, as it's just a separate function that can be set on an additional post
input.
The change would be fully backwards compatible and not too disruptive.
Usage would look like this:
- name: My github script
uses: actions/github-script@v7
with:
script: |
console.log("Running my github script");
post: |
console.log("Running cleanup logic for my github script");
State sharing between both scripts would be supported out of the box by core.saveState
, so this would be a very powerful addition.
I'm willing to work on a PR for this feature in the next few days.
Describe alternatives you've considered
- Using an additional action with
if: always()
for cleanup, this requires putting the cleanup step at the end of the job, potentially far from the step it's cleaning after. - Using a node action directly: this would require duplicating parts of this project for toolkit set up.
Additional context
Use case where the need for this has come up: creating a "check" (github.rest.checks.create
) at the beginning of a job, and making sure the check is marked as completed at the end (either with success or failure based on the job status)