-
Notifications
You must be signed in to change notification settings - Fork 1
Continuous Integration
Continuous integration allows us to automate several code quality checks into the development workflow. It serves the following purposes:
- Ensure changes do not introduce regressions
- Ensure changes follow style guidelines
- Boost confidence in the quality of code going into the repository
- Reduce probability of accumulating technical debt
comp413-2017/RDFS uses Travis CI for all continuous integration tasks. The build page can be found here.
The RDFS CI build does the following:
- Provision the environment and compile the source
- Lint the source
- Run all tests
- Generate and publish documentation
CI will run on:
- Every commit you push to your development branch
- Every pull requst
- Every pull request merge commit into
develop
Be aware of the continuous integration status checks. If the build is green, that means your code passed compilation, lint, and tests. If the build is red, one of these stages failed, and you should check the build log to see where an error occurred.
Pull requests that fail CI are not permitted to be merged. This is enforced by the repository, and it is your responsibility to ensure your code passes CI.
- Your commit has one or more of a compile failure, lint error, or test failure.
- Start by going to the build page. In a pull request, click the
Detailslink next to the status checkThe Travis CI build failed. For a commit, click on the red X next to the commit on your branch's commit history. - Scroll through the job log on the build page. Generally speaking, you can skip over the Travis environment initialization steps and the provisioning steps (all the commands that start with
$ ./.ci/install). These steps shouldn't error; if one of them does, ping us in #improvements and we'll look into it. - Look for any output in red that says
The command "<command>" exited with 1.This is the step that failed. - Scroll through the output of the command that failed. It should provide you some insight into what went wrong.
- Fix the error, commit, and push again. A new build will run for that new commit.
If, after reviewing the above, you believe your build failed when it shouldn't have, ping us in #improvements.
For general information about the environment, see the Environment wiki page.
If any provision or compilation step is unsuccessful, CI will correctly fail the build. It does not make any sense to merge in code that does not compile.
For general information about the linter, see the Lint wiki page.
CI will always run the linter on the entire codebase.
The CI build will correctly fail the build if there are lint errors.
For general information about tests, see the Tests wiki page.
CI will run all the tests listed in test/main.sh.
CI will correctly fail the build if any unit tests fail.
For general information about the linter, see the Documentation wiki page.
When building on the develop branch (and the develop branch only), the CI build will automatically generate documentation for that commit and push it to the static documentation site via Github Pages.
CI will never fail the build for the documentation publication step.
Rice University COMP 413 2017
RDFS Overview
Development
Workflow
Style