Add a build check for PRs (#51)

This now checks that distribution files are unmodified and fails otherwise. Also checks if the author is present in the NOTICE file and prints the result, but as email addresses may vary, does not hard-fail.
This commit is contained in:
Daniel Wirtz 2018-03-21 13:26:11 +01:00 committed by GitHub
parent 3a8f9f1576
commit 56d891583e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 41 additions and 1 deletions

1
.gitattributes vendored
View File

@ -1,3 +1,4 @@
bin/asc text eol=lf
dist/asc.js -diff
dist/assemblyscript.js -diff
scripts/check-pr.sh eol=lf

View File

@ -1,7 +1,17 @@
language: node_js
notifications:
email: false
stages:
- name: check-pr
if: type = pull_request
jobs:
include:
- stage: check-pr
node_js: lts/*
script: ./scripts/check-pr.sh
env: Checks contributing guidelines before testing pull requests
- stage: lint
node_js: node
script: npm run lint

29
scripts/check-pr.sh Executable file
View File

@ -0,0 +1,29 @@
# Distribution files should not be modified
STATUS=0
if git --no-pager diff --name-only FETCH_HEAD $(git merge-base FETCH_HEAD $TRAVIS_BRANCH) | grep -q "^dist/"; then
STATUS=1 &&
printf "\n" &&
printf "The pull request includes changes to distribution files, but it shouldn't.\n" &&
printf "Please see https://github.com/AssemblyScript/assemblyscript/blob/master/CONTRIBUTING.md\n";
else
printf "\n" &&
printf "GOOD: The pull request does not include changes to distribution files.\n";
fi
# Authors should have added themself to the NOTICE file
AUTHOR=$(git log -1 --format="%aE")
if [ -z "$AUTHOR" ]; then
printf "\n" &&
printf "Skipping NOTICE check: Commit does not include an email address.\n";
else
if grep -q "$AUTHOR" NOTICE; then
printf "\n" &&
printf "GOOD: Author is present in the NOTICE file.\n";
else
printf "\n" &&
printf "Author does not appear to be listed in the NOTICE file, yet.\n" &&
printf "Please see https://github.com/AssemblyScript/assemblyscript/blob/master/CONTRIBUTING.md\n";
fi
fi
exit $STATUS

View File

@ -541,7 +541,7 @@ export class Signature {
// check return type
var thisReturnType = this.returnType;
var targetReturnType = target.returnType;
return thisReturnType == targetReturnType || this.returnType.isAssignableTo(target.returnType);
return thisReturnType == targetReturnType || thisReturnType.isAssignableTo(targetReturnType);
}
/** Converts this signature to a function type string. */