diff --git a/.github/workflows/post_ci_status.yml b/.github/workflows/post_ci_status.yml deleted file mode 100644 index 1f24592c800..00000000000 --- a/.github/workflows/post_ci_status.yml +++ /dev/null @@ -1,110 +0,0 @@ -# -# Copyright (c) 2025, RT-Thread Development Team -# -# SPDX-License-Identifier: Apache-2.0 -# -# Change Logs: -# Date Author Notes -# 2025-10-27 GitHub Copilot Reusable workflow to post CI status - -name: Post CI Status Comment - -# on: -# workflow_call: -# inputs: -# workflow_name: -# description: 'Name of the workflow' -# required: true -# type: string -# workflow_status: -# description: 'Status of the workflow (success/failure)' -# required: true -# type: string -# pr_number: -# description: 'Pull request number' -# required: true -# type: number - -permissions: - pull-requests: write - issues: write - -jobs: - post-comment: - runs-on: ubuntu-22.04 - if: github.repository_owner == 'RT-Thread' - steps: - - name: Post or update CI status comment - uses: actions/github-script@v7 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - script: | - const prNumber = ${{ inputs.pr_number }}; - const workflowName = '${{ inputs.workflow_name }}'; - const workflowStatus = '${{ inputs.workflow_status }}'; - - // Status emoji mapping - const statusEmoji = workflowStatus === 'success' ? '✅' : '❌'; - const timestamp = new Date().toISOString(); - - // Try to find existing comment - const comments = await github.rest.issues.listComments({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: prNumber - }); - - const botComment = comments.data.find(comment => - comment.user.login === 'github-actions[bot]' && - comment.body.includes('') - ); - - // Get all workflow runs for this PR to build comprehensive status - let allStatuses = {}; - - if (botComment) { - // Parse existing statuses from comment - const statusRegex = /- (✅|❌|🟡) \*\*(.+?)\*\*/g; - let match; - while ((match = statusRegex.exec(botComment.body)) !== null) { - allStatuses[match[2]] = match[1]; - } - } - - // Update current workflow status - allStatuses[workflowName] = statusEmoji; - - // Build comment body - let commentBody = '\n'; - commentBody += '## 🤖 CI Test Results\n\n'; - commentBody += `**Last Updated:** ${timestamp}\n\n`; - commentBody += '### Workflow Status:\n\n'; - - for (const [name, emoji] of Object.entries(allStatuses)) { - commentBody += `- ${emoji} **${name}**\n`; - } - - commentBody += '\n---\n'; - commentBody += '✅ Success | ❌ Failure | 🟡 In Progress\n\n'; - commentBody += '*This comment is automatically updated as CI workflows complete.*\n'; - - if (botComment) { - // Update existing comment - await github.rest.issues.updateComment({ - owner: context.repo.owner, - repo: context.repo.repo, - comment_id: botComment.id, - body: commentBody - }); - console.log(`Updated comment ${botComment.id} on PR #${prNumber}`); - } else { - // Create new comment - await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: prNumber, - body: commentBody - }); - console.log(`Created new comment on PR #${prNumber}`); - }