mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-18 21:14:01 +08:00
* video diff * format * duplicate * try * WINDOWED * ? * correct res * Revert "correct res" This reverts commit f90991192fce93a31d1b581a4f0ff93a7a972337. * save to report/ * add duplicate * work? * fix * more * more * and this * ffmpeg * branch * uncmt * test preview * Revert "uncmt" This reverts commit b02404dbbe515fd861717f831c7bb0243442ddbc. * create openpilot_master_ui_mici_raylib * ahh * push to master * copy and always run * test * does cmt break it? * who did this * fix? * fix that * hmm * hmm * ah this was moving it, and then the job below didn't run on master * google ai overview lied to me * use markdown to start * need to add to one branch * ???? * oof * no * this work? * test * try this * clean up master branch name * more cleanup more cleanup * don't fail for no diff! don't fail for no diff! * back * add to cmt * test it * should work * fix that * back * clean up * clean up * save to report * pull_request_target * sort --------- Co-authored-by: Shane Smiskol <shane@smiskol.com>
152 lines
6.4 KiB
YAML
152 lines
6.4 KiB
YAML
name: "mici raylib ui preview"
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request_target:
|
|
types: [assigned, opened, synchronize, reopened, edited]
|
|
branches:
|
|
- 'master'
|
|
paths:
|
|
- 'selfdrive/assets/**'
|
|
- 'selfdrive/ui/**'
|
|
- 'system/ui/**'
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
UI_JOB_NAME: "Create mici raylib UI Report"
|
|
REPORT_NAME: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && 'master' || github.event.number }}
|
|
SHA: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.sha || github.event.pull_request.head.sha }}
|
|
BRANCH_NAME: "openpilot/pr-${{ github.event.number }}-mici-raylib-ui"
|
|
MASTER_BRANCH_NAME: "openpilot_master_ui_mici_raylib"
|
|
# All report files are pushed here
|
|
REPORT_FILES_BRANCH_NAME: "mici-raylib-ui-reports"
|
|
|
|
jobs:
|
|
preview:
|
|
if: github.repository == 'commaai/openpilot'
|
|
name: preview
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 20
|
|
permissions:
|
|
contents: read
|
|
pull-requests: write
|
|
actions: read
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Waiting for ui generation to end
|
|
uses: lewagon/wait-on-check-action@v1.3.4
|
|
with:
|
|
ref: ${{ env.SHA }}
|
|
check-name: ${{ env.UI_JOB_NAME }}
|
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
allowed-conclusions: success
|
|
wait-interval: 20
|
|
|
|
- name: Getting workflow run ID
|
|
id: get_run_id
|
|
run: |
|
|
echo "run_id=$(curl https://api.github.com/repos/${{ github.repository }}/commits/${{ env.SHA }}/check-runs | jq -r '.check_runs[] | select(.name == "${{ env.UI_JOB_NAME }}") | .html_url | capture("(?<number>[0-9]+)") | .number')" >> $GITHUB_OUTPUT
|
|
|
|
- name: Getting proposed ui # filename: pr_ui/mici_ui_replay.mp4
|
|
id: download-artifact
|
|
uses: dawidd6/action-download-artifact@v6
|
|
with:
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
run_id: ${{ steps.get_run_id.outputs.run_id }}
|
|
search_artifacts: true
|
|
name: mici-raylib-report-1-${{ env.REPORT_NAME }}
|
|
path: ${{ github.workspace }}/pr_ui
|
|
|
|
- name: Getting master ui # filename: master_ui_raylib/mici_ui_replay.mp4
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: commaai/ci-artifacts
|
|
ssh-key: ${{ secrets.CI_ARTIFACTS_DEPLOY_KEY }}
|
|
path: ${{ github.workspace }}/master_ui_raylib
|
|
ref: ${{ env.MASTER_BRANCH_NAME }}
|
|
|
|
- name: Saving new master ui
|
|
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
|
|
working-directory: ${{ github.workspace }}/master_ui_raylib
|
|
run: |
|
|
git checkout --orphan=new_master_ui_mici_raylib
|
|
git rm -rf *
|
|
git branch -D ${{ env.MASTER_BRANCH_NAME }}
|
|
git branch -m ${{ env.MASTER_BRANCH_NAME }}
|
|
git config user.name "GitHub Actions Bot"
|
|
git config user.email "<>"
|
|
mv ${{ github.workspace }}/pr_ui/* .
|
|
git add .
|
|
git commit -m "mici raylib video for commit ${{ env.SHA }}"
|
|
git push origin ${{ env.MASTER_BRANCH_NAME }} --force
|
|
|
|
- name: Setup FFmpeg
|
|
uses: AnimMouse/setup-ffmpeg@ae28d57dabbb148eff63170b6bf7f2b60062cbae
|
|
|
|
- name: Finding diff
|
|
if: github.event_name == 'pull_request_target'
|
|
id: find_diff
|
|
run: |
|
|
# Find the video file from PR
|
|
pr_video="${{ github.workspace }}/pr_ui/mici_ui_replay_proposed.mp4"
|
|
mv "${{ github.workspace }}/pr_ui/mici_ui_replay.mp4" "$pr_video"
|
|
|
|
master_video="${{ github.workspace }}/pr_ui/mici_ui_replay_master.mp4"
|
|
mv "${{ github.workspace }}/master_ui_raylib/mici_ui_replay.mp4" "$master_video"
|
|
|
|
# Run report
|
|
export PYTHONPATH=${{ github.workspace }}
|
|
baseurl="https://github.com/commaai/ci-artifacts/raw/refs/heads/${{ env.BRANCH_NAME }}"
|
|
diff_exit_code=0
|
|
python3 ${{ github.workspace }}/selfdrive/ui/tests/diff/diff.py "${{ github.workspace }}/pr_ui/mici_ui_replay_master.mp4" "${{ github.workspace }}/pr_ui/mici_ui_replay_proposed.mp4" "diff.html" --basedir "$baseurl" --no-open || diff_exit_code=$?
|
|
|
|
# Copy diff report files
|
|
cp ${{ github.workspace }}/selfdrive/ui/tests/diff/report/diff.html ${{ github.workspace }}/pr_ui/
|
|
cp ${{ github.workspace }}/selfdrive/ui/tests/diff/report/diff.mp4 ${{ github.workspace }}/pr_ui/
|
|
|
|
REPORT_URL="https://commaai.github.io/ci-artifacts/diff_pr_${{ github.event.number }}.html"
|
|
if [ $diff_exit_code -eq 0 ]; then
|
|
DIFF="✅ Videos are identical! [View Diff Report]($REPORT_URL)"
|
|
else
|
|
DIFF="❌ <strong>Videos differ!</strong> [View Diff Report]($REPORT_URL)"
|
|
fi
|
|
echo "DIFF=$DIFF" >> "$GITHUB_OUTPUT"
|
|
|
|
- name: Saving proposed ui
|
|
if: github.event_name == 'pull_request_target'
|
|
working-directory: ${{ github.workspace }}/master_ui_raylib
|
|
run: |
|
|
# Overwrite PR branch w/ proposed ui, and master ui at this point in time for future reference
|
|
git config user.name "GitHub Actions Bot"
|
|
git config user.email "<>"
|
|
git checkout --orphan=${{ env.BRANCH_NAME }}
|
|
git rm -rf *
|
|
mv ${{ github.workspace }}/pr_ui/* .
|
|
git add .
|
|
git commit -m "mici raylib video for PR #${{ github.event.number }}"
|
|
git push origin ${{ env.BRANCH_NAME }} --force
|
|
|
|
# Append diff report to report files branch
|
|
git fetch origin ${{ env.REPORT_FILES_BRANCH_NAME }}
|
|
git checkout ${{ env.REPORT_FILES_BRANCH_NAME }}
|
|
cp ${{ github.workspace }}/selfdrive/ui/tests/diff/report/diff.html diff_pr_${{ github.event.number }}.html
|
|
git add diff_pr_${{ github.event.number }}.html
|
|
git commit -m "mici raylib ui diff report for PR #${{ github.event.number }}" || echo "No changes to commit"
|
|
git push origin ${{ env.REPORT_FILES_BRANCH_NAME }}
|
|
|
|
- name: Comment Video on PR
|
|
if: github.event_name == 'pull_request_target'
|
|
uses: thollander/actions-comment-pull-request@v2
|
|
with:
|
|
message: |
|
|
<!-- _(run_id_video_mici_raylib **${{ github.run_id }}**)_ -->
|
|
## mici raylib UI Preview
|
|
${{ steps.find_diff.outputs.DIFF }}
|
|
comment_tag: run_id_video_mici_raylib
|
|
pr_number: ${{ github.event.number }}
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|