stefanbuck / github-issue-parser

MIT License
86 stars 19 forks source link

3.2.2 file not found regression #74

Open jrobison-sb opened 5 months ago

jrobison-sb commented 5 months ago

When I attempt to use the newly released version 3.2.2 of this action, it fails. This was working nicely for us on prior versions for a long time.

Reproduction case

This workflow: https://github.com/jrobison-sb/devops-3113/blob/main/.github/workflows/example.yml

This issue form: https://github.com/jrobison-sb/devops-3113/blob/main/.github/ISSUE_TEMPLATE/example.yml?plain=1

Results in this workflow / this error: https://github.com/jrobison-sb/devops-3113/actions/runs/9320842003/job/25658517099#step:3:8

Thanks.

gr2m commented 5 months ago

hmm the reason is that the dist/ folder does not exist in https://github.com/stefanbuck/github-issue-parser/tree/v3.2.0. Compare to https://github.com/stefanbuck/github-issue-parser/tree/v3.1.1 where it does exist.

I recommend to use stefanbuck/github-issue-parser@v3.1.1 for the time being. In order to fix this problem for good, I recommend we mirror the setup of https://github.com/actions/create-github-app-token. I won't have time to look into it myself right now though

gr2m commented 5 months ago

or better, use stefanbuck/github-issue-parser@v3

jrobison-sb commented 5 months ago

@gr2m thanks for your reply.

Yes, pinning stefanbuck/github-issue-parser@v3.1.1 unblocked us on this, at least for now.

I would expect stefanbuck/github-issue-parser@v3 to be the same thing as v3.2.0, since v3.2.0 is currently the latest release, though our desire to pin v3.2.0 isn't necessarily the same thing as pinning v3. We previously did use @v3, and got bit by a breaking change which shipped with v3.2.0. So as part of modifying our usage to fix that breaking change, we wanted specific version pins which will help us avoid similar breaking changes in the future.

gr2m commented 5 months ago

what is the breaking change though? It was definitely not intended, I thought this was an internal implementation detail

jrobison-sb commented 5 months ago

@gr2m

The breaking change is that the json result isn't in the home directory anymore, so cat ${HOME}/issue-parser-result.json doesn't work anymore. We had been successfully using this for a long time:

      - uses: stefanbuck/github-issue-parser@v3
        id: issue-parser
        with:
          template-path: .github/ISSUE_TEMPLATE/prep-for-software-update.yml # optional but recommended

      - name: Read input from the issue, just for ease of troubleshooting if something was wrong
        run: cat ${HOME}/issue-parser-result.json | jq -S .

But upon the release of v3.2.0, it broke (this comes from a non-public repo, not the same one I linked initially):

image

On 3.2.0 the json result should now be referenced by way of cat ${{ runner.temp }}/issue-parser-result.json. We attempted to modify our usage and pin 3.2.0 at the same time, to protect us from similar issues in the future, and that's how I arrived at the missing dist folder.

Thanks again for following up on this.

gr2m commented 5 months ago

reverting via #75

gr2m commented 5 months ago

See also https://github.com/actions/create-github-app-token

joshjohanning commented 5 months ago

Ahh. I see how this could have caused an issue for folks referencing the parsed json file. Bummer!

I think it makes a lot of sense for the runner.temp to be a v4 instead. And also in v4, there should be an additional output parameter for the file path so that people can use the output vs a ‘hardcoded’ file path.