Skip to content
This repository has been archived by the owner on Feb 23, 2024. It is now read-only.

Generate ZIP file using GitHub Actions #6661

Merged
merged 45 commits into from
Jul 22, 2022

Conversation

nielslange
Copy link
Member

@nielslange nielslange commented Jul 6, 2022

Fixes #6623

Notes

This PR aims to generate a ZIP file of the current PR so that this (development) version can be installed using the custom WP-CLI command woo-test-environment.

Testing

User Facing Testing

  1. Create a feature branch based on this PR.
  2. Apply some changes to the codebase, e.g. adding a test file/folder to the root folder.
  3. Create a PR for the new feature branch.
  4. Spin up a test site using https://jurassic.ninja/.
  5. Install the custom WP-CLI command woo-test-environment using the following command:
wp package install git@github.com:nielslange/woo-test-environment.git
  1. Spin up a WooCommerce test environment with this PR using the following command:
wp woo-test-environment setup --blocks={ZIP-FILE-URL}
  1. Look up the WooCommerce Blocks folder of the site.
  2. Verify that the WooCommerce Blocks folder contains the file/folder as added in step 2.
  • Do not include in the Testing Notes

⚠️ Note: The URL for {ZIP-FILE-URL}, as mentioned in step 6. can be found in the comment of the PR as created in step 3.

@nielslange nielslange added tools Used for work on build or release tools. skip-changelog PRs that you don't want to appear in the changelog. labels Jul 6, 2022
@rubikuserbot rubikuserbot requested review from a team and tarunvijwani and removed request for a team July 6, 2022 14:42
@github-actions
Copy link
Contributor

github-actions bot commented Jul 6, 2022

Size Change: 0 B

Total Size: 873 kB

