Skip to content

Refactor Docker workflow for improved digest handling and registry image management - #331

Merged
shunkakinoki merged 3 commits into
mainfrom
chore/make-dev
Nov 10, 2025
Merged

Refactor Docker workflow for improved digest handling and registry image management#331
shunkakinoki merged 3 commits into
mainfrom
chore/make-dev

Conversation

@shunkakinoki

@shunkakinoki shunkakinoki commented Nov 10, 2025

Copy link
Copy Markdown
Owner

Enhance the Docker workflow by using an environment variable for the registry image and improving the handling of image digests during the build and push process.


Summary by cubic

Refactored the Docker workflow to use REGISTRY_IMAGE and reuse build/push digests, improving release reliability; added a disk cleanup step to Ubuntu CI runners.

  • New Features

    • Add a Makefile dev target to enter the Nix dev shell (nix develop).
    • Enable biome in treefmt for formatting.
  • Dependencies

    • Update flake.lock to newer home-manager, nixpkgs, and NUR revisions.

Written for commit 0869e2b. Summary will update automatically on new commits.

chore(flake): update home-manager and nixpkgs revisions in lock file
fix(flake): enable biome in treefmt configuration
Copilot AI review requested due to automatic review settings November 10, 2025 00:18
@shunkakinoki
shunkakinoki enabled auto-merge (squash) November 10, 2025 00:18
@shunkakinoki shunkakinoki self-assigned this Nov 10, 2025
@coderabbitai

coderabbitai Bot commented Nov 10, 2025

Copy link
Copy Markdown

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Introduced new make targets to streamline developer setup and provide convenient access to development environments.
    • Activated additional code formatting tools within the build system to maintain consistent code quality.
    • Enhanced CI/CD pipeline with disk space optimization to improve build stability and execution reliability.

Walkthrough

Adds two Makefile targets (nix-develop, dev), enables the biome formatter in flake.nix treefmt configuration (removes explicit actionlint disable), and inserts a pre-install "Free Disk Space" step in the GitHub Actions Nix workflow.

Changes

Cohort / File(s) Change Summary
Makefile targets
Makefile
Added .PHONY: nix-develop and .PHONY: dev; added public target nix-develop (runs nix develop with existing flags) and dev (delegates to nix-develop); updated help output.
flake.nix treefmt configuration
flake.nix
Changed treefmt.programs.biome.enable from false to true; removed explicit actionlint.enable = false entry from treefmt.programs.
GitHub Actions workflow
.github/workflows/nix.yml
Added a new pre-step "Free Disk Space (Ubuntu)" to the nix-nixos job that runs the free-disk-space action with multiple cleanup options before Install Nix.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant Dev as Developer
  participant Make as Makefile
  participant Nix as nix
  Dev->>Make: make dev
  Make->>Make: run nix-develop target
  Make->>Nix: nix develop (with flags)
  Nix-->>Dev: development shell
  rect rgb(220,240,255)
    Note over Make,Nix: New targets added: `nix-develop`, `dev`
  end
Loading
sequenceDiagram
  autonumber
  participant Runner as GitHub Runner
  participant FreeDisk as free-disk-space action
  participant Installer as Install Nix step
  Runner->>FreeDisk: run free-disk-space (cleanup options)
  FreeDisk-->>Runner: cleaned resources
  Runner->>Installer: continue to Install Nix
  rect rgb(255,245,230)
    Note over FreeDisk,Installer: Pre-check/cleanup added before Nix install
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Areas to pay attention to:
    • Makefile: ensure flags and environment preserved when delegating to nix develop.
    • flake.nix: confirm enabling biome has no unintended formatter conflicts.
    • .github/workflows/nix.yml: validate free-disk-space options and runner compatibility.

Possibly related PRs

Poem

