diff --git a/_posts/2017-09-09-travis-ci-pr-push.md b/_posts/2017-09-09-travis-ci-pr-push.md new file mode 100644 index 0000000..b78a345 --- /dev/null +++ b/_posts/2017-09-09-travis-ci-pr-push.md @@ -0,0 +1,29 @@ +--- +layout: post +title: "Difference between Travis CI tests: PR and Push" +permalink: travis-ci-pr-push/ +categories: programming +excerpt_separator: +--- + +I just want to leave this here as I often tend to look it up myself and the first time it was not as easy to figure out. + +When using Travis CI along with GitHub (or other git integrations), Travis runs two tests: pr and push. + +![travis-pr-push-github](/img/travis-ci-pr-push-github.jpg) + +Most of the time you see both tests passing and you do not have to even wonder how they are different, but it has +happened to me that one of the tests fails while the other passes and I started to wonder why. + +### pr +The pr test is a test run on the result of a merge between the pull-request branch and the main branch. +As an example, let's say your pull-request's branch is called fix-user-auth and your main branch is master, +in this case, pr merges fix-user-auth into master and then runs the tests on the result of the merge. + +### push +On the other hand, push is run on the pull-request branch itself, without merging. So in our example above, Travis would checkout to fix-user-auth and run the tests. + +### A case of difference + +A case in which this difference might be more apparent is when your pull-request is based on a branch other than master, and some changes that your pull-request depends on are missing from master, in this case the push test may pass, but the pr test will fail. + diff --git a/img/travis-ci-pr-push-github.jpg b/img/travis-ci-pr-push-github.jpg new file mode 100644 index 0000000..2fc90fc Binary files /dev/null and b/img/travis-ci-pr-push-github.jpg differ