[actions/checkout@v4] 404 Error on downloading tarball #87
Labels
No labels
Kind/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: forgejo/runner#87
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I am using this simple workflow:
... with the following runner config:
This workflow failed. The relevant log entries:
It look like the runner tried to download a tarball, but this is not github, this is my forgejo instance (which does not have such an endpoint)
FORGEJO__actions__DEFAULT_ACTIONS_URL=https://code.forgejo.org
andFORGEJO__actions__ENABLED=true
Does it work if the repository is public? There is a test that verifies v4 works here https://code.forgejo.org/actions/setup-forgejo/src/branch/main/testdata/example-checkout/.forgejo/workflows/v4.yml and it runs in the CI. So... it's not completely broken 😅
Do you confirm using 3.0.1?
Please correct me if I'am wrong: The actions/checkout action is a 1:1 mirror from github.com/actions/checkout without any modifications. The github actions/checkout makes use of some very GitHub specific features (API-Endpoints and so on). How does that action even work on a Forgejo instance? Are there any magic configuration flags I oversee here?
Here are my setup (striped down to the important parts):
docker-compose.yaml
runner/Dockerfile
runner/entrypoint.sh
runner/.runner
Yes. You can even verify that with the sha.
To get a baseline that work based on docker-compose can you try to run the provided example locally? If that works and it fails when you add the above workflow, there is a bug on Forgejo's side and I'll work on it.
I can not run the docker-in-docker on my hostsytem (AlpineLinux), because it depends heavily on iptables (I use nftables). Mounting the docker socket in the container so the container can use docker from the hostsystem works fine and I think this is not the problem here.
I replaced my own Dockerfile to build/run forgejo/runner with the provided image. This is the runner configured in docker-compose.yml now:
To be safe, I wiped all the docker cache on the hostsystem (
docker system prune -a
).But the problem remains the same:
I took a hard look at the docker compose example and found one problem preventing checkout (v3 or v4) from working. Which made the example much less useful really. #90 fixes that. However the symptoms are verify different from what you're experiencing and that does not help I'm afraid. Or does it?
Thank you for looking into it.
I also did a deep-dive into the actions/checkout package and found out, that if the git binary is not available, a fallback is triggered, which then try to download the tarball over the Github API instead 🙈 My problem was that I used the
node:16-bullseye-slim
image -- which do /not/ contain the git binary. Installing git as a step before the actions/checkout action solved my problem 🥳Thanks a good one!
Can this be closed?
yes.