diff --git a/.github/workflows/png_only_on_lfs.yml b/.github/workflows/png_only_on_lfs.yml new file mode 100644 index 00000000000..a179f5459b7 --- /dev/null +++ b/.github/workflows/png_only_on_lfs.yml @@ -0,0 +1,23 @@ +name: All; .png on git LFS + +on: [push, pull_request] + +jobs: + check-binary-files: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Check that png files are on git LFS + run: | + binary_extensions="png" + + # Find binary files that are not tracked by Git LFS + for ext in $binary_extensions; do + if comm -23 <(git ls-files | sort) <(git lfs ls-files -n | sort) | grep "\.${ext}$"; then + echo "Error: Found binary file with extension .$ext not tracked by git LFS. See CONTRIBUTING.md" + exit 1 + fi + done diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f7215529544..6777c9a156b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,9 +35,11 @@ You can test your code locally by running `./scripts/check.sh`. There are snapshots test that might need to be updated. Run the tests with `UPDATE_SNAPSHOTS=true` to update them. For more info about the tests see [egui_kittest](./crates/egui_kittest/README.md). -We use [git-lfs](https://git-lfs.com/) to store big files in the repository. +We use [git-lfs](https://git-lfs.com/) to store big files in the repository. Make sure you have it installed (running `git lfs ls-files` from the repository root should list some files). Don't forget to run `git lfs install` after installing the git-lfs binary. +You need to add any .png images to `git lfs`. +If the CI complains about this, make sure you run `git add --renormalize .`. If you see an `InvalidSignature` error when running snapshot tests, it's probably a problem related to git-lfs.