diff --git a/lefthook.yml b/lefthook.yml index c4301424b2f..ddcc48b4ee7 100644 --- a/lefthook.yml +++ b/lefthook.yml @@ -17,3 +17,7 @@ pre-commit: files: git diff --name-only --staged glob: "*.rb" run: bin/dirty-rubocop --uncommitted --force-exclusion {files} + primer-view-components-version-is-the-same-everyhwere: + files: git diff --name-only --staged + glob: "{Gemfile.lock,frontend/package.json}" + run: script/check_same_primer_view_components_version_everywhere diff --git a/script/check_same_primer_view_components_version_everywhere b/script/check_same_primer_view_components_version_everywhere new file mode 100755 index 00000000000..efa3253f42a --- /dev/null +++ b/script/check_same_primer_view_components_version_everywhere @@ -0,0 +1,31 @@ +#!/bin/bash + +set -e + +VERSION_REGEXP='\d+\.\d+\.\d+(-[0-9A-Za-z-]+)?' + +echo "Checking for same primer view components version in Gemfile.lock and frontend/package.json" + +versions=$(grep --color=never primer.view.components frontend/package.json Gemfile.lock \ + | grep --extended-regexp --only-matching "$VERSION_REGEXP" \ + | sort --unique --version-sort) + +if [ -z "$versions" ] +then + echo "Skipping check. Unable to detect Primer view components version." + exit +fi + +version_count=$(echo "$versions" | wc -l) +if [ $version_count -eq 1 ] +then + echo "Ok. Primer view components version is $versions everywhere" + exit +fi + +grep --color=never primer.view.components frontend/package.json Gemfile.lock \ + | grep --color=always --extended-regexp "$VERSION_REGEXP" + +echo "Error. Different Primer view components versions are used ($(echo $versions))" +echo "Please use only one version in both Gemfile.lock and frontend/package.json" +exit 1