ℹ️ View Unchanged
Filename Size
build/active-filters-frontend.js 7.34 kB
build/active-filters.js 8 kB
build/all-products-frontend.js 18.1 kB
build/all-products.js 33.5 kB
build/all-reviews.js 7.8 kB
build/attribute-filter-frontend.js 25.1 kB
build/attribute-filter.js 14.4 kB
build/blocks-checkout.js 17.4 kB
build/cart-blocks/cart-accepted-payment-methods-frontend.js 1.16 kB
build/cart-blocks/cart-express-payment-frontend.js 5.07 kB
build/cart-blocks/cart-items-frontend.js 299 B
build/cart-blocks/cart-line-items--mini-cart-contents-block/products-table-frontend.js 5.27 kB
build/cart-blocks/cart-line-items-frontend.js 430 B
build/cart-blocks/cart-order-summary-frontend.js 1.11 kB
build/cart-blocks/cart-totals-frontend.js 322 B
build/cart-blocks/empty-cart-frontend.js 346 B
build/cart-blocks/filled-cart-frontend.js 782 B
build/cart-blocks/order-summary-coupon-form-frontend.js 2.62 kB
build/cart-blocks/order-summary-discount-frontend.js 2.12 kB
build/cart-blocks/order-summary-fee-frontend.js 273 B
build/cart-blocks/order-summary-heading-frontend.js 455 B
build/cart-blocks/order-summary-shipping--checkout-blocks/order-summary-shipping-frontend.js 6.34 kB
build/cart-blocks/order-summary-shipping-frontend.js 428 B
build/cart-blocks/order-summary-subtotal-frontend.js 274 B
build/cart-blocks/order-summary-taxes-frontend.js 434 B
build/cart-blocks/proceed-to-checkout-frontend.js 1.16 kB
build/cart-frontend.js 45.6 kB
build/cart.js 44.2 kB
build/checkout-blocks/actions-frontend.js 1.41 kB
build/checkout-blocks/billing-address--checkout-blocks/shipping-address-frontend.js 4.12 kB
build/checkout-blocks/billing-address-frontend.js 890 B
build/checkout-blocks/contact-information-frontend.js 2.83 kB
build/checkout-blocks/express-payment-frontend.js 5.36 kB
build/checkout-blocks/fields-frontend.js 345 B
build/checkout-blocks/order-note-frontend.js 1.08 kB
build/checkout-blocks/order-summary-cart-items-frontend.js 3.67 kB
build/checkout-blocks/order-summary-coupon-form-frontend.js 2.78 kB
build/checkout-blocks/order-summary-discount-frontend.js 2.25 kB
build/checkout-blocks/order-summary-fee-frontend.js 276 B
build/checkout-blocks/order-summary-frontend.js 1.11 kB
build/checkout-blocks/order-summary-shipping-frontend.js 604 B
build/checkout-blocks/order-summary-subtotal-frontend.js 274 B
build/checkout-blocks/order-summary-taxes-frontend.js 433 B
build/checkout-blocks/payment-frontend.js 7.67 kB
build/checkout-blocks/shipping-address-frontend.js 991 B
build/checkout-blocks/shipping-methods-frontend.js 4.72 kB
build/checkout-blocks/terms-frontend.js 1.22 kB
build/checkout-blocks/totals-frontend.js 326 B
build/checkout-frontend.js 47.9 kB
build/checkout.js 45.4 kB
build/featured-category.js 13.2 kB
build/featured-product.js 13.5 kB
build/handpicked-products.js 7.37 kB
build/legacy-template.js 2.8 kB
build/mini-cart-component-frontend.js 16.6 kB
build/mini-cart-contents-block/empty-cart-frontend.js 364 B
build/mini-cart-contents-block/filled-cart-frontend.js 229 B
build/mini-cart-contents-block/footer--mini-cart-contents-block/products-table-frontend.js 4.68 kB
build/mini-cart-contents-block/footer-frontend.js 5.75 kB
build/mini-cart-contents-block/items-frontend.js 225 B
build/mini-cart-contents-block/products-table-frontend.js 289 B
build/mini-cart-contents-block/shopping-button-frontend.js 288 B
build/mini-cart-contents-block/title-frontend.js 367 B
build/mini-cart-contents.js 22.9 kB
build/mini-cart-frontend.js 1.72 kB
build/mini-cart.js 6.62 kB
build/price-filter-frontend.js 13.1 kB
build/price-filter.js 9.04 kB
build/price-format.js 1.19 kB
build/product-add-to-cart--product-button--product-category-list--product-image--product-price--product-r--a0326d00.js 223 B
build/product-add-to-cart--product-button--product-image--product-title.js 2.65 kB
build/product-add-to-cart--product-button.js 564 B
build/product-add-to-cart-frontend.js 6.96 kB
build/product-add-to-cart.js 6.63 kB
build/product-best-sellers.js 7.43 kB
build/product-button--product-category-list--product-image--product-price--product-rating--product-sale-b--e17c7c01.js 500 B
build/product-button-frontend.js 1.85 kB
build/product-button.js 1.09 kB
build/product-categories.js 2.78 kB
build/product-category-list-frontend.js 921 B
build/product-category-list.js 501 B
build/product-category.js 8.69 kB
build/product-image-frontend.js 1.84 kB
build/product-image.js 1.08 kB
build/product-new.js 7.71 kB
build/product-on-sale.js 8.03 kB
build/product-price-frontend.js 1.94 kB
build/product-price.js 1.5 kB
build/product-rating-frontend.js 1.15 kB
build/product-rating.js 729 B
build/product-sale-badge-frontend.js 1.09 kB
build/product-sale-badge.js 680 B
build/product-search.js 2.18 kB
build/product-sku-frontend.js 380 B
build/product-sku.js 381 B
build/product-stock-indicator-frontend.js 1.03 kB
build/product-stock-indicator.js 619 B
build/product-summary-frontend.js 1.33 kB
build/product-summary.js 916 B
build/product-tag-list-frontend.js 915 B
build/product-tag-list.js 496 B
build/product-tag.js 8.08 kB
build/product-title-frontend.js 1.29 kB
build/product-title.js 909 B
build/product-top-rated.js 7.95 kB
build/products-by-attribute.js 8.63 kB
build/reviews-by-category.js 11.2 kB
build/reviews-by-product.js 12.3 kB
build/reviews-frontend.js 7.02 kB
build/single-product-frontend.js 21.4 kB
build/single-product.js 10.1 kB
build/stock-filter-frontend.js 7.39 kB
build/stock-filter.js 7.31 kB
build/vendors--cart-blocks/cart-line-items--cart-blocks/cart-order-summary--cart-blocks/order-summary-shi--c02aad66-frontend.js 5.26 kB
build/vendors--cart-blocks/cart-line-items--checkout-blocks/order-summary-cart-items--mini-cart-contents---233ab542-frontend.js 3.14 kB
build/vendors--cart-blocks/order-summary-shipping--checkout-blocks/billing-address--checkout-blocks/order--5b8feb0b-frontend.js 4.74 kB
build/vendors--cart-blocks/order-summary-shipping--checkout-blocks/billing-address--checkout-blocks/order--decc3dc6-frontend.js 19.1 kB
build/vendors--mini-cart-contents-block/footer-frontend.js 6.86 kB
build/vendors--product-add-to-cart-frontend.js 7.53 kB
build/wc-blocks-data.js 9.87 kB
build/wc-blocks-editor-style-rtl.css 5.04 kB
build/wc-blocks-editor-style.css 5.04 kB
build/wc-blocks-google-analytics.js 1.56 kB
build/wc-blocks-middleware.js 930 B
build/wc-blocks-registry.js 2.7 kB
build/wc-blocks-shared-context.js 1.52 kB
build/wc-blocks-shared-hocs.js 1.14 kB
build/wc-blocks-style-rtl.css 22.1 kB
build/wc-blocks-style.css 22 kB
build/wc-blocks-vendors-style-rtl.css 1.26 kB
build/wc-blocks-vendors-style.css 1.26 kB
build/wc-blocks-vendors.js 58.8 kB
build/wc-blocks.js 2.63 kB
build/wc-payment-method-bacs.js 816 B
build/wc-payment-method-cheque.js 811 B
build/wc-payment-method-cod.js 909 B
build/wc-payment-method-paypal.js 837 B
build/wc-settings.js 2.6 kB

