Open
Description
Hey!
Is there a way to get a ref
to work like an optional OR? For example:
// GITHUB_HEAD_REF being the name of the branch if my google-foo didn't fail me
ref: ${GITHUB_HEAD_REF} || master
My use-case: I have multiple repos that depend on each other sometimes. If they do, they all share the same branch name for a feature (e.g feature/add-tests
). I want to pull the repos with those branches when they exist, but if they don't (as it's not always necessary to change code in all repos), it'll pull master
.
Thanks!
Metadata
Metadata
Assignees
Labels
No labels
Activity
obedparla commentedon May 24, 2021
Thinking about this further, I guess I can just run a bash command before this to define the branch name and export a variable to use in the checkout action. But if I have multiple repos this would become a lot of copy paste code for each repo 😄
I'm just wondering wether there's built-in way, or maybe a potential feature?
vicmassy commentedon Nov 4, 2021
Looking for the same feature here!
Any updates on this?
iBotPeaches commentedon Dec 6, 2021
Just hit this, this would be so handy. Now I'm thinking I'll also take a route of checking if the branch is available in the other repo.
vinayakkulkarni commentedon Aug 4, 2022
Is there a workaround for this?
tristan957 commentedon Aug 4, 2022
@vinayakkulkarni here is a pattern that I have been using.
https://github.com/hse-project/hse/blob/master/.github/workflows/builds.yaml#L99
Determine if branch exists using
git ls-remote
.chingc commentedon Oct 2, 2022
I have a similar use case and was hoping actions/checkout would have something like a
fallback-to-default
boolean option. For the longest time I've been copy/pasting some ugly bash I wrote, but I recently got tired of it and wrote a composite action. I've included it below. The options you see are all the ones I need for my use case, so I didn't bother adding anything else. Feel free to modify it. Hope you find it useful.YBadiss commentedon Apr 4, 2024
For anyone looking for other simple options, you can use
continue-on-error
andsteps.<step_id>.outcome
to achieve this fallback pretty easily:acoulton commentedon Apr 23, 2025
It's a shame this isn't directly supported. The solution in #512 (comment) works but it takes a while to run because actions/checkout attempts 2 retries at 12 second intervals before the
bad-checkout
step fails and the job continues to create the new branch.