Skip to content

Docker: Improve video recorder process #2742

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Apr 6, 2025
Merged

Docker: Improve video recorder process #2742

merged 5 commits into from
Apr 6, 2025

Conversation

VietND96
Copy link
Member

@VietND96 VietND96 commented Mar 29, 2025

User description

Thanks for contributing to the Docker-Selenium project!
A PR well described will help maintainers to quickly review and merge it

Before submitting your PR, please check our contributing guidelines, applied for this repository.
Avoid large PRs, help reviewers by making them as simple and short as possible.

Description

Motivation and Context

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • I have read the contributing document.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

PR Type

Bug fix


Description

  • Fixed session ID parsing to handle errors gracefully.

  • Ensured video recording stops on session failure.


Changes walkthrough 📝

Relevant files
Bug fix
video.sh
Improve session ID parsing and error handling                       

Video/video.sh

  • Updated session ID parsing to use jq -e for error handling.
  • Added fallback to "null" for invalid session IDs.
  • Improved logic to handle session creation and recording start
    conditions.
  • +1/-1     

    Need help?
  • Type /help how to ... in the comments thread for any questions about Qodo Merge usage.
  • Check out the documentation for more information.
  • Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com>
    Copy link

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

    ⏱️ Estimated effort to review: 1 🔵⚪⚪⚪⚪
    🧪 No relevant tests
    🔒 No security concerns identified
    ⚡ Recommended focus areas for review

    Logic Flow

    The PR changes how session_id is obtained, but the conditional check on line 243 still references this variable. Verify that the session_id is properly initialized in all code paths before this check.

    session_id=$(jq -e "${JQ_SESSION_ID_QUERY}" /tmp/status.json || echo "null")
    if [[ "$session_id" != "null" && "$session_id" != "" && "$session_id" != "reserved" && "$recording_started" = "false" ]]; then

    Copy link

    qodo-merge-pro bot commented Mar 29, 2025

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Impact
    General
    Improve error handling

    The error handling with jq -e is good, but the current implementation doesn't
    handle the case where the status.json file might be empty or malformed. Consider
    adding a check for the file's existence and content before processing.

    Video/video.sh [242]

    -session_id=$(jq -e "${JQ_SESSION_ID_QUERY}" /tmp/status.json || echo "null")
    +session_id=$([ -s /tmp/status.json ] && jq -e "${JQ_SESSION_ID_QUERY}" /tmp/status.json 2>/dev/null || echo "null")
    • Apply this suggestion
    Suggestion importance[1-10]: 7

    __

    Why: The suggestion adds robust error handling by checking if the status.json file exists and has content before attempting to parse it with jq. This prevents potential errors when the file is empty or malformed, making the script more resilient.

    Medium
    • Update

    Copy link

    qodo-merge-pro bot commented Mar 29, 2025

    CI Feedback 🧐

    (Feedback updated until commit 00bb321)

    A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

    Action: Rerun workflow when failure

    Failed stage: Authenticate GitHub CLI for PR [❌]

    Failure summary:

    The action failed because the GitHub CLI authentication token is missing the required read:org
    scope. The error occurred during the gh auth login --with-token command (line 186), which rejected
    the provided token with the error message: "error validating token: missing required scope
    'read:org'".

    Relevant error logs:
    1:  ##[group]Operating System
    2:  Ubuntu
    ...
    
    22:  Issues: write
    23:  Metadata: read
    24:  Models: read
    25:  Packages: write
    26:  Pages: write
    27:  PullRequests: write
    28:  RepositoryProjects: write
    29:  SecurityEvents: write
    30:  Statuses: write
    31:  ##[endgroup]
    32:  Secret source: Actions
    33:  Prepare workflow directory
    34:  Prepare all required actions
    35:  Getting action download info
    36:  Download action repository 'actions/checkout@main' (SHA:85e6279cec87321a52edac9c87bce653a07cf6c2)
    37:  Complete job name: Rerun workflow when failure
    38:  ##[group]Run actions/checkout@main
    ...
    
    42:  ssh-strict: true
    43:  ssh-user: git
    44:  persist-credentials: true
    45:  clean: true
    46:  sparse-checkout-cone-mode: true
    47:  fetch-depth: 1
    48:  fetch-tags: false
    49:  show-progress: true
    50:  lfs: false
    51:  submodules: false
    52:  set-safe-directory: true
    53:  env:
    54:  GH_CLI_TOKEN: ***
    55:  GH_CLI_TOKEN_PR: ***
    56:  RUN_ID: 14291827899
    57:  RERUN_FAILED_ONLY: true
    58:  RUN_ATTEMPT: 1
    ...
    
    113:  Or undo this operation with:
    114:  git switch -
    115:  Turn off this advice by setting config variable advice.detachedHead to false
    116:  HEAD is now at a16c102 Merge 00bb321fc0cd0be090d72bc35489c3f4154f59ef into 55240ca97f32ee96dc74526642a75c00edc27191
    117:  ##[endgroup]
    118:  [command]/usr/bin/git log -1 --format=%H
    119:  a16c102bddae039014f09bf88ee788a2193f3bc2
    120:  ##[group]Run sudo apt update
    121:  �[36;1msudo apt update�[0m
    122:  �[36;1msudo apt install gh�[0m
    123:  shell: /usr/bin/bash -e {0}
    124:  env:
    125:  GH_CLI_TOKEN: ***
    126:  GH_CLI_TOKEN_PR: ***
    127:  RUN_ID: 14291827899
    128:  RERUN_FAILED_ONLY: true
    129:  RUN_ATTEMPT: 1
    ...
    
    168:  Reading state information...
    169:  118 packages can be upgraded. Run 'apt list --upgradable' to see them.
    170:  WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
    171:  Reading package lists...
    172:  Building dependency tree...
    173:  Reading state information...
    174:  gh is already the newest version (2.69.0).
    175:  0 upgraded, 0 newly installed, 0 to remove and 118 not upgraded.
    176:  ##[group]Run echo "$GH_CLI_TOKEN_PR" | gh auth login --with-token
    177:  �[36;1mecho "$GH_CLI_TOKEN_PR" | gh auth login --with-token�[0m
    178:  shell: /usr/bin/bash -e {0}
    179:  env:
    180:  GH_CLI_TOKEN: ***
    181:  GH_CLI_TOKEN_PR: ***
    182:  RUN_ID: 14291827899
    183:  RERUN_FAILED_ONLY: true
    184:  RUN_ATTEMPT: 1
    185:  ##[endgroup]
    186:  error validating token: missing required scope 'read:org'
    187:  ##[error]Process completed with exit code 1.
    188:  Post job cleanup.
    

    @VietND96 VietND96 force-pushed the improve-record branch 5 times, most recently from 77c5d79 to abef0aa Compare April 5, 2025 21:51
    @VietND96 VietND96 changed the title Docker: Stop record when session failure Docker: Improve video recorder process Apr 6, 2025
    Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com>
    @VietND96 VietND96 merged commit 6047524 into trunk Apr 6, 2025
    25 of 28 checks passed
    @VietND96 VietND96 deleted the improve-record branch April 6, 2025 15:52
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    1 participant