-
-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #353 from qdsfdhvh/version_1.7.0
Version to 1.7.0
- Loading branch information
Showing
123 changed files
with
1,981 additions
and
826 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,2 @@ | ||
**/baseline-prof.txt linguist-generated=true | ||
**/snapshots/**/*.png filter=lfs diff=lfs merge=lfs -text | ||
**/yarn.lock -diff |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,28 +2,37 @@ name: CompareScreenshot | |
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
pull_request: | ||
paths: | ||
- 'image-loader/**' | ||
- 'image-loader/src/**' | ||
|
||
env: | ||
GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx6g -Dorg.gradle.daemon=false -Dkotlin.incremental=false" | ||
permissions: { } | ||
|
||
jobs: | ||
test: | ||
runs-on: macos-latest | ||
compare-screenshot-test: | ||
runs-on: ubuntu-latest | ||
timeout-minutes: 20 | ||
|
||
permissions: | ||
contents: read # for clone | ||
actions: write # for upload-artifact | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
lfs: true | ||
- name: Checkout | ||
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | ||
|
||
- uses: actions/[email protected] | ||
- name: Set up JDK 17 | ||
uses: actions/setup-java@0ab4596768b603586c0de567f2430c30f5b0d2b0 # v3.13.0 | ||
with: | ||
distribution: 'zulu' | ||
java-version: 19 | ||
distribution: temurin | ||
java-version: 17 | ||
|
||
- name: Gradle cache | ||
uses: gradle/gradle-build-action@v2 | ||
- name: Setup Gradle | ||
uses: gradle/gradle-build-action@842c587ad8aa4c68eeba24c396e15af4c2e9f30a # v2.9.0 | ||
with: | ||
gradle-version: wrapper | ||
|
||
# Download screenshots from main branch | ||
- uses: dawidd6/action-download-artifact@v2 | ||
|
@@ -35,7 +44,7 @@ jobs: | |
|
||
- name: compare screenshot test | ||
id: compare-screenshot-test | ||
run: ./gradlew compareRoborazziDebug --stacktrace --info | ||
run: ./gradlew compareRoborazzi --stacktrace --info | ||
|
||
- uses: actions/upload-artifact@v3 | ||
if: ${{ always() }} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
name: Screenshot compare comment | ||
|
||
on: | ||
workflow_run: | ||
workflows: | ||
- CompareScreenshot | ||
types: | ||
- completed | ||
|
||
permissions: { } | ||
|
||
jobs: | ||
comment-compare-screenshot-test: | ||
if: > | ||
github.event.workflow_run.event == 'pull_request' && | ||
github.event.workflow_run.conclusion == 'success' | ||
timeout-minutes: 2 | ||
|
||
permissions: | ||
actions: read # for downloading artifacts | ||
contents: write # for pushing screenshot-diff to companion branch | ||
pull-requests: write # for creating a comment on pull requests | ||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2.27.0 | ||
with: | ||
name: pr | ||
run_id: ${{ github.event.workflow_run.id }} | ||
- id: get-pull-request-number | ||
name: Get pull request number | ||
shell: bash | ||
run: | | ||
echo "pull_request_number=$(cat NR)" >> "$GITHUB_OUTPUT" | ||
- name: master checkout | ||
id: checkout-master | ||
uses: actions/checkout@v3 | ||
with: | ||
ref: master | ||
- id: switch-companion-branch | ||
env: | ||
BRANCH_NAME: companion_${{ github.event.workflow_run.head_branch }} | ||
run: | | ||
# orphan means it will create no history branch | ||
git branch -D "$BRANCH_NAME" || true | ||
git checkout --orphan "$BRANCH_NAME" | ||
git rm -rf . | ||
- uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 # v2.27.0 | ||
with: | ||
run_id: ${{ github.event.workflow_run.id }} | ||
name: screenshot-diff | ||
path: screenshot-diff | ||
- id: check-if-there-are-valid-files | ||
name: Check if there are valid files | ||
shell: bash | ||
run: | | ||
# Find all the files ending with _compare.png | ||
mapfile -t files_to_add < <(find . -type f -name "*_compare.png") | ||
# Check for invalid file names and add only valid ones | ||
exist_valid_files="false" | ||
for file in "${files_to_add[@]}"; do | ||
if [[ $file =~ ^[a-zA-Z0-9_./-]+$ ]]; then | ||
exist_valid_files="true" | ||
break | ||
fi | ||
done | ||
echo "exist_valid_files=$exist_valid_files" >> "$GITHUB_OUTPUT" | ||
- id: push-screenshot-diff | ||
shell: bash | ||
if: steps.check-if-there-are-valid-files.outputs.exist_valid_files == 'true' | ||
env: | ||
BRANCH_NAME: companion_${{ github.event.workflow_run.head_branch }} | ||
run: | | ||
# Find all the files ending with _compare.png | ||
files_to_add=$(find . -type f -name "*_compare.png") | ||
# Check for invalid file names and add only valid ones | ||
for file in $files_to_add; do | ||
if [[ "$file" =~ ^[a-zA-Z0-9_./-]+$ ]]; then | ||
git add "$file" | ||
fi | ||
done | ||
git config --global user.name ScreenshotBot | ||
git config --global user.email 41898282+github-actions[bot]@users.noreply.github.com | ||
git commit -m "Add screenshot diff" | ||
git push origin HEAD:"$BRANCH_NAME" -f | ||
- id: generate-diff-reports | ||
name: Generate diff reports | ||
if: steps.check-if-there-are-valid-files.outputs.exist_valid_files == 'true' | ||
env: | ||
BRANCH_NAME: companion_${{ github.event.workflow_run.head_branch }} | ||
shell: bash | ||
run: | | ||
# Find all the files ending with _compare.png in roborazzi folder | ||
files=$(find . -type f -name "*_compare.png" | grep "roborazzi/" | grep -E "^[a-zA-Z0-9_./-]+$") | ||
delimiter="$(openssl rand -hex 8)" | ||
{ | ||
echo "reports<<${delimiter}" | ||
# Create markdown table header | ||
echo "Snapshot diff report" | ||
echo "| File name | Image |" | ||
echo "|-------|-------|" | ||
} >> "$GITHUB_OUTPUT" | ||
# Iterate over the files and create table rows | ||
for file in $files; do | ||
# Get the file name and insert newlines every 20 characters | ||
fileName=$(basename "$file" | sed -r 's/(.{20})/\1<br>/g') | ||
echo "| [$fileName](https://github.com/${{ github.repository }}/blob/$BRANCH_NAME/$file) | ![](https://github.com/${{ github.repository }}/blob/$BRANCH_NAME/$file?raw=true) |" >> "$GITHUB_OUTPUT" | ||
done | ||
echo "${delimiter}" >> "$GITHUB_OUTPUT" | ||
- name: Find Comment | ||
uses: peter-evans/find-comment@v2 | ||
id: fc | ||
if: steps.generate-diff-reports.outputs.reports != '' | ||
with: | ||
issue-number: ${{ steps.get-pull-request-number.outputs.pull_request_number }} | ||
comment-author: 'github-actions[bot]' | ||
body-includes: Snapshot diff report | ||
|
||
- name: Add or update comment on PR | ||
uses: peter-evans/create-or-update-comment@v3 | ||
if: steps.generate-diff-reports.outputs.reports != '' | ||
with: | ||
comment-id: ${{ steps.fc.outputs.comment-id }} | ||
issue-number: ${{ steps.get-pull-request-number.outputs.pull_request_number }} | ||
body: ${{ steps.generate-diff-reports.outputs.reports }} | ||
edit-mode: replace | ||
|
||
- name: Cleanup outdated companion branches | ||
run: | | ||
# Find outdated companion branches with last commit date | ||
git branch -r --format="%(refname:lstrip=3)" | grep companion_ | while read -r branch; do | ||
last_commit_date_timestamp=$(git log -1 --format=%ct "origin/$branch") | ||
now_timestamp=$(date +%s) | ||
# Delete branch if it's older than 1 month | ||
# if [ $((now_timestamp - last_commit_date_timestamp)) -gt 2592000 ]; then | ||
# For testing purpose, delete branch if it's older than 1 second | ||
echo "branch: $branch now_timestamp: $now_timestamp last_commit_date_timestamp: $last_commit_date_timestamp" | ||
if [ $((now_timestamp - last_commit_date_timestamp)) -gt 1 ]; then | ||
# Comment out for demonstration purpose | ||
echo "Deleting $branch" | ||
# git push origin --delete "$branch" | ||
fi | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.