9595 cli_tests : ${{ steps.determine-test-type.outputs.cli_tests }}
9696 submodule_tests : ${{ steps.determine-test-type.outputs.submodule_tests }}
9797 version_match_tests : ${{ steps.determine-test-type.outputs.version_match_tests }}
98- pr_approval_state : ${{ steps.approval.outputs.approved }}
9998 steps :
100- - name : check-current-approval-status
101- id : approval
102- if : github.event_name == 'pull_request'
103- uses : actions/github-script@v7
104- with :
105- script : |
106- const {owner, repo} = context.repo;
107- const number = context.payload.pull_request.number;
108-
109- // Fetch all reviews across all pages
110- const allReviews = await github.paginate(github.rest.pulls.listReviews, {
111- owner,
112- repo,
113- pull_number: number,
114- per_page: 100,
115- });
116-
117- core.info(`Found ${allReviews.length} total review events.`);
118-
119- // Process the array to get only the latest review per user
120- const latestByUser = {};
121- allReviews.forEach(review => {
122- if (review.state !== 'COMMENTED') {
123- latestByUser[review.user.id] = review;
124- }
125- });
126-
127- const latestStates = Object.values(latestByUser).map(review => review.state);
128- core.info(`Final review states from unique reviewers: [${latestStates.join(', ')}]`);
129-
130- // The rest of the logic remains the same
131- const isBlocked = latestStates.includes('CHANGES_REQUESTED');
132- const isApproved = latestStates.includes('APPROVED');
133- const finalStatus = isApproved && !isBlocked;
134-
135- core.info(`🏁 Final determined approval status is: ${finalStatus}`);
136- core.setOutput('approved', finalStatus ? 'true' : 'false');
13799 - name : determine-test-type
138100 id : determine-test-type
139101 env :
@@ -146,7 +108,6 @@ jobs:
146108 INPUT_CLI : ${{ github.event.inputs.cli_tests || inputs.cli_tests }}
147109 INPUT_SUBMODULE : ${{ github.event.inputs.submodule_tests || inputs.submodule_tests }}
148110 INPUT_VERSION_MATCH : ${{ github.event.inputs.version_match_tests || inputs.version_match_tests }}
149- APPROVED : ${{ steps.approval.outputs.approved }}
150111 run : |
151112 echo "Event: $EVENT_NAME"
152113 echo "Draft: $DRAFT_STATE"
@@ -157,7 +118,6 @@ jobs:
157118 echo "Input cli: $INPUT_CLI"
158119 echo "Input submodule: $INPUT_SUBMODULE"
159120 echo "Input version_match: $INPUT_VERSION_MATCH"
160- echo "Approved: $APPROVED"
161121
162122 remote_tests=false
163123 local_tests=false
@@ -205,23 +165,6 @@ jobs:
205165 code_quality_tests=true
206166 fi
207167
208- # If triggered by PR review and approved
209- if [[ "$EVENT_NAME" == "pull_request_review" ]]; then
210- if [[ "$REVIEW_STATE" == "approved" ]]; then
211- code_quality_tests=true
212- pr_review_tests=true
213- local_tests=true
214- remote_tests=true
215- fi
216- fi
217-
218- # If it's a push to develop
219- if [[ "$EVENT_NAME" == "push" && "$REF" == "refs/heads/develop" ]]; then
220- local_tests=true
221- remote_tests=true
222- code_quality_tests=true
223- fi
224-
225168 echo "local_tests=$local_tests" >> $GITHUB_OUTPUT
226169 echo "remote_tests=$remote_tests" >> $GITHUB_OUTPUT
227170 echo "cli_tests=$cli_tests" >> $GITHUB_OUTPUT
@@ -1022,7 +965,7 @@ jobs:
1022965 if : |
1023966 always() &&
1024967 (github.event_name == 'pull_request' || github.event_name == 'pull_request_review' || github.event_name == 'merge_group') &&
1025- (( needs.determine-test-scope.outputs.pr_approval_state == 'true' && needs.determine-test-scope.outputs. local_tests == 'true') || needs.determine-test-scope.outputs.remote_tests == 'true')
968+ (needs.determine-test-scope.outputs.local_tests == 'true' || needs.determine-test-scope.outputs.remote_tests == 'true')
1026969 needs :
1027970 - determine-test-scope
1028971 - workflow-validation
0 commit comments