Improve CI reliability by allowing for better retry behavior. (#19834)
* Add automatic retries for changelog generation step. This particular step of the release process (both in nightlies and regular releases) is unfortunately rather buggy and unreliable. Long-term we are likely going to replace it, but this should make it work more consistently until that happens. * Cut timeout for static build step to 150 minutes. Normal runtime for these jobs is at most 100 minutes. Cutting at 150 means we can retry once if things hang or inexplicably take way too long without the step itself timing out on GitHub Actions, while still having plenty of extra time to work wtih. * Resolve actionlint issues.
Austin S. Hemmelgarn committed
Mar 19, 2025 at 07:17 UTC
92e88f0c8d36a00c71454bb8695b50817623f0c9
2 files changed
+29
-21
.github/workflows/build.yml
+2
-2
@@ -284,8 +284,8 @@ jobs:
284
id: build
285
uses: nick-fields/retry@v3
286
with:
287
- timeout_minutes: 360
288
- max_attempts: 3
287
+ timeout_minutes: 150
288
+ max_attempts: 2
289
command: |
290
export EXTRA_INSTALL_FLAGS=${{ needs.file-check.outputs.skip-go }}
291
[ "${{ matrix.qemu }}" == "true" ] || export SKIP_EMULATION=1
.github/workflows/release.yml
+27
-19
@@ -46,30 +46,38 @@ jobs:
46
- name: Generate Nightly Changleog
47
id: nightly-changelog
48
if: steps.target.outputs.run == 'true' && steps.target.outputs.type == 'nightly'
49
- uses: heinrichreimer/github-changelog-generator-action@v2.4
49
+ uses: Wandalen/wretry.action@v3
50
with:
51
- bugLabels: IGNOREBUGS
52
- excludeLabels: "stale,duplicate,question,invalid,wontfix,discussion,no changelog"
53
- issues: false
54
- sinceTag: v1.10.0
55
- token: ${{ secrets.NETDATABOT_GITHUB_TOKEN }}
56
- unreleasedLabel: "**Next release**"
57
- verbose: true
58
- maxIssues: 500
51
+ action: heinrichreimer/github-changelog-generator-action@v2.4
52
+ attempt_limit: 3
53
+ attempt_delay: 60
54
+ with: |
55
+ bugLabels: IGNOREBUGS
56
+ excludeLabels: "stale,duplicate,question,invalid,wontfix,discussion,no changelog"
57
+ issues: false
58
+ sinceTag: v1.10.0
59
+ token: ${{ secrets.NETDATABOT_GITHUB_TOKEN }}
60
+ unreleasedLabel: "**Next release**"
61
+ verbose: true
62
+ maxIssues: 500
63
- name: Generate Release Changelog
64
id: release-changelog
65
if: steps.target.outputs.run == 'true' && steps.target.outputs.type != 'nightly'
62
- uses: heinrichreimer/github-changelog-generator-action@v2.4
66
+ uses: Wandalen/wretry.action@v3
67
with:
64
- bugLabels: IGNOREBUGS
65
- excludeLabels: "stale,duplicate,question,invalid,wontfix,discussion,no changelog"
66
- futureRelease: ${{ github.event.inputs.version }}
67
- issues: false
68
- sinceTag: v1.10.0
69
- token: ${{ secrets.NETDATABOT_GITHUB_TOKEN }}
70
- unreleasedLabel: "**Next release**"
71
- verbose: true
72
- maxIssues: 500
68
+ action: heinrichreimer/github-changelog-generator-action@v2.4
69
+ attempt_limit: 3
70
+ attempt_delay: 60
71
+ with: |
72
+ bugLabels: IGNOREBUGS
73
+ excludeLabels: "stale,duplicate,question,invalid,wontfix,discussion,no changelog"
74
+ futureRelease: ${{ github.event.inputs.version }}
75
+ issues: false
76
+ sinceTag: v1.10.0
77
+ token: ${{ secrets.NETDATABOT_GITHUB_TOKEN }}
78
+ unreleasedLabel: "**Next release**"
79
+ verbose: true
80
+ maxIssues: 500
81
- name: Commit Changes
82
id: commit
83
if: steps.target.outputs.run == 'true'