From aa4bedc2bf69c559176aa976dd7359c9517d285b Mon Sep 17 00:00:00 2001 From: Dongdong Tian Date: Mon, 29 May 2023 14:33:35 +0800 Subject: [PATCH 1/3] Add/remove/update baseline images for testing the dvc diff workflow --- pygmt/tests/baseline/test_basemap.png.dvc | 4 ++-- pygmt/tests/baseline/test_basemap_added.png.dvc | 4 ++++ pygmt/tests/baseline/test_basemap_loglog.png.dvc | 4 ---- pygmt/tests/test_basemap.py | 12 ++++-------- 4 files changed, 10 insertions(+), 14 deletions(-) create mode 100644 pygmt/tests/baseline/test_basemap_added.png.dvc delete mode 100644 pygmt/tests/baseline/test_basemap_loglog.png.dvc diff --git a/pygmt/tests/baseline/test_basemap.png.dvc b/pygmt/tests/baseline/test_basemap.png.dvc index b59133e7071..374f75d195b 100644 --- a/pygmt/tests/baseline/test_basemap.png.dvc +++ b/pygmt/tests/baseline/test_basemap.png.dvc @@ -1,4 +1,4 @@ outs: -- md5: 3cf01816fa5dd3fbc1adc602557bb032 - size: 6187 +- md5: 35388aa0ddd861e337b8f47ba4f587dc + size: 7472 path: test_basemap.png diff --git a/pygmt/tests/baseline/test_basemap_added.png.dvc b/pygmt/tests/baseline/test_basemap_added.png.dvc new file mode 100644 index 00000000000..56923d94a0c --- /dev/null +++ b/pygmt/tests/baseline/test_basemap_added.png.dvc @@ -0,0 +1,4 @@ +outs: +- md5: a5aaf4c3cbea32a3373721237e767789 + size: 9420 + path: test_basemap_added.png diff --git a/pygmt/tests/baseline/test_basemap_loglog.png.dvc b/pygmt/tests/baseline/test_basemap_loglog.png.dvc deleted file mode 100644 index 115ee699591..00000000000 --- a/pygmt/tests/baseline/test_basemap_loglog.png.dvc +++ /dev/null @@ -1,4 +0,0 @@ -outs: -- md5: 37c36d4fa4524260ea43c6757a3140a1 - size: 24475 - path: test_basemap_loglog.png diff --git a/pygmt/tests/test_basemap.py b/pygmt/tests/test_basemap.py index db646a04d6f..4ebd8a97676 100644 --- a/pygmt/tests/test_basemap.py +++ b/pygmt/tests/test_basemap.py @@ -11,21 +11,17 @@ def test_basemap(): Create a simple basemap plot. """ fig = Figure() - fig.basemap(region=[10, 70, -3, 8], projection="X8c/6c", frame="afg") + fig.basemap(region=[10, 70, -3, 8], projection="X10c/6c", frame="afg") return fig @pytest.mark.mpl_image_compare -def test_basemap_loglog(): +def test_basemap_added(): """ - Create a loglog basemap plot. + Create a simple basemap plot. """ fig = Figure() - fig.basemap( - region=[1, 10000, 1e20, 1e25], - projection="X16cl/12cl", - frame=["WS", "x2+lWavelength", "ya1pf3+lPower"], - ) + fig.basemap(region=[10, 70, -20, 20], projection="X10c/6c", frame="afg") return fig From a9727dd2c74e673d16802e7c5184fff495699fbb Mon Sep 17 00:00:00 2001 From: Dongdong Tian Date: Thu, 1 Jun 2023 12:10:35 +0800 Subject: [PATCH 2/3] Simpilify the dvc diff workflow by removing the deprecated cml-publish command --- .github/workflows/dvc-diff.yml | 36 ++++++++++++++-------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/.github/workflows/dvc-diff.yml b/.github/workflows/dvc-diff.yml index cf29105a1f7..6425339eae5 100644 --- a/.github/workflows/dvc-diff.yml +++ b/.github/workflows/dvc-diff.yml @@ -32,9 +32,6 @@ jobs: - name: Setup continuous machine learning (CML) uses: iterative/setup-cml@v1.2.3 - - name: Pull image data from cloud storage - run: dvc pull --remote upstream - # workaround from https://github.com/iterative/cml/issues/1377 - name: Setup NodeJS uses: actions/setup-node@v1 @@ -65,12 +62,22 @@ jobs: run: | echo -e "## Summary of changed images\n" > report.md echo -e "This is an auto-generated report of images that have changed on the DVC remote\n" >> report.md + + # Pull image data from cloud storage + dvc pull --remote upstream dvc diff --show-md main HEAD >> report.md # Get just the filename of the added and modified image from the report awk 'NF==5 && NR>=7 && $2=="added" {print $4}' report.md > added_files.txt awk 'NF==5 && NR>=7 && $2=="modified" {print $4}' report.md > modified_files.txt + # Backup new images in the baseline-new directory + mkdir pygmt/tests/baseline-new + cp pygmt/tests/baseline/*.png pygmt/tests/baseline-new/ + # Pull images in the main branch from cloud storage + git checkout main + dvc pull --remote upstream + # Append each image to the markdown report echo -e "## Image diff(s)\n" >> report.md echo -e "
\n" >> report.md @@ -78,30 +85,17 @@ jobs: # Added images echo -e "### Added images\n" >> report.md while IFS= read -r line; do - echo -e "- $line \n" >> report.md - cml-publish --title $line --md "$line" >> report.md < /dev/null + echo -e "- $(basename $line) \n" >> report.md + echo -e "![](${line/baseline/baseline-new})" >> report.md done < added_files.txt # Modified images echo -e "### Modified images\n" >> report.md - # Upload new images - while IFS= read -r line; do - cml-publish --title $line --md "$line" >> modified_images_new.md < /dev/null - done < modified_files.txt - - # Pull images in the main branch from cloud storage - git checkout main - dvc pull --remote upstream - # Upload old images - while IFS= read -r line; do - cml-publish --title $line --md "$line" >> modified_images_old.md < /dev/null - done < modified_files.txt - - # Append image report for modified images echo -e "| Path | Old | New |" >> report.md echo -e "|---|---|---|" >> report.md - paste modified_files.txt modified_images_old.md modified_images_new.md -d"|" | - awk -F"|" 'function basename(file) {sub(".*/", "", file); return file} {printf("| %s | %s | %s |\n", basename($1), $2, $3)}' >> report.md + while IFS= read -r line; do + echo -e "| $(basename $line) | ![]($line) | ![](${line/baseline/baseline-new}) |" >> report.md + done < modified_files.txt echo -e "
\n" >> report.md From 49a3558d56d693726c8e6cb1aef4221a46d29e8c Mon Sep 17 00:00:00 2001 From: Dongdong Tian Date: Thu, 1 Jun 2023 14:49:56 +0800 Subject: [PATCH 3/3] Revert "Add/remove/update baseline images for testing the dvc diff workflow" This reverts commit aa4bedc2bf69c559176aa976dd7359c9517d285b. --- pygmt/tests/baseline/test_basemap.png.dvc | 4 ++-- pygmt/tests/baseline/test_basemap_added.png.dvc | 4 ---- pygmt/tests/baseline/test_basemap_loglog.png.dvc | 4 ++++ pygmt/tests/test_basemap.py | 12 ++++++++---- 4 files changed, 14 insertions(+), 10 deletions(-) delete mode 100644 pygmt/tests/baseline/test_basemap_added.png.dvc create mode 100644 pygmt/tests/baseline/test_basemap_loglog.png.dvc diff --git a/pygmt/tests/baseline/test_basemap.png.dvc b/pygmt/tests/baseline/test_basemap.png.dvc index 374f75d195b..b59133e7071 100644 --- a/pygmt/tests/baseline/test_basemap.png.dvc +++ b/pygmt/tests/baseline/test_basemap.png.dvc @@ -1,4 +1,4 @@ outs: -- md5: 35388aa0ddd861e337b8f47ba4f587dc - size: 7472 +- md5: 3cf01816fa5dd3fbc1adc602557bb032 + size: 6187 path: test_basemap.png diff --git a/pygmt/tests/baseline/test_basemap_added.png.dvc b/pygmt/tests/baseline/test_basemap_added.png.dvc deleted file mode 100644 index 56923d94a0c..00000000000 --- a/pygmt/tests/baseline/test_basemap_added.png.dvc +++ /dev/null @@ -1,4 +0,0 @@ -outs: -- md5: a5aaf4c3cbea32a3373721237e767789 - size: 9420 - path: test_basemap_added.png diff --git a/pygmt/tests/baseline/test_basemap_loglog.png.dvc b/pygmt/tests/baseline/test_basemap_loglog.png.dvc new file mode 100644 index 00000000000..115ee699591 --- /dev/null +++ b/pygmt/tests/baseline/test_basemap_loglog.png.dvc @@ -0,0 +1,4 @@ +outs: +- md5: 37c36d4fa4524260ea43c6757a3140a1 + size: 24475 + path: test_basemap_loglog.png diff --git a/pygmt/tests/test_basemap.py b/pygmt/tests/test_basemap.py index 4ebd8a97676..db646a04d6f 100644 --- a/pygmt/tests/test_basemap.py +++ b/pygmt/tests/test_basemap.py @@ -11,17 +11,21 @@ def test_basemap(): Create a simple basemap plot. """ fig = Figure() - fig.basemap(region=[10, 70, -3, 8], projection="X10c/6c", frame="afg") + fig.basemap(region=[10, 70, -3, 8], projection="X8c/6c", frame="afg") return fig @pytest.mark.mpl_image_compare -def test_basemap_added(): +def test_basemap_loglog(): """ - Create a simple basemap plot. + Create a loglog basemap plot. """ fig = Figure() - fig.basemap(region=[10, 70, -20, 20], projection="X10c/6c", frame="afg") + fig.basemap( + region=[1, 10000, 1e20, 1e25], + projection="X16cl/12cl", + frame=["WS", "x2+lWavelength", "ya1pf3+lPower"], + ) return fig