Skip to content

Update/workflow - #56

Merged
RajnishKMehta merged 3 commits into
mainfrom
update/workflow
Aug 10, 2026
Merged

Update/workflow#56
RajnishKMehta merged 3 commits into
mainfrom
update/workflow

Conversation

@RajnishKMehta

@RajnishKMehta RajnishKMehta commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features

    • Release builds can now include the configured author avatar as an optimized image in the app.
  • Bug Fixes

    • Updated build and mirroring processes to use the latest checkout tooling, improving workflow reliability.
  • Chores

    • Enhanced release preparation by automatically fetching and converting the author image when needed.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

Note

Reviews paused

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Review Change Stack

📝 Walkthrough

Walkthrough

Changes

GitHub workflow updates

Layer / File(s) Summary
Checkout action updates
.github/workflows/debug-build.yml, .github/workflows/mirror-to-gitlab.yml, .github/workflows/release-build.yml
The workflows now use actions/checkout@v7.
Release author asset preparation
.github/workflows/release-build.yml
The release workflow conditionally installs WebP tooling, downloads the configured author avatar, and converts it to app/src/main/res/drawable/author.webp before the release build.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
  participant GitHubActionsRunner
  participant GitHubAvatarSource
  participant WebPTooling
  participant ReleaseBuild
  GitHubActionsRunner->>GitHubAvatarSource: Download configured author avatar
  GitHubActionsRunner->>WebPTooling: Install WebP tooling
  GitHubActionsRunner->>WebPTooling: Convert avatar to author.webp
  WebPTooling->>ReleaseBuild: Provide drawable asset
Loading

Poem

A rabbit checks out code with care,
On version seven, hopping there.
It fetches an avatar bright,
Makes WebP before build night.
The APK grows from this small hare.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title indicates a workflow update but does not identify the checkout version change or release workflow changes. Use a specific title such as "Update GitHub Actions workflows to checkout v7".
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch update/workflow

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.

@RajnishKMehta

Copy link
Copy Markdown
Owner Author

@coderabbitai pause

@github-actions

Copy link
Copy Markdown

✅ Debug APK Build Successful

Build Passing

Detail Value
Version v1.1.1
Build #174
PR #56
Artifact DhwaniControl-v1.1.1-debug-PR56
Expires 60 days

📲 Download

Download APK v1.1.1+174

How to download: Click the badge above or click here


🤖 This comment is auto-generated by the PR Debug APK build workflow.

@RajnishKMehta
RajnishKMehta merged commit 8fd6b71 into main Aug 10, 2026
1 of 2 checks passed
@RajnishKMehta
RajnishKMehta deleted the update/workflow branch August 10, 2026 15:39

@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

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/release-build.yml:
- Around line 151-152: Update the avatar download step in the release workflow
to make curl fail on HTTP errors, retry transient failures, and enforce
connection and transfer timeouts. Before invoking cwebp, validate that
/tmp/author.png exists and is non-empty, and stop the step with an error if
validation fails.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f5e9b1f1-79fa-41e0-a3be-f7238ac15565

📥 Commits

Reviewing files that changed from the base of the PR and between 03ca965 and 4768298.

📒 Files selected for processing (3)
  • .github/workflows/debug-build.yml
  • .github/workflows/mirror-to-gitlab.yml
  • .github/workflows/release-build.yml

Comment on lines +151 to +152
curl -sL "https://avatars.githubusercontent.com/u/172272341?s=460" -o /tmp/author.png
cwebp -q 95 /tmp/author.png -o app/src/main/res/drawable/author.webp

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== workflow context =="
if [ -f .github/workflows/release-build.yml ]; then
  sed -n '1,210p' .github/workflows/release-build.yml | cat -n
else
  echo "workflow file missing"
  git ls files .github/workflows || true
fi

echo
echo "== curl docs/options installed =="
if command -v curl >/dev/null 2>&1; then
  curl --version | head -5
  curl --help short | rg -n "silent|fail|location|connect-timeout|max-time|retry|L \^S" || true