compressed-size-action

@nielslange nielslange marked this pull request as draft July 6, 2022 22:14
@nielslange nielslange removed the request for review from tarunvijwani July 6, 2022 22:14
@rubikuserbot rubikuserbot requested review from tarunvijwani and removed request for a team July 18, 2022 10:08
@nielslange
Copy link
Member Author

The release ZIP for this PR is accessible via:

https://wcblocks.wpcomstaging.com/wp-content/uploads/woocommerce-gutenberg-products-block-6661.zip

@tarunvijwani tarunvijwani mentioned this pull request Jul 18, 2022
Copy link

@tarunvijwani tarunvijwani left a comment

Choose a reason for hiding this comment

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

Thank you for working on this @nielslange. It works like a charm.

Co-authored-by: Tarun Vijwani <tarun.vijwani@automattic.com>
@rubikuserbot
Copy link

The release ZIP for this PR is accessible via:

https://wcblocks.wpcomstaging.com/wp-content/uploads/woocommerce-gutenberg-products-block-6661.zip

Copy link
Contributor

@sunyatasattva sunyatasattva left a comment

Choose a reason for hiding this comment

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

Looks great, thank you @nielslange ! I've just got some tiny comments, but nothing blocking, so I'm pre-approving.

.github/workflows/generate-zip.yml Outdated Show resolved Hide resolved
@github-actions github-actions bot added this to the 8.2.0 milestone Jul 19, 2022
@nielslange
Copy link
Member Author

Thanks for your reviews, @tarunvijwani and @sunyatasattva! 🙌

@rubikuserbot
Copy link

The release ZIP for this PR is accessible via:

https://wcblocks.wpcomstaging.com/wp-content/uploads/woocommerce-gutenberg-products-block-6661.zip

@rubikuserbot
Copy link

The release ZIP for this PR is accessible via:

https://wcblocks.wpcomstaging.com/wp-content/uploads/woocommerce-gutenberg-products-block-6661.zip

@nielslange nielslange merged commit 8ac86cb into trunk Jul 22, 2022
@nielslange nielslange deleted the add/6623-generate-a-zip-link-on-each-PR branch July 22, 2022 11:48
@dinhtungdu
Copy link
Member

@nielslange Do you think we should create only one comment for the release ZIP file link? As the comments are the same, I don't think we need to create more than one per PR. We're doing a similar thing to the compare action at #6736.

@nielslange
Copy link
Member Author

@nielslange Do you think we should create only one comment for the release ZIP file link? As the comments are the same, I don't think we need to create more than one per PR. We're doing a similar thing to the compare action at #6736.

