[ci skip] in merge commit builds previous commit

github-integration
bug

#1

The problem I have is that when a merge commit contains [ci skip] then the merge commit is not built as is expected, but instead the previous commit is built which is unexpected.
When [ci-skip] is used, I assume no travis build is triggered at all.

You can see this better with an image here:
Image of the issue in github
In the image the merge commit is not built by travis, but the last merged commit is built by travis. The build has failed and is marked with a red X in github. Build failing is unrelated to this issue.

The merge commit was created with with
git merge -m "merge commit message [skip ci]" somebranch
and the result was pushed to github. After that travis will build the commit before the merge commit, which is unexpected.

Here is a concrete example:
This travis job made a merge and push: https://travis-ci.com/Rochet2/TrinityCore3.3.5/jobs/157766489
and it triggered the following build even though I expected it not to create travis builds: https://travis-ci.org/Rochet2/TrinityCore/builds/453672556


#2

Where are the builds corresponding to these commits you show in the screen grab? Neither https://github.com/Rochet2/TrinityCore3.3.5/commits/master nor https://github.com/Rochet2/TrinityCore3.3.5/commits/pch shows any commit other than your nondescript Update .travis.yml commits.


#3

@BanzaiMan they are in https://github.com/Rochet2/TrinityCore/commits/gomove


#4

That’s a different repository.

Please describe the sequence of events, preferably with time stamps, what you did to which repository, what you observed happen, and what you expected to happen? Also, if you can, perform the same actions again so that the events are more recent than 21 days old.

Thanks.


#5

Description:
There are two repositories, official repository and my fork.
The official repository is https://github.com/TrinityCore/TrinityCore/tree/3.3.5 and my fork is https://github.com/Rochet2/TrinityCore/commits/gomove

When I merge the official repository to my fork with

git remote add Trinity https://github.com/TrinityCore/TrinityCore.git
git fetch Trinity 3.3.5
git merge -m "Merge TrinityCore 3.3.5 to gomove [skip ci]" Trinity/3.3.5
git push

Then Travis will not build the skipped commit, but builds the previous commit which was merged from official repository to my fork in this action.

Example:
A merge and push is made at 7.1.2019 23:32 UTC+2
after which at 7.1.2019 23:35 UTC+2 travis starts to build the previous commit https://travis-ci.org/Rochet2/TrinityCore/builds/476565851?utm_source=github_status&utm_medium=notification

The merge commit is https://github.com/Rochet2/TrinityCore/commit/46179e95b2b2bf669e4ee82a72a3fe8725aa9416
and the commit travis builds is https://github.com/Rochet2/TrinityCore/commit/d12f0841f198045e80a6bca52c03507df8db5b6d

The repository the commits are in is: https://github.com/Rochet2/TrinityCore/commits/gomove
Here is a screencapture: https://i.imgur.com/xDAdW4W.png


#6

Thanks for the additional information. This does appear to be a bug.