You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would be great to be able to retry. My use case is that I have different workflows that push to a PR with pull: --rebase. However it can happen that Workflow 1 pulls, then workflow 2 pulls, then workflow 1 pushes, and then workflow 2 will fail; even though it did rebase, it rebased too early.
I don't know how I feel about this: I get your situation, but wouldn't it be better to execute those jobs one after the other in the first place? There's a needs options you can use to make one job start only after one has ended: this way you'll be sure to run the second one with the correct repo.
Both steps that usesadd-and-commit actually are the "same" step, they are just executed as part of a different matrix combination. Here's an example:
name: screenshotsjobs:
screenshots:
runs-on: ubuntu-lateststrategy:
matrix:
device: [ 'desktop', 'mobile' ]steps:
- uses: actions/checkout@v2
- name: generate screenshotsrun: ./generate-screenshots ${{ matrix.device }}
- name: Commit screenshotsuses: EndBug/add-and-commit@v7.4.0with:
message: "Update screenshots for ${{ matrix.device }}"# --rebase: make sure both the mobile and desktop screenshots can be# uploadedpull: "--rebase"
I like the needs solution, although AFAICT I can only use that for a job. Also I do want to run the generation part concurrently, I only want to commit sequentially. I think I'll try to extract the add-and-commit into a new job that aggregates the results from the other jobs. Thanks!
Oh it's been a while! If I (re) understand the issue and solution correctly, I ended up doing this:
I think I'll try to extract the add-and-commit into a new job that aggregates the results from the other jobs.
In particular, here's the matrix job (in your case you'd probably replace desktop/mobile for firefox/chrome/whatever)
# Job that starts the showcase and takes a screenshot of every pagescreenshots:
runs-on: ubuntu-lateststrategy:
matrix:
device: [ 'desktop', 'mobile' ]# Make sure that one failing test does not cancel all other matrix jobsfail-fast: false
I have a big mono-repo, which many different workflows push to.
Unfortunately I don't have a way to "sync" the workflows, or share artifacts between them, as suggested above.
Adding a retry_push: <bool> flag, and maybe also retry_push_attempts: <int>, would be amazing 🙏
@GreasyAvocado Since it seems like a lot of people would find it useful, I guess it's worth implementing it 😄
I'll reopen this issue and put it as pinned so it doesn't go stale, but I can't promise I'll have the time to make it happen soon.
However, if somebody wants to open a PR, I'd suggest adding only something like push_attempts and make it 1 by default ;)
Reacted by Arthur Bogin, Nicolas Mattia, Or Cohen, Matan, Kamil Szymański, Amit Baranes, Tomer Cohen TC, Samuel T., Shamil Sattarov and Stanislav Mambek
Activity
EndBug commentedon Nov 5, 2021
I don't know how I feel about this: I get your situation, but wouldn't it be better to execute those jobs one after the other in the first place? There's a
needsoptions you can use to make one job start only after one has ended: this way you'll be sure to run the second one with the correct repo.nmattia commentedon Nov 5, 2021
Thanks for the quick reply,
Both steps that
usesadd-and-commitactually are the "same" step, they are just executed as part of a different matrix combination. Here's an example:I like the
needssolution, although AFAICT I can only use that for a job. Also I do want to run the generation part concurrently, I only want to commit sequentially. I think I'll try to extract theadd-and-commitinto a new job that aggregates the results from the other jobs. Thanks!Twixes commentedon Feb 17, 2023
I'm running into the exact situation (committing UI screenshots updated across a few browsers in a matrix)! How did you sort it out @nmattia?
nmattia commentedon Feb 23, 2023
Oh it's been a while! If I (re) understand the issue and solution correctly, I ended up doing this:
In particular, here's the matrix job (in your case you'd probably replace desktop/mobile for firefox/chrome/whatever)
and here's the "aggregator":
Here's the workflow for reference: dfinity/internet-identity/.github/workflows/frontend-check.yml
Let me know if you have any questions!
Twixes commentedon Feb 23, 2023
Ah, communicating via artifacts, that's clever! Thanks
GreasyAvocado commentedon Oct 1, 2023
Hi @EndBug Any chance to reconsider this?
I have a big mono-repo, which many different workflows push to.
Unfortunately I don't have a way to "sync" the workflows, or share artifacts between them, as suggested above.
Adding a
retry_push: <bool>flag, and maybe alsoretry_push_attempts: <int>, would be amazing 🙏For example:
WDYT?
EndBug commentedon Oct 4, 2023
@GreasyAvocado Since it seems like a lot of people would find it useful, I guess it's worth implementing it 😄
I'll reopen this issue and put it as pinned so it doesn't go stale, but I can't promise I'll have the time to make it happen soon.
However, if somebody wants to open a PR, I'd suggest adding only something like
push_attemptsand make it1by default ;)Amit-Baranes-Deel commentedon Jul 22, 2024
any update on this one?
feat: add push_attempts to retry failed pushes (#321) (#764)
EndBug commentedon Aug 9, 2026
@all-contributors please add @nmattia for their idea
allcontributors commentedon Aug 9, 2026
@EndBug
I've put up a pull request to add @nmattia! 🎉