Technically, we could create only one comment. But we would then have to search the corresponding comment. When adding a comment after every push, the link to the ZIP file can always be found as the last comment, which increases the usability.

Feel free to create an issue and a PR, if you believe that we benefit from having only one comment. I, personally, don't see an improvement in having only one comment and being forced to search it.

@jeffpaul
Copy link

@nielslange @dinhtungdu not sure if it would be possible, but what about adding that link at the bottom of the PR description in a new section, like:

The release ZIP for this PR is accessible via: https://wcblocks.wpcomstaging.com/wp-content/uploads/woocommerce-gutenberg-products-block-6661.zip

Or perhaps using a custom text field in the GitHub project board and adding the link into that field as it would be always available in the top right sidebar on GitHub?

@dinhtungdu
Copy link
Member

dinhtungdu commented Jul 26, 2022

In terms of usability, there is an issue I have with the current behavior of this action and assets compare action: they create additional notifications in the inbox.

Or perhaps using a custom text field in the GitHub project board and adding the link into that field as it would be always available in the top right sidebar on GitHub?

If we can do this, it's the best way IMO.

@nielslange
Copy link
Member Author

nielslange commented Jul 26, 2022

@nielslange @dinhtungdu not sure if it would be possible, but what about adding that link at the bottom of the PR description in a new section [...]

Or perhaps using a custom text field in the GitHub project board and adding the link into that field as it would be always available in the top right sidebar on GitHub?

@jeffpaul I like both ideas, but couldn't find any information on doing that. While it might not be the perfect solution, it's a working solution. Given the amount of other tasks on my plate, I would rather not invest too much time in this issue. But if you find any information on how to edit a PR description or how to add additional sidebar sections using GitHub Actions, I'm all ears.

In terms of usability, there is an issue I have with the current behavior of this action and assets compare action: they create additional notifications in the inbox.

@dinhtungdu Correct me if I'm wrong, but aren't notifications a different topic? Every GitHub Action run triggers a notification. Even if we would add the ZIP link to the PR description or in a sidebar panel, you might still receive a notification that the GitHub Action ran. That said, if it really bothers you, feel free to create a PR that improves the current behaviour. I just don't see how having a different behaviour would affect the notifications.

@dinhtungdu
Copy link
Member

@nielslange I should've explained my point more clearly.

To give you more context, I turned off the notification for Actions, I also turn off the email notification. The only source of notifications I'm using is the GitHub Notifications Inbox. When the action creates a comment on a PR, it also triggers a new notification in the inbox which is false-positive to me.

FWIW, I strongly agree that the benefit of "the link to the ZIP file can always be found as the last comment" outperforms other cons. So I don't think my original comment is worth implementing anymore.

@nielslange
Copy link
Member Author

Thanks for explaining the case you're facing, @dinhtungdu. A quick fix, I can think of, would be to change allow-repeats: true to allow-repeats: false in

- name: Add release ZIP URL as comment to the PR
uses: mshick/add-pr-comment@v1
env:
GITHUB_TOKEN: ${{ secrets.PAT_FOR_ACTIONS }}
with:
message: |
The release ZIP for this PR is accessible via:
```
https://wcblocks.wpcomstaging.com/wp-content/uploads/woocommerce-gutenberg-products-block-${{ github.event.pull_request.number }}.zip
```
allow-repeats: true

This definition causes the comment to be added when creating the PR and on every push. Setting the definition to allow-repeats: false will only trigger the first comment. Do you want to give this change a try to see if that approach works better for you?

@senadir
Copy link
Member

senadir commented Jul 26, 2022

Technically, we could create only one comment. But we would then have to search the corresponding comment. When adding a comment after every push, the link to the ZIP file can always be found as the last comment, which increases the usability.

I agree with @dinhtungdu, the benefit of having a single comment reused is much greater than the effort required to find it, given most PRs won't get past 5 comments at best. The downside of a new comment on each commit is just too much noise to the point that you won't checking notification anymore.

@nielslange
Copy link
Member Author

@jeffpaul and @dinhtungdu To closing the loop, we created two changes:

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
skip-changelog PRs that you don't want to appear in the changelog. tools Used for work on build or release tools.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Generate a zip link on each PR
7 participants