Skip to content

Commit

Permalink
Merge pull request #33 from yorifuji/develop
Browse files Browse the repository at this point in the history
Version 2
  • Loading branch information
yorifuji authored Dec 15, 2024
2 parents f6f4187 + 7507c72 commit 768a916
Show file tree
Hide file tree
Showing 10 changed files with 1,692 additions and 42 deletions.
2 changes: 0 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,3 @@ jobs:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- uses: ./
with:
verbose: true
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1 @@
node_modules
node_modules/
104 changes: 65 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,67 +17,62 @@ permissions:
contents: read

jobs:
lookup:
prepare:
runs-on: ubuntu-latest
outputs:
actual-sha: ${{ steps.lookup.outputs.actual-sha }}
actual-cache-hit: ${{ steps.lookup.outputs.actual-cache-hit }}
expected-sha: ${{ steps.lookup.outputs.expected-sha }}
expected-cache-hit: ${{ steps.lookup.outputs.expected-cache-hit }}
actual-sha: ${{ steps.prepare.outputs.actual-sha }}
actual-cache-hit: ${{ steps.prepare.outputs.actual-cache-hit }}
expected-sha: ${{ steps.prepare.outputs.expected-sha }}
expected-cache-hit: ${{ steps.prepare.outputs.expected-cache-hit }}
steps:
- uses: yorifuji/easy-vrt@v1
id: lookup
with:
mode: lookup
- uses: yorifuji/easy-vrt/prepare@v2
id: prepare

expected:
if: ${{ !cancelled() && !failure() && needs.lookup.outputs.expected-cache-hit != 'true' }}
needs: lookup
if: ${{ !cancelled() && !failure() && needs.prepare.outputs.expected-cache-hit != 'true' }}
needs: prepare
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ needs.lookup.outputs.expected-sha }}
ref: ${{ needs.prepare.outputs.expected-sha }}

# >>> add step to create expected image

# <<< add step to create expected image

- uses: yorifuji/easy-vrt@v1
- uses: yorifuji/easy-vrt/expected@v2
with:
mode: expected
expected-dir: your-expected-image-dir # set the directory where the expected image is stored
expected-cache-key: ${{ needs.lookup.outputs.expected-sha }}
expected-cache-key: ${{ needs.prepare.outputs.expected-sha }}

actual:
if: ${{ !cancelled() && !failure() && needs.lookup.outputs.actual-cache-hit != 'true' }}
needs: lookup
if: ${{ !cancelled() && !failure() && needs.prepare.outputs.actual-cache-hit != 'true' }}
needs: prepare
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ needs.lookup.outputs.actual-sha }}
ref: ${{ needs.prepare.outputs.actual-sha }}

# >>> add step to create actual image

# <<< add step to create actual image

- uses: yorifuji/easy-vrt@v1
- uses: yorifuji/easy-vrt/actual@v2
with:
mode: actual
actual-dir: your-actual-image-dir # set the directory where the actual image is stored
actual-cache-key: ${{ needs.lookup.outputs.actual-sha }}
actual-cache-key: ${{ needs.prepare.outputs.actual-sha }}

compare:
if: ${{ !cancelled() && !failure() }}
needs: [lookup, expected, actual]
needs: [prepare, expected, actual]
runs-on: ubuntu-latest
steps:
- uses: yorifuji/easy-vrt@v1
- uses: yorifuji/easy-vrt/compare@v2
with:
mode: compare
expected-cache-key: ${{ needs.lookup.outputs.expected-sha }}
actual-cache-key: ${{ needs.lookup.outputs.actual-sha }}
expected-cache-key: ${{ needs.prepare.outputs.expected-sha }}
actual-cache-key: ${{ needs.prepare.outputs.actual-sha }}
```
### Example for Flutter Applications
Expand All @@ -95,12 +90,11 @@ expected
+ flutter pub get
+ flutter test --update-goldens --tags=golden

- uses: yorifuji/easy-vrt@v1
- uses: yorifuji/easy-vrt@v2
with:
mode: expected
- expected-dir: your-expected-image-dir # set the directory where the expected image is stored
+ expected-dir: test/golden_test/goldens
expected-cache-key: ${{ needs.lookup.outputs.expected-sha }}
expected-cache-key: ${{ needs.prepare.outputs.expected-sha }}
```
actual
Expand All @@ -114,35 +108,67 @@ actual
+ flutter pub get
+ flutter test --update-goldens --tags=golden

