diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3f27804..fa00db9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -220,6 +220,9 @@ jobs: runs-on: ubuntu-latest needs: [test, lint, build, security, docs] if: always() + permissions: + statuses: write + contents: read steps: - name: Check overall status @@ -233,8 +236,12 @@ jobs: echo "status=success" >> $GITHUB_OUTPUT else echo "❌ Some CI checks failed" + echo "Test: ${{ needs.test.result }}" + echo "Lint: ${{ needs.lint.result }}" + echo "Build: ${{ needs.build.result }}" + echo "Security: ${{ needs.security.result }}" + echo "Docs: ${{ needs.docs.result }}" echo "status=failure" >> $GITHUB_OUTPUT - exit 1 fi id: status @@ -243,14 +250,21 @@ jobs: uses: actions/github-script@v8 with: script: | - const state = '${{ steps.status.outputs.status }}' === 'success' ? 'success' : 'failure'; - const description = state === 'success' ? 'All checks passed' : 'Some checks failed'; + try { + const state = '${{ steps.status.outputs.status }}' === 'success' ? 'success' : 'failure'; + const description = state === 'success' ? 'All checks passed' : 'Some checks failed'; - github.rest.repos.createCommitStatus({ - owner: context.repo.owner, - repo: context.repo.repo, - sha: context.sha, - state: state, - description: description, - context: 'CI Pipeline' - }); + await github.rest.repos.createCommitStatus({ + owner: context.repo.owner, + repo: context.repo.repo, + sha: context.sha, + state: state, + description: description, + context: 'CI Pipeline' + }); + + console.log(`✅ Successfully updated commit status to: ${state}`); + } catch (error) { + console.log(`⚠️ Failed to update commit status: ${error.message}`); + // Don't fail the workflow if status update fails + }