Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Roborazzi output cache #262

Merged
merged 6 commits into from Feb 18, 2024

Conversation

takahirom
Copy link
Owner

@takahirom takahirom commented Feb 17, 2024

close #261

@takahirom takahirom force-pushed the takahirom/fix-roborazzi-output-cache/2024-02-17 branch from e9f1106 to 4f341b5 Compare February 17, 2024 08:13
Copy link

Base automatically changed from takahirom/add-contextdata-tabs-for-html-report/2024-02-13 to main February 17, 2024 13:57
@takahirom takahirom changed the title [WIP]Fix Roborazzi output cache Fix Roborazzi output cache Feb 17, 2024
// println("Copy file ${it.absolutePath} to ${intermediateDir.get()}")
// }
outputDir.get().asFile.mkdirs()
outputDir.get().asFile.copyRecursively(
Copy link
Owner Author

@takahirom takahirom Feb 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The issue of not being able to see images in the output directory arises because we have configured build/intermediates/roborazzi as the output directory for the test task in order to use build/outputs/roborazzi as its input directory. This configuration is essential for calculating image differences. Therefore, when Gradle loads the cache, it only loads the intermediate directory from the cache. However, we did not copy the contents of the intermediate directory to the output directory. To resolve this, we now copy the intermediate directory to the output directory whenever the test task is skipped.

@takahirom takahirom merged commit d0bb4cb into main Feb 18, 2024
5 checks passed
@takahirom takahirom deleted the takahirom/fix-roborazzi-output-cache/2024-02-17 branch February 18, 2024 02:00
github-merge-queue bot pushed a commit to slackhq/circuit that referenced this pull request Feb 18, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[io.github.takahirom.roborazzi](https://togithub.com/takahirom/roborazzi)
| plugin | minor | `1.9.0` -> `1.10.0` |
|
[io.github.takahirom.roborazzi:roborazzi-junit-rule](https://togithub.com/takahirom/roborazzi)
| dependencies | minor | `1.9.0` -> `1.10.0` |
|
[io.github.takahirom.roborazzi:roborazzi-compose](https://togithub.com/takahirom/roborazzi)
| dependencies | minor | `1.9.0` -> `1.10.0` |
|
[io.github.takahirom.roborazzi:roborazzi](https://togithub.com/takahirom/roborazzi)
| dependencies | minor | `1.9.0` -> `1.10.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>takahirom/roborazzi (io.github.takahirom.roborazzi)</summary>

###
[`v1.10.0`](https://togithub.com/takahirom/roborazzi/releases/tag/1.10.0)

[Compare
Source](https://togithub.com/takahirom/roborazzi/compare/1.9.0...1.10.0)

##### New experimental feature

##### Custom context data for images and reports

Custom context data enables the addition of information to images and
reports in Roborazzi's tests, which I believe is very important. For
example, it can include the test class name of a screenshot or whether
it is in dark mode.
You can now add custom context data using RoborazziOptions, and
Roborazzi will add the test class name metadata if you use
RoborazziRule. If you have any opinions about this feature, please let
me know at
[takahirom/roborazzi#257.
Furthermore, this opens up possibilities with AI. Given that AI now
possesses multimodal capabilities, it has become feasible for AI to
process images.
This feature was made possible thanks to
[@&#8203;sanao1006](https://togithub.com/sanao1006) 's contribution of
migrating from org.json to gson.

```kotlin
    onView(ViewMatchers.isRoot())
      .captureRoboImage(
        roborazziOptions = RoborazziOptions(
          contextData = mapOf(
            "context_data_key" to "context_data_value"
          )
        )
      )
  }
```

<img width="1335" alt="image"
src="https://github.com/takahirom/roborazzi/assets/1386930/16341681-ab11-4f1c-b231-0c5a26e1a0e2">

##### Important bug fix

Gradle attempts to load the test cache whenever possible, but there was
an issue where Roborazzi couldn't restore images from the cache. This
release includes a fix for this problem. Thank you,
[@&#8203;francescocervone](https://togithub.com/francescocervone), for
reporting this issue.

##### What's Changed

- \[CI]Escape branch name by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[takahirom/roborazzi#253
- refactor: migrating from the `org.json` Library to `Gson` by
[@&#8203;sanao1006](https://togithub.com/sanao1006) in
[takahirom/roborazzi#248
- doc: Add build.gradle.kts examples by
[@&#8203;sanao1006](https://togithub.com/sanao1006) in
[takahirom/roborazzi#256
- Enable adding metadata to image by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[takahirom/roborazzi#259
- Add contextdata tabs to HTML report by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[takahirom/roborazzi#260
- Fix Roborazzi output cache by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[takahirom/roborazzi#262

##### New Contributors

- [@&#8203;sanao1006](https://togithub.com/sanao1006) made their first
contribution in
[takahirom/roborazzi#248

**Full Changelog**:
takahirom/roborazzi@1.9.0...1.10.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOTQuMyIsInVwZGF0ZWRJblZlciI6IjM3LjE5NC4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
github-merge-queue bot pushed a commit to slackhq/circuit that referenced this pull request Feb 19, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[io.github.takahirom.roborazzi](https://togithub.com/takahirom/roborazzi)
| plugin | patch | `1.10.0` -> `1.10.1` |
|
[io.github.takahirom.roborazzi:roborazzi-junit-rule](https://togithub.com/takahirom/roborazzi)
| dependencies | patch | `1.10.0` -> `1.10.1` |
|
[io.github.takahirom.roborazzi:roborazzi-compose](https://togithub.com/takahirom/roborazzi)
| dependencies | patch | `1.10.0` -> `1.10.1` |
|
[io.github.takahirom.roborazzi:roborazzi](https://togithub.com/takahirom/roborazzi)
| dependencies | patch | `1.10.0` -> `1.10.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>takahirom/roborazzi (io.github.takahirom.roborazzi)</summary>

###
[`v1.10.1`](https://togithub.com/takahirom/roborazzi/releases/tag/1.10.1)

[Compare
Source](https://togithub.com/takahirom/roborazzi/compare/1.10.0...1.10.1)

##### Changes from 1.10.0

This release includes a bug fix for a Javascript error that prevented
the HTML report from being displayed.

##### Changes from 1.9.0

##### New experimental feature

##### Custom context data for images and reports

Custom context data enables the addition of information to images and
reports in Roborazzi's tests, which I believe is very important. For
example, it can include the test class name of a screenshot or whether
it is in dark mode.
You can now add custom context data using RoborazziOptions, and
Roborazzi will add the test class name metadata if you use
RoborazziRule. If you have any opinions about this feature, please let
me know at
[takahirom/roborazzi#257.
Furthermore, this opens up possibilities with AI. Given that AI now
possesses multimodal capabilities, it has become feasible for AI to
process images.
This feature was made possible thanks to
[@&#8203;sanao1006](https://togithub.com/sanao1006) 's contribution of
migrating from org.json to gson.

```kotlin
    onView(ViewMatchers.isRoot())
      .captureRoboImage(
        roborazziOptions = RoborazziOptions(
          contextData = mapOf(
            "context_data_key" to "context_data_value"
          )
        )
      )
  }
```

<img width="1335" alt="image"
src="https://github.com/takahirom/roborazzi/assets/1386930/16341681-ab11-4f1c-b231-0c5a26e1a0e2">

##### Important bug fix

Gradle attempts to load the test cache whenever possible, but there was
an issue where Roborazzi couldn't restore images from the cache. This
release includes a fix for this problem. Thank you,
[@&#8203;francescocervone](https://togithub.com/francescocervone), for
reporting this issue.

##### What's Changed

- \[CI]Escape branch name by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[takahirom/roborazzi#253
- refactor: migrating from the `org.json` Library to `Gson` by
[@&#8203;sanao1006](https://togithub.com/sanao1006) in
[takahirom/roborazzi#248
- doc: Add build.gradle.kts examples by
[@&#8203;sanao1006](https://togithub.com/sanao1006) in
[takahirom/roborazzi#256
- Enable adding metadata to image by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[takahirom/roborazzi#259
- Add contextdata tabs to HTML report by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[takahirom/roborazzi#260
- Fix Roborazzi output cache by
[@&#8203;takahirom](https://togithub.com/takahirom) in
[takahirom/roborazzi#262

##### New Contributors

- [@&#8203;sanao1006](https://togithub.com/sanao1006) made their first
contribution in
[takahirom/roborazzi#248

**Full Changelog**:
takahirom/roborazzi@1.9.0...1.10.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOTguMCIsInVwZGF0ZWRJblZlciI6IjM3LjE5OC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Roborazzi compare doesn't report changes when test task is taken from build cache
1 participant