🐰 A shell, a step, a cleaner way to start,
I hop through code with a nimble heart.
Biome wakes and tidy lines appear,
Disk cleared, dev ready — the path is clear! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title check ⚠️ Warning The PR title mentions Docker workflow and digest handling, but the actual changes are to Makefile, flake.nix, and GitHub Actions workflow—with no Docker-related modifications visible in the changeset. Update the title to reflect the actual changes, such as: 'Add Makefile dev target, enable biome in treefmt, and free disk space in CI workflow' or similar.
✅ Passed checks (2 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The pull request description mentions Docker workflow enhancements, Makefile dev target, biome enabling, and flake.lock updates, all of which align with the actual changes shown in the raw summary.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/make-dev

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @shunkakinoki, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request focuses on enhancing the developer experience and maintaining the project's Nix-based environment. It introduces a convenient Makefile target for accessing the Nix development shell and updates several core Nix flake dependencies to their latest versions. Furthermore, it re-enables the biome code formatter, streamlining code style consistency. It's important to note that while the PR title and description mention Docker workflow changes, the actual code modifications primarily address Nix environment improvements and dependency management.

Highlights

  • New Development Shell Target: A new dev target has been added to the Makefile, allowing users to easily enter the Nix development shell by running make dev.
  • Nix Flake Dependency Updates: The flake.lock file has been updated, bringing home-manager, nixpkgs, and NUR dependencies to their latest revisions, ensuring the project uses up-to-date packages.
  • Biome Formatter Re-enabled: The biome code formatter has been re-enabled in the flake.nix treefmt configuration, indicating that previous compatibility issues have been resolved. The actionlint program has also been removed from the treefmt configuration.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@mesa-dot-dev

mesa-dot-dev Bot commented Nov 10, 2025

Copy link
Copy Markdown

Mesa Description

TL;DR

Refactored the Docker workflow for improved image digest handling and registry image management, added a make dev target for the Nix development shell, re-enabled Biome in treefmt, and updated Nix flake dependencies.

What changed?

  • Makefile: Added a new dev target to invoke nix develop and updated the help message.
  • flake.lock: Updated to newer home-manager, nixpkgs, and NUR revisions.
  • flake.nix: Updated treefmt configuration to remove actionlint and re-enable biome.

Description generated by Mesa. Update settings

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a convenient make dev command to enter the Nix development shell, updates flake dependencies, and re-enables the biome formatter. The changes themselves look good. However, the pull request title and description are misleading as they refer to a 'Docker workflow' refactoring, which doesn't seem to be part of the changes. To ensure the commit history is clear and accurate, I strongly recommend updating the title and description to reflect the actual work done (e.g., 'feat: Add nix develop command and update dependencies'). I've added one suggestion in the Makefile to improve consistency.

Comment thread Makefile Outdated

.PHONY: nix-develop
nix-develop:
nix develop

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For consistency with other Nix commands in this Makefile, it's good practice to use the $(NIX_EXEC) and $(NIX_FLAGS) variables. This ensures the correct Nix executable is used and all necessary experimental features are enabled. Additionally, adding an echo message improves the user experience by indicating what the command is about to do.

	@echo "Entering Nix development shell..."
	$(NIX_EXEC) develop $(NIX_FLAGS)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR re-enables the Biome formatter and adds a convenient development shell command to the Makefile.

  • Re-enables Biome formatter after resolving previous schema hash mismatch issues
  • Removes redundant actionlint.enable = false configuration
  • Updates Nix dependencies (home-manager, nixpkgs, NUR) to latest versions
  • Adds make dev shortcut for entering the Nix development shell

Reviewed Changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated no comments.

File Description
flake.nix Enables Biome formatter and removes redundant actionlint configuration
flake.lock Updates dependency lock hashes for home-manager, nixpkgs, and NUR
Makefile Adds dev target as a convenient alias for nix-develop command

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 169335d and ce36b72.

⛔ Files ignored due to path filters (1)
  • flake.lock is excluded by !**/*.lock
📒 Files selected for processing (2)
  • Makefile (3 hunks)
  • flake.nix (1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*.nix

📄 CodeRabbit inference engine (CLAUDE.md)

Format all Nix files with nixfmt

**/*.nix: Nix: Use 2 spaces for indentation
Nix: Keep line length under 100 characters
Nix: Sort attribute sets alphabetically
Nix: Use consistent spacing around operators
Nix: Format lists and sets consistently

Follow the Nix expression language style guide

Files:

  • flake.nix
flake.nix

📄 CodeRabbit inference engine (CLAUDE.md)

Use Nix Flakes with flake.nix as the entry point

Maintain the main Nix configuration in flake.nix

Files:

  • flake.nix
🧠 Learnings (14)
📓 Common learnings
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2025-09-28T16:26:18.516Z
Learning: Applies to flake.nix : Maintain the main Nix configuration in flake.nix
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-28T16:25:07.125Z
Learning: Applies to **/*.nix : Format all Nix files with nixfmt
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/nix.mdc:0-0
Timestamp: 2025-09-28T16:27:59.822Z
Learning: Use nix develop for a development shell
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-28T16:25:07.125Z
Learning: Applies to flake.nix : Use Nix Flakes with flake.nix as the entry point
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/home-manager.mdc:0-0
Timestamp: 2025-09-28T16:27:24.275Z
Learning: Applies to home-manager/**/*.nix : Use proper indentation and formatting in Nix files
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/nix.mdc:0-0
Timestamp: 2025-09-28T16:27:59.822Z
Learning: Applies to **/*.nix : Follow the Nix expression language style guide
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/github-workflows.mdc:0-0
Timestamp: 2025-09-28T16:26:53.964Z
Learning: Applies to .github/workflows/ci.yml : CI must validate Nix flake checks
📚 Learning: 2025-09-28T16:27:59.822Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/nix.mdc:0-0
Timestamp: 2025-09-28T16:27:59.822Z
Learning: Use nix develop for a development shell

Applied to files:

  • Makefile
📚 Learning: 2025-09-28T16:26:18.516Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2025-09-28T16:26:18.516Z
Learning: Applies to flake.nix : Maintain the main Nix configuration in flake.nix

Applied to files:

  • flake.nix
📚 Learning: 2025-09-28T16:25:07.125Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-28T16:25:07.125Z
Learning: Applies to flake.nix : Use Nix Flakes with flake.nix as the entry point

Applied to files:

  • flake.nix
📚 Learning: 2025-09-28T16:27:59.822Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/nix.mdc:0-0
Timestamp: 2025-09-28T16:27:59.822Z
Learning: Use nix flake check to validate the flake

Applied to files:

  • flake.nix
📚 Learning: 2025-09-28T16:25:07.125Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-28T16:25:07.125Z
Learning: Applies to **/*.nix : Format all Nix files with nixfmt

Applied to files:

  • flake.nix
📚 Learning: 2025-09-28T16:26:18.516Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2025-09-28T16:26:18.516Z
Learning: Applies to treefmt.toml : Keep Treefmt (Tree-sitter) formatting rules in treefmt.toml

Applied to files:

  • flake.nix
📚 Learning: 2025-09-28T16:25:47.426Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/formatting.mdc:0-0
Timestamp: 2025-09-28T16:25:47.426Z
Learning: Applies to treefmt.toml : Configure treefmt in treefmt.toml to format multiple languages and integrate with tooling

Applied to files:

  • flake.nix
📚 Learning: 2025-09-28T16:25:47.426Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/formatting.mdc:0-0
Timestamp: 2025-09-28T16:25:47.426Z
Learning: Applies to .pre-commit-config.yaml : Add a pre-commit hook that runs treefmt with pass_filenames: false

Applied to files:

  • flake.nix
📚 Learning: 2025-09-28T16:27:59.822Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/nix.mdc:0-0
Timestamp: 2025-09-28T16:27:59.822Z
Learning: Applies to home-manager/programs/**/*.nix : Program configurations should include all necessary dependencies

Applied to files:

  • flake.nix
📚 Learning: 2025-09-28T16:27:59.822Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/nix.mdc:0-0
Timestamp: 2025-09-28T16:27:59.822Z
Learning: Applies to home-manager/programs/**/*.nix : Use programs.<name> options provided by Home Manager when available

Applied to files:

  • flake.nix
📚 Learning: 2025-09-28T16:27:24.275Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/home-manager.mdc:0-0
Timestamp: 2025-09-28T16:27:24.275Z
Learning: Applies to home-manager/programs/*/default.nix : Program configurations should follow the provided template (programs.<name>.enable, package, and settings attrset)

Applied to files:

  • flake.nix
📚 Learning: 2025-09-28T16:26:53.964Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/github-workflows.mdc:0-0
Timestamp: 2025-09-28T16:26:53.964Z
Learning: Applies to .github/workflows/lint.yml : Validate Nix expressions in the lint workflow

Applied to files:

  • flake.nix
📚 Learning: 2025-09-28T16:26:53.964Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/github-workflows.mdc:0-0
Timestamp: 2025-09-28T16:26:53.964Z
Learning: Applies to .github/workflows/lint.yml : Run Biome for code formatting in the lint workflow

Applied to files:

  • flake.nix
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (10)
  • GitHub Check: cubic · AI code reviewer
  • GitHub Check: e2e-run (MacOS, macos-latest)
  • GitHub Check: e2e-run (NixOS, ubuntu-latest)
  • GitHub Check: e2e-run (Ubuntu, ubuntu-latest)
  • GitHub Check: nix-nixos
  • GitHub Check: nix-linux
  • GitHub Check: nix-darwin
  • GitHub Check: docker-build-push (linux/amd64, amd64, ubuntu-latest)
  • GitHub Check: docker-build-push (linux/arm64, arm64, ubuntu-24.04-arm)
  • GitHub Check: Mesa
🔇 Additional comments (4)
flake.nix (1)

132-132: LGTM! Enabling biome for treefmt.

Enabling biome formatting is appropriate and complements the existing formatters for handling JavaScript, TypeScript, JSON, and other web-related file formats.

Makefile (3)

100-100: LGTM! Clear help text for the dev target.

The help text accurately describes the new dev target and maintains consistency with the existing help entries.


141-142: LGTM! Convenient shorthand for development shell.

The dev target provides a clean, convenient shorthand for entering the Nix development shell. The implementation is straightforward and follows Makefile best practices.

Based on learnings


187-189: LGTM! Correct implementation of nix develop target.

The target correctly executes nix develop to enter the development shell defined in flake.nix. The placement in the Nix Setup section is appropriate.

Based on learnings

Comment thread Makefile
@echo " install - Set up full environment"
@echo " setup - Basic Nix setup"
@echo " setup-dev - Set up local development environment (Nix + submodules + shell)"
@echo " dev - Enter the Nix dev shell"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

PR metadata is inconsistent with actual changes.

The PR title mentions "Docker workflow" improvements and "registry image management," but the actual changes in this PR are focused on:

  1. Adding dev and nix-develop Makefile targets for easier access to the Nix development shell
  2. Enabling biome formatting in the treefmt configuration

Consider updating the PR title and description to accurately reflect these changes, for example: "Add dev shell targets and enable biome formatting."

🤖 Prompt for AI Agents
Makefile lines 100-100: the PR title/description mention "Docker workflow" and
"registry image management" but the changes only add Makefile targets (dev and
nix-develop) and enable biome formatting; update the PR title and description to
accurately reflect the actual changes (e.g., "Add dev shell targets and enable
biome formatting") and include a short bullet list of the two concrete changes
made and any rationale so reviewers and changelogs match the code.

@mesa-dot-dev mesa-dot-dev Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Performed full review of 169335d...ce36b72

Analysis

  1. Critical PR Title/Description Mismatch: The PR claims to "Refactor Docker workflow" but contains no Docker-related changes whatsoever. This severely misrepresents the actual modifications and will cause confusion during future searches or references.

  2. Actual Content vs. Expected Content: Either the wrong files were committed or there's a completely separate Docker-related PR that was confused with this one. The actual changes are limited to Makefile additions, biome formatter re-enabling, and routine dependency updates.

  3. Architectural Disconnect: Stakeholders expecting Docker workflow improvements will be misled by this PR. The repository history will be permanently incorrect if merged with the current title/description.

  4. Missing Context: For the biome formatter re-enabling, there's no explanation for what resolved the previous "schema hash mismatch" issue that had caused it to be disabled.

Tip

Help

Slash Commands:

  • /review - Request a full code review
  • /review latest - Review only changes since the last review
  • /describe - Generate PR description. This will update the PR body or issue comment depending on your configuration
  • /help - Get help with Mesa commands and configuration options

3 files reviewed | 0 comments | Edit Agent SettingsRead Docs

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 3 files

Prompt for AI agents (all 1 issues)

Understand the root cause of the following 1 issues and fix them.


<file name="Makefile">

<violation number="1" location="Makefile:189">
`make dev` will fail on setups where nix-command/flakes aren’t globally enabled because this target calls `nix develop` without the project’s standard experimental-feature flags. Please invoke the pinned Nix binary with `$(NIX_FLAGS)` like the other Nix targets to keep the command working across environments.</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.

Comment thread Makefile Outdated
shunkakinoki and others added 2 commits November 10, 2025 09:27
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Copilot AI review requested due to automatic review settings November 10, 2025 00:27

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread flake.nix
programs = {
actionlint.enable = false;
biome.enable = false; # Temporarily disabled due to schema hash mismatch
biome.enable = true;

Copilot AI Nov 10, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The removal of actionlint.enable = false is not documented. If actionlint was intentionally disabled and is now being removed without re-enabling it, this could affect linting behavior for GitHub Actions workflows. Consider documenting whether actionlint should remain disabled or if it needs to be explicitly re-enabled.

Copilot uses AI. Check for mistakes.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.github/workflows/nix.yml (1)

53-90: Consider adding disk-space cleanup to other ubuntu-latest jobs.

The "Free Disk Space" step is only added to the nix-nixos job. If the goal is to ensure sufficient disk space for NixOS builds, consider whether the other ubuntu-latest jobs (nix-flake, nix-format, nix-linux) would also benefit from this cleanup step, especially if they involve substantial package compilations or large dependency graphs.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between ce36b72 and 0869e2b.

📒 Files selected for processing (2)
  • .github/workflows/nix.yml (1 hunks)
  • Makefile (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • Makefile
🧰 Additional context used
📓 Path-based instructions (3)
.github/workflows/**

📄 CodeRabbit inference engine (.cursor/rules/general.mdc)

Store all GitHub Actions workflow files under .github/workflows/

Files:

  • .github/workflows/nix.yml
.github/**

📄 CodeRabbit inference engine (.cursor/rules/general.mdc)

Keep GitHub repository configuration files under .github/

Files:

  • .github/workflows/nix.yml
.github/workflows/*.yml

📄 CodeRabbit inference engine (.cursor/rules/github-workflows.mdc)

.github/workflows/*.yml: Pin actions to specific versions (avoid @main/@master)
Set appropriate timeout limits for jobs/steps
Use concise job and step names
Add helpful annotations and comments in workflows
Prefer using GITHUB_TOKEN for authentication in workflows
Store sensitive data in repository secrets and reference them from workflows
Limit permissions to the minimum required using the permissions key
Define appropriate failure conditions for steps/jobs
Provide clear error messages on failures
Configure notifications for workflow failures
Archive build artifacts for debugging on failures

Files:

  • .github/workflows/nix.yml
🧠 Learnings (7)
📓 Common learnings
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/github-workflows.mdc:0-0
Timestamp: 2025-09-28T16:26:53.964Z
Learning: Applies to .github/workflows/ci.yml : CI must validate Nix flake checks
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/github-workflows.mdc:0-0
Timestamp: 2025-09-28T16:26:53.964Z
Learning: Applies to .github/workflows/ci.yml : CI must validate nix-darwin builds
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-28T16:25:07.125Z
Learning: Applies to **/*.nix : Format all Nix files with nixfmt
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/github-workflows.mdc:0-0
Timestamp: 2025-09-28T16:26:53.964Z
Learning: Applies to .github/workflows/{ci.yml,lint.yml} : Use actions/cachev4 to cache Nix paths with a flake.lock-based key
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/github-workflows.mdc:0-0
Timestamp: 2025-09-28T16:26:53.964Z
Learning: Applies to .github/workflows/{ci.yml,lint.yml} : Cache the Nix store and build artifacts in workflows
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2025-09-28T16:26:18.516Z
Learning: Applies to flake.nix : Maintain the main Nix configuration in flake.nix
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/github-workflows.mdc:0-0
Timestamp: 2025-09-28T16:26:53.964Z
Learning: Applies to .github/workflows/lint.yml : Validate Nix expressions in the lint workflow
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/github-workflows.mdc:0-0
Timestamp: 2025-09-28T16:26:53.964Z
Learning: Applies to .github/workflows/lint.yml : Run Biome for code formatting in the lint workflow
📚 Learning: 2025-09-28T16:26:53.964Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/github-workflows.mdc:0-0
Timestamp: 2025-09-28T16:26:53.964Z
Learning: Applies to .github/workflows/ci.yml : CI must validate nix-darwin builds

Applied to files:

  • .github/workflows/nix.yml
📚 Learning: 2025-09-28T16:26:53.964Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/github-workflows.mdc:0-0
Timestamp: 2025-09-28T16:26:53.964Z
Learning: Applies to .github/workflows/{ci.yml,lint.yml} : Cache the Nix store and build artifacts in workflows

Applied to files:

  • .github/workflows/nix.yml
📚 Learning: 2025-09-28T16:26:53.964Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/github-workflows.mdc:0-0
Timestamp: 2025-09-28T16:26:53.964Z
Learning: Applies to .github/workflows/{ci.yml,lint.yml} : Use actions/cachev4 to cache Nix paths with a flake.lock-based key

Applied to files:

  • .github/workflows/nix.yml
📚 Learning: 2025-09-28T16:26:53.964Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/github-workflows.mdc:0-0
Timestamp: 2025-09-28T16:26:53.964Z
Learning: Applies to .github/workflows/*.yml : Use concise job and step names

Applied to files:

  • .github/workflows/nix.yml
📚 Learning: 2025-09-28T16:26:53.964Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/github-workflows.mdc:0-0
Timestamp: 2025-09-28T16:26:53.964Z
Learning: Applies to .github/workflows/lint.yml : Validate Nix expressions in the lint workflow

Applied to files:

  • .github/workflows/nix.yml
📚 Learning: 2025-09-28T16:26:18.516Z
Learnt from: CR
Repo: shunkakinoki/dotfiles PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2025-09-28T16:26:18.516Z
Learning: Use GitHub Actions for CI/CD checks

Applied to files:

  • .github/workflows/nix.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: docker-build-push (linux/arm64, arm64, ubuntu-24.04-arm)
  • GitHub Check: docker-build-push (linux/amd64, amd64, ubuntu-latest)
  • GitHub Check: nix-nixos
  • GitHub Check: nix-darwin
  • GitHub Check: e2e-run (MacOS, macos-latest)
  • GitHub Check: e2e-run (Ubuntu, ubuntu-latest)
  • GitHub Check: e2e-run (NixOS, ubuntu-latest)

Comment thread .github/workflows/nix.yml
Comment on lines +73 to +82
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
tool-cache: false
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Pin the free-disk-space action to a specific version.

Line 74 uses jlumbroso/free-disk-space@main, which violates the guideline to pin all actions to specific versions and avoid @main/@master. Using @main introduces non-determinism and potential breaking changes across workflow runs.

Apply this diff to pin the action to a specific release version:

-      - name: Free Disk Space (Ubuntu)
-        uses: jlumbroso/free-disk-space@main
+      - name: Free Disk Space (Ubuntu)
+        uses: jlumbroso/free-disk-space@v1
+        continue-on-error: true

The continue-on-error: true is recommended because disk space cleanup is a prerequisite optimization, not core functionality—if it fails, the build should still attempt to proceed rather than immediately fail. As per coding guidelines.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
tool-cache: false
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@v1
continue-on-error: true
with:
tool-cache: false
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
🤖 Prompt for AI Agents
.github/workflows/nix.yml around lines 73 to 82: the workflow uses
jlumbroso/free-disk-space@main which must be pinned to a specific released tag
to ensure determinism; update the uses to a specific version tag (e.g., @vX.Y.Z)
and add continue-on-error: true to the step so disk cleanup failures don't block
the rest of the job.

@shunkakinoki
shunkakinoki merged commit 47f65ba into main Nov 10, 2025
30 checks passed
@shunkakinoki
shunkakinoki deleted the chore/make-dev branch November 10, 2025 01:24
@coderabbitai coderabbitai Bot mentioned this pull request Nov 26, 2025
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.

2 participants