Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/develop' into fragment-tests-p…
Browse files Browse the repository at this point in the history
…art2
  • Loading branch information
subhajitxyz committed Sep 5, 2024
2 parents 11df11f + 4730edb commit ec415fe
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 0 deletions.
11 changes: 11 additions & 0 deletions .github/workflows/static_checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,8 @@ jobs:
CACHE_DIRECTORY: ~/.bazel_cache
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Set up Bazel
uses: abhinavsingh/setup-bazel@v3
Expand Down Expand Up @@ -205,6 +207,15 @@ jobs:
run: |
bazel run //scripts:string_resource_validation_check -- $(pwd)
- name: Binary files check
# The expression if: ${{ !cancelled() }} runs a job or step regardless of its success or failure while responding to cancellations,
# serving as a cancellation-compliant alternative to if: ${{ always() }} in concurrent workflows.
if: ${{ !cancelled() }}
run: |
bash /home/runner/work/oppia-android/oppia-android/scripts/pre-commit.sh
echo "No binary files found in commit"
echo "BINARY FILES CHECK PASSED"
# Note that caching is intentionally not enabled for this check since licenses should always be
# verified without any potential influence from earlier builds (i.e. always from a clean build to
# ensure the results exactly match the current state of the repository).
Expand Down
35 changes: 35 additions & 0 deletions scripts/pre-commit.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash

# Pre-commit hook to check for binary files.

# Find the common ancestor between develop and the current branch
base_commit=$(git merge-base 'origin/develop' HEAD)

# Get the list of staged changes (files ready to be committed)
staged_files=$(git diff --cached --name-only)

# Get the list of changed files compared to the base commit
changed_files=$(git diff --name-only "$base_commit" HEAD)

# Combine both lists of files, ensuring no duplicates
all_files=$(echo -e "$staged_files\n$changed_files" | sort -u)

function checkForBinaries() {
binaryFilesCount=0

# Iterate over all files (both staged and changed)
for file in $all_files; do
if [ -f "$file" ] && file --mime "$file" | grep -q 'binary'; then
((binaryFilesCount++))
printf "\n\033[33m%s\033[0m" "$file"
fi
done

if [[ "${binaryFilesCount}" -gt 0 ]]; then
printf "\n\nPlease remove the %d detected binary file(s)." "$binaryFilesCount"
printf "\nBINARY FILES CHECK FAILED"
exit 1
fi
}

checkForBinaries
3 changes: 3 additions & 0 deletions scripts/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
# Move file from script folder to .git/hooks folder
cp scripts/pre-push.sh .git/hooks/pre-push

# Copy the pre-commit hook from script to .git/hooks folder
cp scripts/pre-commit.sh .git/hooks/pre-commit

# Create a folder where all the set up files will be downloaded
mkdir -p ../oppia-android-tools
cd ../oppia-android-tools
Expand Down

0 comments on commit ec415fe

Please sign in to comment.