Skip to content

Conversation

Jont828
Copy link
Contributor

@Jont828 Jont828 commented Jul 31, 2025

Reason for Change:

Requirements

  • added unit tests and e2e tests (if applicable).

Issue Fixed:

Notes for Reviewers:

Copy link

Title

Add comprehensive GitHub Actions workflows and rename .yml to .yaml


Description

  • Added multiple GitHub Actions workflows for CI/CD processes

  • Included workflows for code quality checks, testing, and deployment

  • Renamed .yml files to .yaml for consistency


Changes walkthrough 📝

Relevant files
Enhancement
28 files
dependabot.yaml
Added dependabot configuration                                                     
[link]   
codeql.yaml
Added CodeQL analysis workflow                                                     
[link]   
create-release.yaml
Added release creation workflow                                                   
[link]   
dependency-review.yaml
Added dependency review workflow                                                 
[link]   
deploy-docs.yaml
Added documentation deployment workflow                                   
[link]   
e2e-preset-test.yaml
Added E2E preset test workflow                                                     
[link]   
e2e-preset-tuning-test.yaml
Added E2E preset tuning test workflow                                       
[link]   
e2e-workflow.yaml
Added reusable E2E workflow                                                           
[link]   
license-header.yaml
Added license header check workflow                                           
[link]   
lint-go.yaml
Added Go linting workflow                                                               
[link]   
markdown-link-check.yaml
Added markdown link check workflow                                             
[link]   
pr-title-lint.yaml
Added PR title checker workflow                                                   
[link]   
preset-image-build-1ES.yaml
Added preset image build workflow for 1ES                               
[link]   
preset-image-build.yaml
Added preset image build workflow                                               
[link]   
publish-rag-controller-gh-image.yaml
Added RAG controller image publish workflow                           
[link]   
publish-rag-controller-mcr-image.yaml
Added RAG controller MCR image publish workflow                   
[link]   
publish-rag-service-gh-image.yaml
Added RAG service image publish workflow                                 
[link]   
publish-rag-service-mcr-image.yaml
Added RAG service MCR image publish workflow                         
[link]   
publish-ragengine-helm-chart.yaml
Added RAG engine helm chart publish workflow                         
[link]   
publish-workspace-gh-image.yaml
Added workspace image publish workflow                                     
[link]   
publish-workspace-helm-chart.yaml
Added workspace helm chart publish workflow                           
[link]   
publish-workspace-mcr-image.yaml
Added workspace MCR image publish workflow                             
[link]   
ragengine-e2e-workflow.yaml
Added RAG engine E2E workflow                                                       
[link]   
ragengine-e2e.yaml
Added RAG engine E2E test workflow                                             
[link]   
trivy.yaml
Added Trivy vulnerability scanner workflow                             
[link]   
unit-tests-ragengine.yaml
Added RAG engine unit tests workflow                                         
[link]   
unit-tests.yaml
Added unit tests workflow                                                               
[link]   
workspace-e2e.yaml
Added workspace E2E tests workflow                                             
[link]   
Additional files
2 files
action.yaml [link]   
action.yaml [link]   

