From f00bcb74690d4b7fea5d9fbf26393061e3635e60 Mon Sep 17 00:00:00 2001 From: Doug Date: Wed, 21 Sep 2022 18:26:59 +0100 Subject: [PATCH] Add validate-lfs.sh check from Android. --- .github/workflows/validate-lfs.yml | 15 +++++++++++++++ Tools/Scripts/validate_lfs.sh | 29 +++++++++++++++++++++++++++++ changelog.d/pr-203.build | 1 + 3 files changed, 45 insertions(+) create mode 100644 .github/workflows/validate-lfs.yml create mode 100755 Tools/Scripts/validate_lfs.sh create mode 100644 changelog.d/pr-203.build diff --git a/.github/workflows/validate-lfs.yml b/.github/workflows/validate-lfs.yml new file mode 100644 index 0000000000..12372cfa55 --- /dev/null +++ b/.github/workflows/validate-lfs.yml @@ -0,0 +1,15 @@ +name: Validate Git LFS + +on: [pull_request] + +jobs: + build: + runs-on: ubuntu-latest + name: Validate + steps: + - uses: actions/checkout@v3 + with: + lfs: 'true' + + - run: | + ./Tools/Scripts/validate_lfs.sh diff --git a/Tools/Scripts/validate_lfs.sh b/Tools/Scripts/validate_lfs.sh new file mode 100755 index 0000000000..ce121057b6 --- /dev/null +++ b/Tools/Scripts/validate_lfs.sh @@ -0,0 +1,29 @@ +#! /bin/bash + +# +# Copyright (c) 2022 New Vector Ltd +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Based on https://cashapp.github.io/paparazzi/#git-lfs + +# Compare the output of `git ls-files ':(attr:filter=lfs)'` against `git lfs ls-files` +# If there's no diff we assume the files have been committed using git lfs +diff <(git ls-files ':(attr:filter=lfs)' | sort) <(git lfs ls-files -n | sort) >/dev/null + +ret=$? +if [[ $ret -ne 0 ]]; then + echo >&2 "Detected files committed without using Git LFS." + echo >&2 "Install git lfs (eg brew install git-lfs) and run 'git lfs install --local' within the root repository directory and re-commit your files." + exit 1 +fi diff --git a/changelog.d/pr-203.build b/changelog.d/pr-203.build new file mode 100644 index 0000000000..69d08ad25d --- /dev/null +++ b/changelog.d/pr-203.build @@ -0,0 +1 @@ +Add validate-lfs.sh check from Element Android.