- uses: yorifuji/easy-vrt@v1
- uses: yorifuji/easy-vrt@v2
with:
mode: actual
- actual-dir: your-actual-image-dir # set the directory where the actual image is stored
+ actual-dir: test/golden_test/goldens
actual-cache-key: ${{ needs.lookup.outputs.actual-sha }}
actual-cache-key: ${{ needs.prepare.outputs.actual-sha }}
```
## Actions
### Inputs
### yorifuji/easy-vrt/prepare
```yaml
inputs:
mode:
description: "Mode, [lookup, expected, actual, compare]"
expected-dir:
description: "Expected directory"
required: true
expected-cache-key:
description: "Cache key for expected"
required: true
actual-dir:
description: "Actual directory"
required: true
actual-cache-key:
description: "Cache key for actual"
required: true
```
### yorifuji/easy-vrt/expected
```yaml
inputs:
expected-dir:
description: "Expected directory"
required: false
required: true
expected-cache-key:
description: "Cache key for expected"
required: false
required: true
```
### yorifuji/easy-vrt/actual
```yaml
inputs:
actual-dir:
description: "Actual directory"
required: false
required: true
actual-cache-key:
description: "Cache key for actual"
required: false
required: true
```
### yorifuji/easy-vrt/comapre
```yaml
inputs:
expected-cache-key:
description: "Cache key for expected"
required: true
actual-cache-key:
description: "Cache key for actual"
required: true
summary-comment:
description: "If true, add a summary comment on workflow summary"
required: false
Expand Down
7 changes: 7 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,25 +11,32 @@ branding:
inputs:
mode:
description: "Mode, [lookup, expected, actual, compare]"
deprecationMessage: "Easy VRT version 1 is deprecated. Please use version 2."
required: true
expected-dir:
description: "Expected directory"
deprecationMessage: "Easy VRT version 1 is deprecated. Please use version 2."
required: false
expected-cache-key:
description: "Cache key for expected"
deprecationMessage: "Easy VRT version 1 is deprecated. Please use version 2."
required: false
actual-dir:
description: "Actual directory"
deprecationMessage: "Easy VRT version 1 is deprecated. Please use version 2."
required: false
actual-cache-key:
description: "Cache key for actual"
deprecationMessage: "Easy VRT version 1 is deprecated. Please use version 2."
required: false
summary-comment:
description: "If true, add a summary comment on workflow summary"
deprecationMessage: "Easy VRT version 1 is deprecated. Please use version 2."
required: false
default: false
review-comment:
description: "If true, add a review comment on PR review"
deprecationMessage: "Easy VRT version 1 is deprecated. Please use version 2."
required: false
default: false

Expand Down
30 changes: 30 additions & 0 deletions actual/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: "Actual VRT"

description: "Actual VRT is a utility action for visual regression testing."

author: "yorifuji"

branding:
icon: code
color: blue

inputs:
actual-dir:
description: "Actual directory"
required: true
actual-cache-key:
description: "Cache key for actual"
required: true

runs:
using: composite
steps:
- shell: bash
run: |
if [ -e .easy-vrt ]; then exit 1; fi
mkdir .easy-vrt && mv ${{ inputs.actual-dir }} .easy-vrt/actual
- uses: actions/cache/save@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
with:
path: .easy-vrt/actual
key: reg-suit-cache-${{ inputs.actual-cache-key }}
Loading

0 comments on commit 768a916

Please sign in to comment.