Skip to content

feat(driver-versions): improve workflow with idempotency, retry logic, and caching#595

Merged
castrojo merged 5 commits intomainfrom
quick/003-improve-driver-versions-workflow
Jan 28, 2026
Merged

feat(driver-versions): improve workflow with idempotency, retry logic, and caching#595
castrojo merged 5 commits intomainfrom
quick/003-improve-driver-versions-workflow

Conversation

@castrojo
Copy link
Contributor

Summary

  • Enhanced driver versions workflow with idempotency guarantees to prevent duplicate PRs
  • Added retry logic with exponential backoff for resilience against network failures
  • Implemented NVIDIA driver URL caching (committed to git) for performance
  • Comprehensive documentation in AGENTS.md covering architecture, troubleshooting, and maintenance
  • Updated monthly reports formatting to Hyperlight-style single-line changelog format

Key Improvements

Idempotency

  • Script checks if release already exists before adding
  • Deduplicates all rows by tag name within each section
  • Only writes file if content changes
  • Workflow checks for existing open PR before creating new one
  • Uses static branch name to prevent duplicate branches

Resilience

  • 3 retries with exponential backoff (2s, 4s, 8s delays)
  • Applies to GitHub API calls and NVIDIA website fetching
  • Rate limit detection with graceful exit
  • Handles transient network failures automatically

Performance

  • NVIDIA cache committed to git reduces scraping by ~80%
  • Cache persists across workflow runs
  • Only fetches URLs for new drivers (cache miss)

Documentation

  • Complete workflow architecture and data flow
  • Troubleshooting guide with common issues
  • Schedule and manual triggering instructions
  • NVIDIA cache persistence rationale
  • Upstream dependencies reference

Changes

  • .github/workflows/update-driver-versions.yml - Idempotency checks and PR handling
  • scripts/update-driver-versions.js - Retry logic, caching, deduplication
  • .nvidia-drivers-cache.json - Committed driver URL cache
  • AGENTS.md - Comprehensive workflow documentation
  • scripts/lib/markdown-generator.mjs - Hyperlight-style formatting
  • reports/*.mdx - Regenerated with new formatting

Testing

  • ✅ Tested locally with GITHUB_TOKEN
  • ✅ Verified idempotency (multiple runs produce no changes)
  • ✅ Validated cache persistence
  • ✅ Built and served site successfully
  • ✅ Regenerated December 2025 and January 2026 reports

castrojo and others added 5 commits January 27, 2026 22:39
- Remove .nvidia-drivers-cache.json from .gitignore
- Add retry logic with exponential backoff (2s/4s/8s delays)
- Add GitHub API rate limit detection and graceful handling
- Wrap GitHub API calls and NVIDIA fetching in retry wrapper
- Cache persists across workflow runs (reduces nvidia.com scraping by ~80%)
- Enhanced JSDoc documentation with usage examples

Improves workflow resilience against transient network failures.
- Add comprehensive "Driver Versions Workflow" section to AGENTS.md
- Document cache persistence rationale and behavior
- Include troubleshooting guide for common issues
- Add explanatory comments to workflow YAML
- Document manual triggering and testing procedures
- Explain upstream dependencies and modification guidelines
Summary of quick task 003 improvements:
- NVIDIA cache committed for persistence
- Retry logic with exponential backoff
- Rate limit detection
- Comprehensive documentation
- All success criteria met
… automation improvements can be made

Quick task completed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…e PRs

- Add workflow check for existing open PR before creating new one
- Update script to check if content actually changed before writing
- Add explicit idempotency logging in script and workflow
- Update AGENTS.md documentation with idempotency guarantees

Idempotency improvements:
- Script: Check if release exists, deduplicate rows, only write if changed
- Workflow: Check for existing PR, use static branch name
- Safe to run multiple times without creating duplicates

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@castrojo castrojo merged commit 2612f5e into main Jan 28, 2026
2 checks passed
@castrojo castrojo deleted the quick/003-improve-driver-versions-workflow branch January 28, 2026 04:06
@castrojo castrojo added the kind/automation CI/CD workflows, scripts, and automation tooling label Jan 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/automation CI/CD workflows, scripts, and automation tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant