From d0c7de8d890af2ba5e7e12f5af1a9ef792c75756 Mon Sep 17 00:00:00 2001 From: tarikgul Date: Wed, 31 Jul 2024 11:12:03 -0400 Subject: [PATCH 1/9] Add CI script for diffs --- .gitignore | 3 +++ package.json | 1 + scripts/diff-ci.sh | 62 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 scripts/diff-ci.sh diff --git a/.gitignore b/.gitignore index 756e95a26c..f12bbd98ac 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 60dcd175cd..4d0b47534a 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:ci": "rm -rf ff-diff && sh ./scripts/diff-ci.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-ci.sh b/scripts/diff-ci.sh new file mode 100644 index 0000000000..377cf8b092 --- /dev/null +++ b/scripts/diff-ci.sh @@ -0,0 +1,62 @@ +# Copyright 2019-2024 @polkadot/extension-compat-metamask authors & contributors +# SPDX-License-Identifier: Apache-2.0 + +#!/bin/bash + +# NOTE THIS WILL ONLY WORK ON LINUX DISTROS - AND IS MEANT FOR THE CI + +# build firefox target +yarn build:ff + +# Reorg the builds to +mkdir ff-diff + +OS=$(uname) +FILE_PATH="./ff-diff" + +# TODO check if corepack needs to be enabled. +# Might need unzip + +compare_directories() { + local dir1=$1 + local dir2=$2 + + if diff -qr "$dir1" "$dir2" | sort; then + echo "Builds are identical" + return 0 + else + echo "Builds are not identical" + return 1 + fi +} + +move_unzip() { + mv ./master-ff-src.zip ./master-ff-build.zip $FILE_PATH && cd $FILE_PATH + 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" ]; then + echo "Running on macOS" + # macOS-specific commands go here + + move_unzip + + compare_directories ./master-ff-build ./master-ff-src/packages/extension/build +elif [ "$OS" == "Linux" ]; then + 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 -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 .. + + compare_directories ./master-ff-build ./master-ff-src/packages/extension/build +else + echo "Unsupported OS: $OS" + exit 1 +fi \ No newline at end of file From 5a03e5934145b14f66936195b1f747328b52db83 Mon Sep 17 00:00:00 2001 From: tarikgul Date: Wed, 31 Jul 2024 11:19:55 -0400 Subject: [PATCH 2/9] Cleanup --- scripts/diff-ci.sh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/scripts/diff-ci.sh b/scripts/diff-ci.sh index 377cf8b092..3448a97fa4 100644 --- a/scripts/diff-ci.sh +++ b/scripts/diff-ci.sh @@ -3,8 +3,6 @@ #!/bin/bash -# NOTE THIS WILL ONLY WORK ON LINUX DISTROS - AND IS MEANT FOR THE CI - # build firefox target yarn build:ff @@ -49,11 +47,7 @@ elif [ "$OS" == "Linux" ]; then 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 -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 .. + move_unzip compare_directories ./master-ff-build ./master-ff-src/packages/extension/build else From 23250a6a07ed86b08f9cf74545e6b5abb250fe23 Mon Sep 17 00:00:00 2001 From: tarikgul Date: Wed, 31 Jul 2024 11:21:31 -0400 Subject: [PATCH 3/9] Update github actions --- .github/workflows/pr-any.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-any.yml b/.github/workflows/pr-any.yml index d8daeb164f..ad797e3089 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:ci] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From 25f1564e47435ff5c604c1cbff782ec6c9b9c687 Mon Sep 17 00:00:00 2001 From: tarikgul Date: Wed, 31 Jul 2024 11:22:58 -0400 Subject: [PATCH 4/9] simplify --- .github/workflows/pr-any.yml | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-any.yml b/.github/workflows/pr-any.yml index ad797e3089..361844cc75 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', diff:ci] + step: ['lint', 'test', 'build', diff] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 diff --git a/package.json b/package.json index 4d0b47534a..348eff4564 100644 --- a/package.json +++ b/package.json @@ -38,7 +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:ci": "rm -rf ff-diff && sh ./scripts/diff-ci.sh", + "diff": "rm -rf ff-diff && sh ./scripts/diff-ci.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", From db16fa94a25322adf01fcb1834c47e518658c08a Mon Sep 17 00:00:00 2001 From: tarikgul Date: Wed, 31 Jul 2024 11:28:18 -0400 Subject: [PATCH 5/9] echo --- package.json | 2 +- scripts/{diff-ci.sh => diff.sh} | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) rename scripts/{diff-ci.sh => diff.sh} (99%) diff --git a/package.json b/package.json index 348eff4564..31f5b32a42 100644 --- a/package.json +++ b/package.json @@ -38,7 +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-ci.sh", + "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-ci.sh b/scripts/diff.sh similarity index 99% rename from scripts/diff-ci.sh rename to scripts/diff.sh index 3448a97fa4..5d95bc311e 100644 --- a/scripts/diff-ci.sh +++ b/scripts/diff.sh @@ -12,6 +12,8 @@ mkdir ff-diff OS=$(uname) FILE_PATH="./ff-diff" +echo $OS + # TODO check if corepack needs to be enabled. # Might need unzip From 6bfc9a54fd65c16178d1b7de505d908155783132 Mon Sep 17 00:00:00 2001 From: tarikgul Date: Wed, 31 Jul 2024 11:30:51 -0400 Subject: [PATCH 6/9] cleanup --- scripts/diff.sh | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/scripts/diff.sh b/scripts/diff.sh index 5d95bc311e..a8c5edd202 100644 --- a/scripts/diff.sh +++ b/scripts/diff.sh @@ -12,21 +12,16 @@ mkdir ff-diff OS=$(uname) FILE_PATH="./ff-diff" -echo $OS - -# TODO check if corepack needs to be enabled. -# Might need unzip - compare_directories() { local dir1=$1 local dir2=$2 if diff -qr "$dir1" "$dir2" | sort; then echo "Builds are identical" - return 0 + exit 0 else echo "Builds are not identical" - return 1 + exit 1 fi } From c66fc728962a32d029063a2e4e0a767d9d02718e Mon Sep 17 00:00:00 2001 From: tarikgul Date: Wed, 31 Jul 2024 11:33:16 -0400 Subject: [PATCH 7/9] fix --- scripts/diff.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/scripts/diff.sh b/scripts/diff.sh index a8c5edd202..a66bb0c72a 100644 --- a/scripts/diff.sh +++ b/scripts/diff.sh @@ -25,8 +25,8 @@ compare_directories() { fi } -move_unzip() { - mv ./master-ff-src.zip ./master-ff-build.zip $FILE_PATH && cd $FILE_PATH +unzip_ff() { + unzip -o master-ff-src.zip -d master-ff-src unzip -o master-ff-build.zip -d master-ff-build @@ -37,14 +37,17 @@ if [ "$OS" == "Darwin" ]; then echo "Running on macOS" # macOS-specific commands go here - move_unzip + 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 elif [ "$OS" == "Linux" ]; then echo "Running on Linux" # Linux-specific commands go here - move_unzip + 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 else From 7153a2bec360d36999abc41671a1ecfd173a046d Mon Sep 17 00:00:00 2001 From: tarikgul Date: Wed, 31 Jul 2024 11:37:00 -0400 Subject: [PATCH 8/9] "$RUNNER_OS" == "Linux" --- scripts/diff.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/diff.sh b/scripts/diff.sh index a66bb0c72a..fc3e194b37 100644 --- a/scripts/diff.sh +++ b/scripts/diff.sh @@ -33,7 +33,7 @@ unzip_ff() { cd ./master-ff-src && yarn install && yarn build:ff && cd .. } -if [ "$OS" == "Darwin" ]; then +if [ "$OS" == "Darwin" || "$RUNNER_OS" == "Linux" ]; then echo "Running on macOS" # macOS-specific commands go here @@ -42,7 +42,7 @@ if [ "$OS" == "Darwin" ]; then unzip_ff compare_directories ./master-ff-build ./master-ff-src/packages/extension/build -elif [ "$OS" == "Linux" ]; then +elif [ "$OS" == "Linux" || "$RUNNER_OS" == "Linux" ]; then echo "Running on Linux" # Linux-specific commands go here From 459973531b9ba8d83299fec78d36d3704d856c54 Mon Sep 17 00:00:00 2001 From: tarikgul Date: Wed, 31 Jul 2024 13:08:58 -0400 Subject: [PATCH 9/9] hack --- scripts/diff.sh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/scripts/diff.sh b/scripts/diff.sh index fc3e194b37..729ba011d8 100644 --- a/scripts/diff.sh +++ b/scripts/diff.sh @@ -42,7 +42,7 @@ if [ "$OS" == "Darwin" || "$RUNNER_OS" == "Linux" ]; then unzip_ff compare_directories ./master-ff-build ./master-ff-src/packages/extension/build -elif [ "$OS" == "Linux" || "$RUNNER_OS" == "Linux" ]; then +else # Assuming it will be Linux echo "Running on Linux" # Linux-specific commands go here @@ -50,7 +50,4 @@ elif [ "$OS" == "Linux" || "$RUNNER_OS" == "Linux" ]; then unzip_ff compare_directories ./master-ff-build ./master-ff-src/packages/extension/build -else - echo "Unsupported OS: $OS" - exit 1 -fi \ No newline at end of file +fi