Skip to content

fix(ci): retry lint step to handle transient pkl fetch failures#341

Merged
jdx merged 1 commit intomainfrom
fix/ci-lint-retry
Mar 9, 2026
Merged

fix(ci): retry lint step to handle transient pkl fetch failures#341
jdx merged 1 commit intomainfrom
fix/ci-lint-retry

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented Mar 9, 2026

Summary

  • Wraps the "Check formatting" (mise run lint) step in nick-fields/retry with 3 attempts, matching the existing retry pattern used for bats tests
  • Fixes transient CI failures caused by GitHub returning 502 when pkl fetches the hk config package from GitHub Releases

Context

https://github.com/jdx/fnox/actions/runs/22832770600/job/66223824636

Test plan

  • CI passes on this PR itself

🤖 Generated with Claude Code


Note

Low Risk
CI-only change that alters retry behavior for linting; no production code paths or security-sensitive logic are affected.

Overview
Improves CI resilience by wrapping the Check formatting step (mise run lint) in nick-fields/retry with a 5-minute timeout and up to 3 attempts, matching the retry behavior already used elsewhere in the workflow.

Written by Cursor Bugbot for commit 0b79f3a. This will update automatically on new commits. Configure here.

The hk lint tool fetches its pkl config from GitHub releases, which can
intermittently return 502 errors. Wrap in nick-fields/retry like the
bats tests already use.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported.

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Mar 9, 2026

Greptile Summary

This PR wraps the Check formatting CI step (mise run lint) with the nick-fields/retry action (3 attempts, 5-minute timeout) to handle transient 502 failures that occur when pkl fetches the hk config package from GitHub Releases. The fix follows the exact same pattern already used for the bats test step in the same workflow.

  • Uses the same pinned action commit (ce71cc2ab81d554ebbe88c79ab5975992d79ba08 / v3) as the existing retry step, ensuring consistency.
  • Timeout of 5 minutes is appropriate for a lint operation (the bats step uses 10 minutes).
  • The lint command is stateless with no side effects between attempts, making it a safe candidate for retries.
  • No logic, syntax, or security issues identified.

Confidence Score: 5/5

  • This PR is safe to merge — it is a minimal, well-precedented CI reliability fix with no logic changes.
  • The change is a single-step modification that directly mirrors an established pattern already present in the same workflow file. The pinned action hash, retry count, and usage pattern are all consistent with the rest of the workflow. Lint is a stateless operation, so retrying it carries no risk of side effects or false passes.
  • No files require special attention.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[CI: ci-other job] --> B[Run tests - cargo test]
    B --> C{Check formatting<br/>nick-fields/retry v3<br/>max_attempts: 3<br/>timeout: 5 min}
    C -->|attempt succeeds| D[Run clippy]
    C -->|attempt fails, attempts remaining| C
    C -->|all 3 attempts fail| E[Job fails]
    D --> F[Job passes]
Loading

Last reviewed commit: 0b79f3a

@jdx jdx enabled auto-merge (squash) March 9, 2026 00:17
@jdx jdx merged commit bfb51d4 into main Mar 9, 2026
18 checks passed
@jdx jdx deleted the fix/ci-lint-retry branch March 9, 2026 00:23
jdx pushed a commit that referenced this pull request Mar 9, 2026
### 🚀 Features

- **(cloudflare)** add Cloudflare API token lease backend by
[@jdx](https://github.com/jdx) in
[#335](#335)
- **(fido2)** bump demand to v2, mask PIN during typing by
[@jdx](https://github.com/jdx) in
[#334](#334)
- **(init)** add -f as short alias for --force by
[@jdx](https://github.com/jdx) in
[#329](#329)
- **(lease)** add --all flag, default to creating all leases by
[@jdx](https://github.com/jdx) in
[#337](#337)
- **(lease)** add GitHub App installation token lease backend by
[@jdx](https://github.com/jdx) in
[#342](#342)

### 🐛 Bug Fixes

- **(config)** fix directory locations to follow XDG spec by
[@jdx](https://github.com/jdx) in
[#336](#336)
- **(exec)** use unix exec and exit silently on subprocess failure by
[@jdx](https://github.com/jdx) in
[#339](#339)
- **(fido2)** remove duplicate touch prompt by
[@jdx](https://github.com/jdx) in
[#332](#332)
- **(set)** write to lowest-priority existing config file by
[@jdx](https://github.com/jdx) in
[#331](#331)
- **(tui)** skip providers requiring interactive auth by
[@jdx](https://github.com/jdx) in
[#333](#333)

### 🛡️ Security

- **(ci)** retry lint step to handle transient pkl fetch failures by
[@jdx](https://github.com/jdx) in
[#341](#341)
- **(mcp)** add MCP server for secret-gated AI agent access by
[@jdx](https://github.com/jdx) in
[#343](#343)
- add guide for fnox sync by [@jdx](https://github.com/jdx) in
[#328](#328)

### 🔍 Other Changes

- share Rust cache across CI jobs by [@jdx](https://github.com/jdx) in
[#340](#340)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant