#!/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"