diff --git a/.github/workflows/build-and-publish-image.yml b/.github/workflows/build-and-publish-image.yml index e25051a0..ab8b85fd 100644 --- a/.github/workflows/build-and-publish-image.yml +++ b/.github/workflows/build-and-publish-image.yml @@ -46,7 +46,7 @@ jobs: - name: 'Log in to the Container registry' if: |- - ${{ github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) }} + ${{ github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') || github.event.inputs.publish == 'true') }} uses: 'docker/login-action@v3' # ratchet:exclude with: registry: '${{ env.REGISTRY }}' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c9e5e188..5bf02602 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -95,10 +95,19 @@ jobs: with: node-version-file: '.nvmrc' cache: 'npm' + cache-dependency-path: 'package-lock.json' + registry-url: 'https://registry.npmjs.org/' + + - name: 'Configure npm for rate limiting' + run: |- + npm config set fetch-retry-mintimeout 20000 + npm config set fetch-retry-maxtimeout 120000 + npm config set fetch-retries 5 + npm config set fetch-timeout 300000 - name: 'Install dependencies' run: |- - npm ci + npm ci --prefer-offline --no-audit --progress=false - name: 'Run formatter check' run: |- @@ -273,15 +282,24 @@ jobs: with: node-version: '${{ matrix.node-version }}' cache: 'npm' + cache-dependency-path: 'package-lock.json' + registry-url: 'https://registry.npmjs.org/' + + - name: 'Configure npm for rate limiting' + run: |- + npm config set fetch-retry-mintimeout 20000 + npm config set fetch-retry-maxtimeout 120000 + npm config set fetch-retries 5 + npm config set fetch-timeout 300000 + + - name: 'Install dependencies' + run: |- + npm ci --prefer-offline --no-audit --progress=false - name: 'Build project' run: |- npm run build - - name: 'Install dependencies for testing' - run: |- - npm ci - - name: 'Run tests and generate reports' env: NO_COLOR: true diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 3c778f1a..077ba92e 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -28,10 +28,19 @@ jobs: with: node-version: '${{ matrix.node-version }}' cache: 'npm' + cache-dependency-path: 'package-lock.json' + registry-url: 'https://registry.npmjs.org/' + + - name: 'Configure npm for rate limiting' + run: |- + npm config set fetch-retry-mintimeout 20000 + npm config set fetch-retry-maxtimeout 120000 + npm config set fetch-retries 5 + npm config set fetch-timeout 300000 - name: 'Install dependencies' run: |- - npm ci + npm ci --prefer-offline --no-audit --progress=false - name: 'Build project' run: |- @@ -74,10 +83,19 @@ jobs: with: node-version-file: '.nvmrc' cache: 'npm' + cache-dependency-path: 'package-lock.json' + registry-url: 'https://registry.npmjs.org/' + + - name: 'Configure npm for rate limiting' + run: |- + npm config set fetch-retry-mintimeout 20000 + npm config set fetch-retry-maxtimeout 120000 + npm config set fetch-retries 5 + npm config set fetch-timeout 300000 - name: 'Install dependencies' run: |- - npm ci + npm ci --prefer-offline --no-audit --progress=false - name: 'Build project' run: |- diff --git a/.github/workflows/gemini-automated-issue-triage.yml b/.github/workflows/gemini-automated-issue-triage.yml index a4c5e251..96d71b7b 100644 --- a/.github/workflows/gemini-automated-issue-triage.yml +++ b/.github/workflows/gemini-automated-issue-triage.yml @@ -48,7 +48,7 @@ jobs: OPENAI_API_KEY: '${{ secrets.OPENAI_API_KEY }}' OPENAI_BASE_URL: '${{ secrets.OPENAI_BASE_URL }}' OPENAI_MODEL: '${{ secrets.OPENAI_MODEL }}' - settings_json: | + settings_json: |- { "maxSessionTurns": 25, "coreTools": [ @@ -68,7 +68,7 @@ jobs: ## Steps 1. Run: `gh label list --repo ${{ github.repository }} --limit 100` to get all available labels. - 2. Use right tool to review the issue title and body provided in the environment variables: "${ISSUE_TITLE}" and "${ISSUE_BODY}". + 2. Use shell command `echo` to check the issue title and body provided in the environment variables: "${ISSUE_TITLE}" and "${ISSUE_BODY}". 3. Ignore any existing priorities or tags on the issue. Just report your findings. 4. Select the most relevant labels from the existing labels, focusing on kind/*, area/*, sub-area/* and priority/*. For area/* and kind/* limit yourself to only the single most applicable label in each case. 6. Apply the selected labels to this issue using: `gh issue edit ${{ github.event.issue.number }} --repo ${{ github.repository }} --add-label "label1,label2"`. diff --git a/.github/workflows/gemini-scheduled-issue-triage.yml b/.github/workflows/gemini-scheduled-issue-triage.yml index 7711a329..69d7eb71 100644 --- a/.github/workflows/gemini-scheduled-issue-triage.yml +++ b/.github/workflows/gemini-scheduled-issue-triage.yml @@ -36,7 +36,7 @@ jobs: env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' GITHUB_REPOSITORY: '${{ github.repository }}' - run: | + run: |- echo "🔍 Finding issues without labels..." NO_LABEL_ISSUES=$(gh issue list --repo ${{ github.repository }} --search "is:open is:issue no:label" --json number,title,body) @@ -66,7 +66,7 @@ jobs: OPENAI_API_KEY: '${{ secrets.OPENAI_API_KEY }}' OPENAI_BASE_URL: '${{ secrets.OPENAI_BASE_URL }}' OPENAI_MODEL: '${{ secrets.OPENAI_MODEL }}' - settings_json: | + settings_json: |- { "maxSessionTurns": 25, "coreTools": [ @@ -88,7 +88,7 @@ jobs: ## Steps 1. Run: `gh label list --repo ${{ github.repository }} --limit 100` to get all available labels. - 2. Use right tool to check environment variable for issues to triage: $ISSUES_TO_TRIAGE (JSON array of issues) + 2. Use shell command `echo` to check environment variable for issues to triage: $ISSUES_TO_TRIAGE (JSON array of issues) 3. Review the issue title, body and any comments provided in the environment variables. 4. Ignore any existing priorities or tags on the issue. 5. Select the most relevant labels from the existing labels, focusing on kind/*, area/*, sub-area/* and priority/*. diff --git a/.github/workflows/qwen-code-pr-review.yml b/.github/workflows/qwen-code-pr-review.yml index 1efae14b..6d7f0934 100644 --- a/.github/workflows/qwen-code-pr-review.yml +++ b/.github/workflows/qwen-code-pr-review.yml @@ -16,7 +16,7 @@ on: jobs: review-pr: - if: > + if: |- github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request_target' && github.event.action == 'opened' && @@ -59,7 +59,7 @@ jobs: ${{ github.event_name == 'pull_request_target' || github.event_name == 'workflow_dispatch' }} env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' - run: | + run: |- if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then PR_NUMBER=${{ github.event.inputs.pr_number }} else @@ -82,7 +82,7 @@ jobs: env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' COMMENT_BODY: '${{ github.event.comment.body }}' - run: | + run: |- PR_NUMBER=${{ github.event.issue.number }} echo "pr_number=$PR_NUMBER" >> "$GITHUB_OUTPUT" # Extract additional instructions from comment @@ -110,22 +110,15 @@ jobs: OPENAI_API_KEY: '${{ secrets.OPENAI_API_KEY }}' OPENAI_BASE_URL: '${{ secrets.OPENAI_BASE_URL }}' OPENAI_MODEL: '${{ secrets.OPENAI_MODEL }}' - settings_json: | + settings_json: |- { "coreTools": [ - "run_shell_command(echo)", - "run_shell_command(gh pr view)", - "run_shell_command(gh pr diff)", - "run_shell_command(gh pr comment)", - "run_shell_command(cat)", - "run_shell_command(head)", - "run_shell_command(tail)", - "run_shell_command(grep)", + "run_shell_command", "write_file" ], "sandbox": false } - prompt: | + prompt: |- You are an expert code reviewer. You have access to shell commands to gather PR information and perform the review. IMPORTANT: Use the available shell commands to gather information. Do not ask for information to be provided.