From 1fab0828a7ab816e4e3bee5ab880f24878a33e70 Mon Sep 17 00:00:00 2001 From: Tarik Gul <47201679+TarikGul@users.noreply.github.com> Date: Wed, 31 Jul 2024 10:16:24 -0700 Subject: [PATCH] Add CI script to check for diffs in src vs build for store release (#1429) * Add CI script for diffs * Cleanup * Update github actions * simplify * echo * cleanup * fix * "$RUNNER_OS" == "Linux" * hack --- .github/workflows/pr-any.yml | 2 +- .gitignore | 3 ++ package.json | 1 + scripts/diff.sh | 53 ++++++++++++++++++++++++++++++++++++ 4 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 scripts/diff.sh diff --git a/.github/workflows/pr-any.yml b/.github/workflows/pr-any.yml index d8daeb16..361844cc 100644 --- a/.github/workflows/pr-any.yml +++ b/.github/workflows/pr-any.yml @@ -6,7 +6,7 @@ jobs: continue-on-error: true strategy: matrix: - step: ['lint', 'test', 'build'] + step: ['lint', 'test', 'build', diff] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 diff --git a/.gitignore b/.gitignore index 756e95a2..f12bbd98 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,6 @@ docs/html .idea .vscode packages/extension/manifest.json + +# Diff script generates ff-diff +ff-diff \ No newline at end of file diff --git a/package.json b/package.json index 4fc0c14a..5cb214eb 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,7 @@ "build:zip:src:chrome": "rm -rf ./master-chrome-src.zip && zip -r -x '*build/*' -x '*node_modules*' -FS ./master-chrome-src.zip packages .editorconfig eslint.config.js rollup.config.js CHANGELOG.md CONTRIBUTING.md i18next-scanner.config.cjs LICENSE package.json README.md tsconfig.json yarn.lock .yarnrc.yml tsconfig.base.json tsconfig.build.json tsconfig.eslint.json tsconfig.webpack.json", "build:zip:src:ff": "rm -rf ./master-ff-src.zip && zip -r -x '*build/*' -x '*node_modules*' -FS ./master-ff-src.zip packages .editorconfig eslint.config.js rollup.config.js CHANGELOG.md CONTRIBUTING.md i18next-scanner.config.cjs LICENSE package.json README.md tsconfig.json yarn.lock .yarnrc.yml tsconfig.base.json tsconfig.build.json tsconfig.eslint.json tsconfig.webpack.json", "clean": "polkadot-dev-clean-build", + "diff": "rm -rf ff-diff && sh ./scripts/diff.sh", "lint": "polkadot-dev-run-lint", "postinstall": "polkadot-dev-yarn-only", "test": "EXTENSION_PREFIX='test' polkadot-dev-run-test --loader ./packages/extension-mocks/src/loader-empty.js --env browser ^:.spec.tsx", diff --git a/scripts/diff.sh b/scripts/diff.sh new file mode 100644 index 00000000..729ba011 --- /dev/null +++ b/scripts/diff.sh @@ -0,0 +1,53 @@ +# Copyright 2019-2024 @polkadot/extension-compat-metamask authors & contributors +# SPDX-License-Identifier: Apache-2.0 + +#!/bin/bash + +# build firefox target +yarn build:ff + +# Reorg the builds to +mkdir ff-diff + +OS=$(uname) +FILE_PATH="./ff-diff" + +compare_directories() { + local dir1=$1 + local dir2=$2 + + if diff -qr "$dir1" "$dir2" | sort; then + echo "Builds are identical" + exit 0 + else + echo "Builds are not identical" + exit 1 + fi +} + +unzip_ff() { + + unzip -o master-ff-src.zip -d master-ff-src + unzip -o master-ff-build.zip -d master-ff-build + + cd ./master-ff-src && yarn install && yarn build:ff && cd .. +} + +if [ "$OS" == "Darwin" || "$RUNNER_OS" == "Linux" ]; then + echo "Running on macOS" + # macOS-specific commands go here + + mv ./master-ff-src.zip ./master-ff-build.zip $FILE_PATH && cd $FILE_PATH + + unzip_ff + + compare_directories ./master-ff-build ./master-ff-src/packages/extension/build +else # Assuming it will be Linux + echo "Running on Linux" + # Linux-specific commands go here + + mv -t $FILE_PATH ./master-ff-src.zip ./master-ff-build.zip && cd $FILE_PATH + unzip_ff + + compare_directories ./master-ff-build ./master-ff-src/packages/extension/build +fi