Skip to content

Commit

Permalink
Add a build check for PRs (AssemblyScript#51)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
dcodeIO authored Mar 21, 2018
1 parent 3a8f9f1 commit 56d8915
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 1 deletion.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
bin/asc text eol=lf
dist/asc.js -diff
dist/assemblyscript.js -diff
scripts/check-pr.sh eol=lf
10 changes: 10 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -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
Expand Down
29 changes: 29 additions & 0 deletions scripts/check-pr.sh
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
Expand Down

0 comments on commit 56d8915

Please sign in to comment.