Skip to content

Use the official setup-deno action#232

Merged
5ouma merged 3 commits intomainfrom
refactor-ci-setup-deno
May 17, 2025
Merged

Use the official setup-deno action#232
5ouma merged 3 commits intomainfrom
refactor-ci-setup-deno

Conversation

@5ouma
Copy link
Owner

@5ouma 5ouma commented May 17, 2025

⚠️ Issue

close #


✏️ Description

It's been supporting caching packages.


5ouma added 2 commits May 17, 2025 17:32
It's been supported caching packages.
Follow the packages' dependencies.
Copilot AI review requested due to automatic review settings May 17, 2025 08:34
@github-actions github-actions bot added 🔧 Maintenance Repository Maintenance 🧹 Refactoring A code change that neither fixes a bug nor adds a feature labels May 17, 2025
@codecov
Copy link

codecov bot commented May 17, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 100.00%. Comparing base (924cc84) to head (d709373).
Report is 4 commits behind head on main.

✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #232   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            6         6           
  Lines           97        97           
  Branches         6         6           
=========================================
  Hits            97        97           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link

Copilot AI left a comment

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 updates the CI workflow to use the official denoland/setup-deno action with built-in caching and adds conditional dependency installation on cache miss.

  • Swap out custom 5ouma/utils/setup-deno-with-cache for denoland/setup-deno@v2.0.3 and enable cache: true
  • Introduce a conditional deno install --frozen step to run only when the cache is missed
  • Remove all instances of the old setup action across multiple jobs
Comments suppressed due to low confidence (1)

.github/workflows/ci.yml:41

  • [nitpick] If the goal is to pre-fetch dependencies rather than install binaries, using deno cache (e.g., deno cache --no-check) may be more appropriate than deno install --frozen.
        run: deno install --frozen

@coderabbitai
Copy link

coderabbitai bot commented May 17, 2025

Walkthrough

The GitHub Actions CI workflow was updated to use the official Deno setup action with caching enabled. Dependency installation now occurs only if the cache is not hit, using a conditional step. These changes affect the lint-check, type-check, and test jobs, while other jobs use the new setup action without dependency installation.

Changes

File(s) Change Summary
.github/workflows/ci.yml Replaced custom Deno setup action with official one, enabled caching, and added conditional dependency installation for relevant jobs.

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between dcc251d and b5f494b.

⛔ Files ignored due to path filters (1)
  • deno.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • .github/workflows/ci.yml (5 hunks)
🔇 Additional comments (3)
.github/workflows/ci.yml (3)

33-38: Replace custom Deno setup with official action and enable caching
The migration to denoland/setup-deno@v2.0.3 with cache: true correctly swaps out the previous custom action and enables module caching for faster runs.


78-83: Apply official Deno setup with caching for type-check
Using denoland/setup-deno@v2.0.3 with cache: true aligns the type-check job with lint-check, ensuring dependencies are cached and reducing CI time.


103-108: Configure official Deno setup with caching for tests
The denoland/setup-deno action with cache: true correctly initializes Deno and speeds up test runs by reusing cached modules.

✨ Finishing Touches
🧪 Generate Unit Tests
  • Create PR with Unit Tests
  • Commit Unit Tests in branch refactor-ci-setup-deno
  • Post Copyable Unit Tests in Comment

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Caution

Inline review comments failed to post. This is likely due to GitHub's limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 3

🧹 Nitpick comments (2)
.github/workflows/ci.yml (2)

60-62: Adopt official Deno setup for format-check
The action is correctly updated to denoland/setup-deno@v2.0.3. For consistency and to accelerate this job (in case remote modules are used), you may optionally enable caching here as well.

-      - name: 🦕 Setup Deno
-        uses: denoland/setup-deno@e95548e56dfa95d4e1a28d6f422fafe75c4c26fb # v2.0.3
+      - name: 🦕 Setup Deno
+        uses: denoland/setup-deno@e95548e56dfa95d4e1a28d6f422fafe75c4c26fb # v2.0.3
+        with:
+          cache: true

139-141: Switch to official Deno setup for dry-run-publish
Using denoland/setup-deno@v2.0.3 standardizes the dry-run-publish job. If your publish scripts import remote modules, you can optionally enable cache: true here as well.

-      - name: 🦕 Setup Deno
-        uses: denoland/setup-deno@e95548e56dfa95d4e1a28d6f422fafe75c4c26fb # v2.0.3
+      - name: 🦕 Setup Deno
+        uses: denoland/setup-deno@e95548e56dfa95d4e1a28d6f422fafe75c4c26fb # v2.0.3
+        with:
+          cache: true
🛑 Comments failed to post (3)
.github/workflows/ci.yml (3)

109-112: ⚠️ Potential issue

Replace install step with correct caching command in tests
Swap out deno install --frozen for deno cache --lock=deno.lock to properly fetch and cache the project’s locked dependencies.

Suggested diff:

-        run: deno install --frozen
+        run: deno cache --lock=deno.lock
🤖 Prompt for AI Agents
In .github/workflows/ci.yml at lines 109 to 112, replace the command `deno
install --frozen` with `deno cache --lock=deno.lock` to correctly fetch and
cache the project's locked dependencies during the install step. This ensures
proper dependency caching in the CI workflow.

84-87: ⚠️ Potential issue

Fix incorrect dependency pre-caching command in type-check
As above, replace the deno install --frozen invocation with a deno cache step to correctly populate dependencies from the lockfile.

Proposed fix:

-        run: deno install --frozen
+        run: deno cache --lock=deno.lock
🤖 Prompt for AI Agents
In .github/workflows/ci.yml around lines 84 to 87, the command `deno install
--frozen` is incorrectly used for dependency pre-caching. Replace this command
with `deno cache --lock=lock.json --lock-write` or a similar `deno cache`
command that correctly populates dependencies from the lockfile to ensure proper
caching and type-checking.

39-42: ⚠️ Potential issue

Fix incorrect dependency installation command
The step deno install --frozen is intended for installing executables and will error out without a target script. To pre-cache project dependencies per your lockfile, use deno cache.

Proposed fix:

-      - name: 📦 Install Dependencies
-        if: ${{ steps.setup-deno.outputs.cache-hit != 'true' }}
-        run: deno install --frozen
+      - name: 📦 Cache Dependencies
+        if: ${{ steps.setup-deno.outputs.cache-hit != 'true' }}
+        run: deno cache --lock=deno.lock
📝 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.

      - name: 📦 Cache Dependencies
        if: ${{ steps.setup-deno.outputs.cache-hit != 'true' }}
        run: deno cache --lock=deno.lock
🤖 Prompt for AI Agents
In .github/workflows/ci.yml at lines 39 to 42, the command `deno install
--frozen` is incorrect for installing dependencies and will fail without a
target script. Replace this command with `deno cache --lock=lock.json
--lock-write` (adjust lockfile path if needed) to pre-cache project dependencies
according to the lockfile, ensuring proper dependency installation.

@5ouma 5ouma merged commit c2d99a6 into main May 17, 2025
15 checks passed
@5ouma 5ouma deleted the refactor-ci-setup-deno branch May 17, 2025 08:44
@github-actions github-actions bot mentioned this pull request May 17, 2025
@5ouma 5ouma added 🎽 CI Changes to CI configuration files and scripts and removed 🧹 Refactoring A code change that neither fixes a bug nor adds a feature 🔧 Maintenance Repository Maintenance labels May 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🎽 CI Changes to CI configuration files and scripts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants