mirror of
https://github.com/ElectronNET/Electron.NET.git
synced 2026-02-04 05:34:51 +00:00
- Separate between PR and Push execution (with and without secrets) - Turn tests into re-usable workflows and call them from the main ones
82 lines
2.2 KiB
YAML
82 lines
2.2 KiB
YAML
name: Create PR Comments
|
|
|
|
on:
|
|
workflow_run:
|
|
workflows: [ "PR Validation" ]
|
|
types: [completed]
|
|
|
|
permissions:
|
|
contents: read
|
|
actions: read
|
|
pull-requests: write
|
|
|
|
jobs:
|
|
pr-comment:
|
|
name: Post Test Result as PR comment
|
|
runs-on: ubuntu-24.04
|
|
if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion != 'cancelled'
|
|
|
|
steps:
|
|
- name: Download CTRF artifact
|
|
uses: dawidd6/action-download-artifact@v8
|
|
with:
|
|
github_token: ${{ github.token }}
|
|
run_id: ${{ github.event.workflow_run.id }}
|
|
name: ctrf-report
|
|
path: ctrf
|
|
|
|
- name: Download PR Number Artifact
|
|
uses: dawidd6/action-download-artifact@v8
|
|
with:
|
|
github_token: ${{ github.token }}
|
|
run_id: ${{ github.event.workflow_run.id }}
|
|
name: pr_number
|
|
path: pr_number
|
|
|
|
- name: Read PR Number
|
|
run: |
|
|
set -Eeuo pipefail
|
|
FILE='pr_number/pr_number.txt'
|
|
|
|
# Ensure file exists
|
|
if [ ! -f "$FILE" ] || [ -L "$FILE" ]; then
|
|
echo "Error: $FILE is missing or is not a regular file." >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Chec file size
|
|
if [ "$(wc -c < "$FILE" | tr -d ' ')" -gt 200 ]; then
|
|
echo "Error: $FILE is too large." >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Read first line
|
|
PR_NUMBER=""
|
|
IFS= read -r PR_NUMBER < "$FILE" || true
|
|
|
|
# Validate whether it's a number
|
|
if ! [[ "$PR_NUMBER" =~ ^[0-9]{1,10}$ ]]; then
|
|
echo "Error: PR_NUMBER is not a valid integer on the first line." >&2
|
|
exit 1
|
|
fi
|
|
|
|
printf 'PR_NUMBER=%s\n' "$PR_NUMBER" >> "$GITHUB_ENV"
|
|
|
|
- name: Post PR Comment
|
|
uses: ctrf-io/github-test-reporter@v1
|
|
with:
|
|
report-path: 'ctrf/**/*.json'
|
|
issue: ${{ env.PR_NUMBER }}
|
|
|
|
summary: true
|
|
pull-request: true
|
|
use-suite-name: true
|
|
update-comment: true
|
|
always-group-by: true
|
|
overwrite-comment: true
|
|
upload-artifact: false
|
|
|
|
pull-request-report: true
|
|
env:
|
|
GITHUB_TOKEN: ${{ github.token }}
|