Need help?
  • Type /help how to ... in the comments thread for any questions about PR-Agent usage.
  • Check out the documentation for more information.
  • Copy link

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

    ⏱️ Estimated effort to review: 5 🔵🔵🔵🔵🔵
    🧪 No relevant tests
    ⚡ Recommended focus areas for review

    Possible Issue

    The script determine_models.py is called without validation of its existence or correctness. Ensure that this script is available and correctly handles the input parameters.

    run: |
        PR_BRANCH=${{ env.BRANCH_NAME }} \
        FORCE_RUN_ALL=${{ env.FORCE_RUN_ALL }} \
        FORCE_RUN_ALL_PHI=${{ env.FORCE_RUN_ALL_PHI }} \
        python3 .github/determine_models.py
    
    Possible Issue

    The script determine_models.py is called without validation of its existence or correctness. Ensure that this script is available and correctly handles the input parameters.

    id: affected_models
    run: |
      PR_BRANCH=${{ env.BRANCH_NAME }} \
      FORCE_RUN_ALL=${{ steps.set_force_run_all.outputs.FORCE_RUN_ALL }} \
      FORCE_RUN_ALL_PHI=${{ steps.set_force_run_all.outputs.FORCE_RUN_ALL_PHI }} \
      python3 .github/determine_models.py

    Copy link

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Impact
    General
    Update branch name to main

    Use main instead of master for branch naming consistency.

    .github/workflows/trivy.yaml [2-6]

     on:
       push:
         branches:
    -      - master
    +      - main
       pull_request:
    Suggestion importance[1-10]: 8

    __

    Why: Using main instead of master aligns with common branch naming conventions and ensures consistency across the repository.

    Medium
    Rename variable for clarity

    Consider using a more descriptive variable name for clarity.

    .github/workflows/e2e-preset-test.yaml [87-95]

    +BASE_IMAGE_TESTS=$(echo "$ORIGINAL_MATRIX" | jq -c '
    +    map(select(.name == "base")) | 
    +    if length > 0 then
    +        .[0] as $base | 
    +        [
    +            ($base | .name = "vllm-distributed" | . + {"image-name": "base"})
    +            # example to add new case
    +            # ($base | .name = "test2" | . + {"image-name": "base"})
    +        ]
    +    else
    +        []
    +    end
    +')
     
    -
    Suggestion importance[1-10]: 3

    __

    Why: The variable name BASE_IMAGE_TESTS is clear, but renaming it could provide more context. However, the current name is understandable, so the impact is minimal.

    Low
    Security
    Pin Azure CLI version

    Use a specific version of Azure CLI to avoid breaking changes.

    .github/workflows/preset-image-build.yaml [95-103]

     - name: Install Azure CLI latest
       run: |
             if ! which az > /dev/null; then
                 echo "Azure CLI not found. Installing..."
    -            curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
    +            curl -sL https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -o packages-microsoft-prod.deb
    +            sudo dpkg -i packages-microsoft-prod.deb
    +            sudo apt-get update
    +            sudo apt-get install -y azure-cli=2.55.0-1~$(lsb_release -cs)
             else
                 echo "Azure CLI already installed."
             fi
    Suggestion importance[1-10]: 8

    __

    Why: Pinning the Azure CLI version prevents breaking changes and ensures consistent behavior across different environments.

    Medium
    Pin trivy-action version

    Pin the version of trivy-action to avoid unexpected behavior.

    .github/workflows/publish-rag-service-gh-image.yaml [107-117]

     - name: Scan ${{ steps.get-registry.outputs.registry_repository }}/${{ env.IMAGE_NAME }}:${{ env.IMG_TAG }}
    -  uses: aquasecurity/trivy-action@master
    +  uses: aquasecurity/trivy-action@v0.45.0
       with:
         image-ref: ${{ steps.get-registry.outputs.registry_repository }}/${{ env.IMAGE_NAME }}:${{ env.IMG_TAG }}
         format: 'table'
         exit-code: '1'
         ignore-unfixed: true
         vuln-type: 'os,library'
         severity: 'CRITICAL,HIGH'
         timeout: '5m0s'
    Suggestion importance[1-10]: 8

    __

    Why: Pinning the trivy-action version avoids unexpected behavior due to updates and ensures consistent security scanning.

    Medium

    Copy link
    Collaborator

    @chewong chewong left a comment

    Choose a reason for hiding this comment

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

    Could you resolve the merge conflict?

    @chewong chewong merged commit 152c0e8 into kaito-project:main Aug 4, 2025
    14 checks passed
    chewong pushed a commit that referenced this pull request Aug 5, 2025
    **Reason for Change**:
    <!-- What does this PR improve or fix in KAITO? Why is it needed? -->
    
    **Requirements**
    
    - [ ] added unit tests and e2e tests (if applicable).
    
    **Issue Fixed**:
    <!-- If this PR fixes GitHub issue 4321, add "Fixes #4321" to the next
    line. -->
    Follow up for #1339 
    **Notes for Reviewers**:
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    None yet
    Projects
    Status: Done
    Development

    Successfully merging this pull request may close these issues.

    3 participants