else
  echo "curl not installed"
fi

echo
echo "== behavioral probe: local curl options =="
if command -v curl >/dev/null 2>&1; then
  python3 - <<'PY'
import subprocess
urls = [
  ("ok", "data:text/plain,hello"),
  ("no_flag_404", "data:text/plain,not ok"),
  ("fail_flag_404", "data:text/plain,not ok"),
]
for name, url in urls:
    cmd = ["curl", "--silent", "--location", url, "-o", "/tmp/author_curl_probe.png"]
    if name.startswith("fail"):
        cmd.insert(1, "--fail")
    ret = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    body = open("/tmp/author_curl_probe.png","rb").read() if __import__("os").path.exists("/tmp/author_curl_probe.png") else b""
    print(f"{name}: returncode={ret.returncode} size={len(body)} error={ret.stderr.decode(errors='replace').strip()}")
    __import__("os").remove("/tmp/author_curl_probe.png")
PY
fi

echo
echo "== repository references to timeout in workflow =="
rg -n "timeout|retry|curl --|cwebp" .github/workflows/release-build.yml || true

Repository: RajnishKMehta/DhwaniControl

Length of output: 9267


🌐 Web query:

curl man page --silent --fail HTTP return code --max-time --connect-timeout --retry --location

💡 Result:

The following options are used in curl to control behavior, timeout, and failure handling: --silent (-s): Disables the progress meter and error messages. It prevents curl from showing any transfer progress or diagnostic information to standard error, effectively making it silent [1][2]. --fail (-f): Instructs curl to fail silently (with no output at all) on server errors, defined as HTTP response codes of 400 or greater [3][4]. When this occurs, curl exits with exit code 22 [3][5]. This is useful for scripts to detect failed HTTP requests, as by default, curl considers HTTP communication successful regardless of the status code [6][4]. This option is not fail-safe, as some non-successful codes (such as 401 and 407) may still be passed through depending on authentication scenarios [3]. --max-time (-m): Sets the maximum time in seconds that you allow the entire operation to take [7]. If the operation exceeds this duration, curl will exit [7]. It accepts decimal values [7]. --connect-timeout : Sets the maximum time in seconds allowed for the connection phase (DNS lookup, TCP/TLS/QUIC handshakes) [3][1]. If the connection is not established within this period, curl exits [3]. It accepts decimal values [3]. --retry : Specifies the number of times to retry the transfer if a transient error occurs. When enabled, curl will attempt the request again if it encounters issues like connection failures or HTTP 5xx errors. --location (-L): Instructs curl to follow HTTP redirects [1][7]. If the server responds with a 3xx status code indicating the page has moved, curl will automatically make a new request to the provided location [1]. HTTP Return Codes: By default, curl does not treat HTTP error codes (4xx or 5xx) as transfer errors [6][4]. To change this behavior so that curl returns an error code on HTTP failures, you must use --fail or --fail-with-body [6][4]. When using --fail, curl exits with exit code 22 for HTTP errors 400 and above [3][5]. The --fail-with-body option is similar but allows the response body (such as an error page) to be outputted before exiting with code 22 [1][4]. You can extract the specific HTTP response code received by using the --write-out option [6].

Citations:


Make the avatar download fail fast.

curl -sL follows redirects successfully even for HTTP 4xx/5xx responses and has no transfer timeout, so a bad or stalled avatar response can still keep the 120-minute release job active. Use --fail, retry/transient-error handling, connection/transfer timeouts, and check that /tmp/author.png exists and is non-empty before running cwebp.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/release-build.yml around lines 151 - 152, Update the
avatar download step in the release workflow to make curl fail on HTTP errors,
retry transient failures, and enforce connection and transfer timeouts. Before
invoking cwebp, validate that /tmp/author.png exists and is non-empty, and stop
the step with an error if validation fails.

Source: MCP tools

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
✅ Action performed

Reviews paused.

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