12345678910111213141516171819202122232425262728293031323334353637 |
- #!/bin/sh
- # This tests rclone compiles for all the commits in the branch
- #
- # It assumes that the branch is rebased onto master and checks all the commits from branch root to master
- #
- # Adapted from: https://blog.ploeh.dk/2013/10/07/verifying-every-single-commit-in-a-git-branch/
- BRANCH=$(git rev-parse --abbrev-ref HEAD)
- if [ "$BRANCH" = "master" ]; then
- echo "Don't run on master branch"
- exit 1
- fi
- COMMITS=$(git log --oneline --reverse master.. | cut -d " " -f 1)
- CODE=0
- for COMMIT in $COMMITS
- do
- git checkout $COMMIT
-
- # run-tests
- echo "------------------------------------------------------------"
- go install ./...
-
- if [ $? -eq 0 ]
- then
- echo $COMMIT - passed
- else
- echo $COMMIT - failed
- git checkout ${BRANCH}
- exit
- fi
- echo "------------------------------------------------------------"
- done
-
- git checkout ${BRANCH}
- echo "All OK"
|