diff --git a/.travis.yml b/.travis.yml index 781ab558e44b0439f25d3f707598349aa6c770b0..579e59474755ba05331de586cf9f13de125c6267 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,24 @@ -language: node_js -sudo: false -node_js: - - 6 -before_script: - - npm install -g free-programming-books-lint -script: fpb-lint . +language: shell +dist: xenial +os: linux + +jobs: + include: + - + language: node_js + node_js: + - 6 + before_script: + - npm install -g free-programming-books-lint + script: + - fpb-lint . + + - + language: ruby + if: commit_message =~ /check_urls=/ + rvm: 2.4.1 + before_script: + - gem install awesome_bot + script: + - INPUT=$(echo $TRAVIS_COMMIT_MESSAGE | awk -F= '{print $2}') + - for i in $INPUT; do echo "processing $i"; awesome_bot $i --allow-redirect --allow-dupe --skip-save-results; done diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dd5680fadbd43732e827c400dc263aab0a097d74..b0bbf2115807ee39ee422e50ed648f90d4490197 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -118,3 +118,15 @@ GOOD: * [A Very Awesome Book (1970)](https://example.org/book.html) - Jane Roe ``` GOOD: * [Will Be Awesome Soon Book](http://example.com/book2.html) - John Doe (HTML) (:construction: *in process*) ``` + +### Automation +- Formatting rules enforcement is automated via [Travis CI](https://travis-ci.com) using [fpb-lint](https://github.com/vhf/free-programming-books-lint) (see [.travis.yml](.travis.yml)) +- URL validation uses [awesome_bot](https://github.com/dkhamsing/awesome_bot) +- To trigger URL validation, push a commit that includes a commit message containing `check_urls=file_to_check`: + +``` +check_urls=free-programming-books.md free-programming-books-en.md +``` + +- You may specify more than one file to check, using a single space to separate each entry. +- If you specify more than one file, results of the build is based on the result of the last file checked. You should be aware that you may get passing green builds due to this so be sure to inspect the build log at the end of the pull request by clicking on "Show all checks" -> "Details".