Open vivodi opened 6 days ago
I was looking at your last failed job in https://github.com/vivodi/docker-flexget/actions/runs/11629651174/job/32387025483#step:7:212
And doesn't seem commit 569a8e0674b0f11330577cddb340fbc67871e4f2
belongs to any branch on your repo as also shown on GitHub: https://github.com/vivodi/docker-flexget/tree/569a8e0674b0f11330577cddb340fbc67871e4f2.
on a merge commit
I don't think you can safely rely on merge commit as this is a reference created by GitHub to keep track of what would happen if a pull request was merged and could therefore not be part of the working tree.
in a pull_request_target event.
Also why do you want to rely on pull_request_target
and not pull_request
? Fyi pull_request_target
runs in the context of the base of the pull request, rather than in the context of the merge commit, as the pull_request
event does so would not take any changes in your PR into account. Maybe that's why you need github.event.pull_request.merge_commit_sha
but I'm confused on the purpose of your workflow.
- uses: docker/bake-action@v5 with: source: ${{ github.server_url }}/${{ github.repository }}.git#${{ github.event.pull_request.merge_commit_sha }}
Did you try with?:
- uses: docker/bake-action@v5
with:
source: "{{defaultContext}}"
pull_request_target
can access secrets, while pull_request
cannot.
I want to publish Docker images generated by PRs for testing, just with running docker pull vivodi/flexget:pr-<pr number>
. To publish images I have to use pull_request_target
instead of pull_request
because the workflow needs access to secrets. (I save my Docker Hub password in repo secrets for publishing.)
For pull_request_target
, {{defaultContext}}
gets the context of the base of the pull request, so it doesn't satisfy my need as I need the context of the merge commit.
I think it's safe to rely on merge commits as pull_request
runs in the context of the merge commit.
Most importantly,
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.merge_commit_sha }}
- uses: docker/bake-action@v5
works, but
- uses: docker/bake-action@v5
with:
source: ${{ github.server_url }}/${{ github.repository }}.git#${{ github.event.pull_request.merge_commit_sha }}
doesn't work, so I believe it's a bug with docker/bake-action
.
Merge commits are indeed not part of the working tree, but pull_request
use them as context, so it is safe. actions/checkout
can read them successfully, but docker/bake-action
cannot, so I believe it's a bug with docker/bake-action
.
Contributing guidelines
I've found a bug, and:
Description
Unable to use merge commit hash in the source input:
This is equivalent to:
docker/bake-action@v5
cannot find the merge commit, whileactions/checkout@v4
can.This bug prevents building a Docker image based on a merge commit in a pull_request_target event.
Expected behaviour
Image is successfully built based on merge commit.
Actual behaviour
docker/bake-action@v5
cannot find the merge commit, whileactions/checkout@v4
can.Repository URL
No response
Workflow run URL
No response
YAML workflow
Workflow logs
No response
BuildKit logs
No response
Additional info
No response