52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/bin/bash
 | |
| #
 | |
| # A script which checks that an appropriate news file has been added on this
 | |
| # branch.
 | |
| 
 | |
| set -e
 | |
| 
 | |
| # make sure that origin/develop is up to date
 | |
| git remote set-branches --add origin develop
 | |
| git fetch -q origin develop
 | |
| 
 | |
| pr="$BUILDKITE_PULL_REQUEST"
 | |
| 
 | |
| # if there are changes in the debian directory, check that the debian changelog
 | |
| # has been updated
 | |
| if ! git diff --quiet FETCH_HEAD... -- debian; then
 | |
|     if git diff --quiet FETCH_HEAD... -- debian/changelog; then
 | |
|         echo "Updates to debian directory, but no update to the changelog." >&2
 | |
|         exit 1
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| # if there are changes *outside* the debian directory, check that the
 | |
| # newsfragments have been updated.
 | |
| if ! git diff --name-only FETCH_HEAD... | grep -qv '^debian/'; then
 | |
|     exit 0
 | |
| fi
 | |
| 
 | |
| tox -qe check-newsfragment
 | |
| 
 | |
| echo
 | |
| echo "--------------------------"
 | |
| echo
 | |
| 
 | |
| matched=0
 | |
| for f in `git diff --name-only FETCH_HEAD... -- changelog.d`; do
 | |
|     # check that any modified newsfiles on this branch end with a full stop.
 | |
|     lastchar=`tr -d '\n' < $f | tail -c 1`
 | |
|     if [ $lastchar != '.' -a $lastchar != '!' ]; then
 | |
|         echo -e "\e[31mERROR: newsfragment $f does not end with a '.' or '!'\e[39m" >&2
 | |
|         exit 1
 | |
|     fi
 | |
| 
 | |
|     # see if this newsfile corresponds to the right PR
 | |
|     [[ -n "$pr" && "$f" == changelog.d/"$pr".* ]] && matched=1
 | |
| done
 | |
| 
 | |
| if [[ -n "$pr" && "$matched" -eq 0 ]]; then
 | |
|     echo -e "\e[31mERROR: Did not find a news fragment with the right number: expected changelog.d/$pr.*.\e[39m" >&2
 | |
|     exit 1
 | |
| fi
 |