From 80d0314ca2ddabc3393697c21ccadc9879f28b17 Mon Sep 17 00:00:00 2001 From: Aaron Dodson Date: Mon, 12 Jul 2021 13:37:25 -0700 Subject: [PATCH] Added script and workflow to automatically update build artifact sizes in check_metadata.sh --- .github/workflows/update_metadata.yml | 39 +++++++++++++++++++++++++++ tests/scripts/update_metadata.sh | 31 +++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 .github/workflows/update_metadata.yml create mode 100755 tests/scripts/update_metadata.sh diff --git a/.github/workflows/update_metadata.yml b/.github/workflows/update_metadata.yml new file mode 100644 index 000000000..5b5e401fa --- /dev/null +++ b/.github/workflows/update_metadata.yml @@ -0,0 +1,39 @@ +# This workflow updates the check_metadata.sh script, which compares the current +# size of build artifacts against their size in the previous version of Blockly. + +name: Update Metadata + +on: [workflow_dispatch] + +jobs: + build: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ubuntu-latest] + node-version: [16.x] + + steps: + - name: Check Out Blockly + uses: actions/checkout@v2 + with: + ref: 'develop' + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Update Metadata + run: source ./tests/scripts/update_metadata.sh + + - name: Create Pull Request + uses: peter-evans/create-pull-request@9825ae65b1cb54b543b938503728b432a0176d29 + with: + commit-message: Updated build artifact sizes in check_metadata.sh + delete-branch: true + title: Updated build artifact sizes in check_metadata.sh + + - name: View Pull Request + run: echo "View Pull Request - ${{ steps.cpr.outputs.pull-request-url }}" \ No newline at end of file diff --git a/tests/scripts/update_metadata.sh b/tests/scripts/update_metadata.sh new file mode 100755 index 000000000..cfd2f43d0 --- /dev/null +++ b/tests/scripts/update_metadata.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Determines the size of generated files and updates check_metadata.sh to +# reflect the new values. + +blockly_size=$(wc -c < "blockly_compressed.js") +blocks_size=$(wc -c < "blocks_compressed.js") +blockly_gz_size=$(wc -c < "blockly_compressed.js.gz") +blocks_gz_size=$(wc -c < "blocks_compressed.js.gz") +quarter=$(date "+Q%q %Y") +version=$(npx -c 'echo "$npm_package_version"') + +replacement="# ${quarter}\t${version}\t${blockly_size}\n" +replacement+="readonly BLOCKLY_SIZE_EXPECTED=${blockly_size}" +sed -ri "s/readonly BLOCKLY_SIZE_EXPECTED=[0-9]+/${replacement}/g" \ + tests/scripts/check_metadata.sh + +replacement="# ${quarter}\t${version}\t${blocks_size}\n" +replacement+="readonly BLOCKS_SIZE_EXPECTED=${blocks_size}" +sed -ri "s/readonly BLOCKS_SIZE_EXPECTED=[0-9]+/${replacement}/g" \ + tests/scripts/check_metadata.sh + +replacement="# ${quarter}\t${version}\t${blockly_gz_size}\n" +replacement+="readonly BLOCKLY_GZ_SIZE_EXPECTED=${blockly_gz_size}" +sed -ri "s/readonly BLOCKLY_GZ_SIZE_EXPECTED=[0-9]+/${replacement}/g" \ + tests/scripts/check_metadata.sh + +replacement="# ${quarter}\t${version}\t${blocks_gz_size}\n" +replacement+="readonly BLOCKS_GZ_SIZE_EXPECTED=${blocks_gz_size}" +sed -ri "s/readonly BLOCKS_GZ_SIZE_EXPECTED=[0-9]+/${replacement}/g" \ + tests/scripts/check_metadata.sh \ No newline at end of file