Skip to content

Conversation

@sestinj
Copy link
Contributor

@sestinj sestinj commented Sep 26, 2025

Summary by cubic

Publishes a public Runloop blueprint for the cn CLI during the stable-release workflow, enabling automated environment provisioning after each stable release.

  • New Features

    • Added runloop-blueprint-template.json with setup (install cn CLI, apt update, ripgrep), launch (bash, X_SMALL, 3600s keep-alive, port 8080, x86_64), and metadata.
    • Updated stable-release.yml to POST the blueprint to Runloop using RUNLOOP_API_KEY, with response handling and optional blueprint_id output.
  • Migration

    • Add RUNLOOP_API_KEY as a repo secret.
    • Ensure jq is available on the runner (install if missing).

@sestinj sestinj requested a review from a team as a code owner September 26, 2025 00:04
@sestinj sestinj requested review from tingwai and removed request for a team September 26, 2025 00:04
@dosubot dosubot bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Sep 26, 2025
@github-actions
Copy link

⚠️ PR Title Format

Your PR title doesn't follow the conventional commit format, but this won't block your PR from being merged. We recommend using this format for better project organization.

Expected Format:

<type>[optional scope]: <description>

Examples:

  • feat: add changelog generation support
  • fix: resolve login redirect issue
  • docs: update README with new instructions
  • chore: update dependencies

Valid Types:

feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert

This helps with:

  • 📝 Automatic changelog generation
  • 🚀 Automated semantic versioning
  • 📊 Better project history tracking

This is a non-blocking warning - your PR can still be merged without fixing this.

@sestinj sestinj merged commit b201072 into main Sep 26, 2025
30 of 31 checks passed
@sestinj sestinj deleted the nate/runloop-blueprint-ci branch September 26, 2025 00:05
@github-project-automation github-project-automation bot moved this from Todo to Done in Issues and PRs Sep 26, 2025
@github-actions github-actions bot locked and limited conversation to collaborators Sep 26, 2025
Copy link
Contributor

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

Choose a reason for hiding this comment

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

4 issues found across 2 files

Prompt for AI agents (all 4 issues)

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


<file name=".github/workflows/runloop-blueprint-template.json">

<violation number="1" location=".github/workflows/runloop-blueprint-template.json:4">
Using @latest for a global install is non-deterministic and increases supply-chain risk; pin the CLI to a specific version or vetted range.</violation>

<violation number="2" location=".github/workflows/runloop-blueprint-template.json:5">
Use apt-get in scripts instead of apt to ensure non-interactive, stable behavior.</violation>
</file>

<file name=".github/workflows/stable-release.yml">

<violation number="1" location=".github/workflows/stable-release.yml:242">
Truncates an extra byte from the response body with head -c -4; remove only 3 bytes to strip the appended HTTP code.</violation>

<violation number="2" location=".github/workflows/stable-release.yml:252">
Writes to $GITHUB_OUTPUT in a step without an id; this output cannot be consumed by later steps.</violation>
</file>

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

"name": "cn",
"system_setup_commands": [
"npm i -g @continuedev/cli@latest",
"sudo apt update",
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Sep 26, 2025

Choose a reason for hiding this comment

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

Use apt-get in scripts instead of apt to ensure non-interactive, stable behavior.

Prompt for AI agents
Address the following comment on .github/workflows/runloop-blueprint-template.json at line 5:

<comment>Use apt-get in scripts instead of apt to ensure non-interactive, stable behavior.</comment>

<file context>
@@ -0,0 +1,21 @@
+  &quot;name&quot;: &quot;cn&quot;,
+  &quot;system_setup_commands&quot;: [
+    &quot;npm i -g @continuedev/cli@latest&quot;,
+    &quot;sudo apt update&quot;,
+    &quot;sudo apt install -y ripgrep&quot;
+  ],
</file context>
Fix with Cubic

{
"name": "cn",
"system_setup_commands": [
"npm i -g @continuedev/cli@latest",
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Sep 26, 2025

Choose a reason for hiding this comment

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

Using @latest for a global install is non-deterministic and increases supply-chain risk; pin the CLI to a specific version or vetted range.

Prompt for AI agents
Address the following comment on .github/workflows/runloop-blueprint-template.json at line 4:

<comment>Using @latest for a global install is non-deterministic and increases supply-chain risk; pin the CLI to a specific version or vetted range.</comment>

<file context>
@@ -0,0 +1,21 @@
+{
+  &quot;name&quot;: &quot;cn&quot;,
+  &quot;system_setup_commands&quot;: [
+    &quot;npm i -g @continuedev/cli@latest&quot;,
+    &quot;sudo apt update&quot;,
+    &quot;sudo apt install -y ripgrep&quot;
</file context>
Fix with Cubic

blueprint_id=$(echo "$response_body" | jq -r '.id // empty')
if [[ -n "$blueprint_id" ]]; then
echo "Blueprint ID: $blueprint_id"
echo "blueprint_id=$blueprint_id" >> $GITHUB_OUTPUT
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Sep 26, 2025

Choose a reason for hiding this comment

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

Writes to $GITHUB_OUTPUT in a step without an id; this output cannot be consumed by later steps.

Prompt for AI agents
Address the following comment on .github/workflows/stable-release.yml at line 252:

<comment>Writes to $GITHUB_OUTPUT in a step without an id; this output cannot be consumed by later steps.</comment>

<file context>
@@ -220,3 +220,40 @@ jobs:
+            blueprint_id=$(echo &quot;$response_body&quot; | jq -r &#39;.id // empty&#39;)
+            if [[ -n &quot;$blueprint_id&quot; ]]; then
+              echo &quot;Blueprint ID: $blueprint_id&quot;
+              echo &quot;blueprint_id=$blueprint_id&quot; &gt;&gt; $GITHUB_OUTPUT
+            fi
+          else
</file context>
Fix with Cubic

-s)
http_code=$(echo "$response" | tail -c 4)
response_body=$(echo "$response" | head -c -4)
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Sep 26, 2025

Choose a reason for hiding this comment

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

Truncates an extra byte from the response body with head -c -4; remove only 3 bytes to strip the appended HTTP code.

Prompt for AI agents
Address the following comment on .github/workflows/stable-release.yml at line 242:

<comment>Truncates an extra byte from the response body with head -c -4; remove only 3 bytes to strip the appended HTTP code.</comment>

<file context>
@@ -220,3 +220,40 @@ jobs:
+            -s)
+
+          http_code=$(echo &quot;$response&quot; | tail -c 4)
+          response_body=$(echo &quot;$response&quot; | head -c -4)
+
+          if [[ &quot;$http_code&quot; == &quot;200&quot; ]] || [[ &quot;$http_code&quot; == &quot;201&quot; ]]; then
</file context>
Fix with Cubic

@sestinj
Copy link
Contributor Author

sestinj commented Sep 26, 2025

🎉 This PR is included in version 1.1.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@sestinj
Copy link
Contributor Author

sestinj commented Sep 26, 2025

🎉 This PR is included in version 1.22.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@sestinj
Copy link
Contributor Author

sestinj commented Oct 1, 2025

🎉 This PR is included in version 1.21.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

released size:M This PR changes 30-99 lines, ignoring generated files.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants