-
Notifications
You must be signed in to change notification settings - Fork 291
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ci skip]
not respected
#18
Comments
Hi there! We use Pivotal Tracker to provide visibility into what our team is working on. A story for this issue has been automatically created. The current status is as follows:
This comment, as well as the labels on the issue, will be automatically updated as the status in Tracker changes. |
IIRC this was caused by the commit being created from a |
@xoebus Can you clarify this for others running into the same problem - so if a commit with I have a job that triggers from a certain repo, does some changes to the repo and then commits & pushes these changes back to the repo. Because the push triggers again, I'm caught in an endless loop. I tried with Do you know a solution for this? Should I somehow use |
Try pushing to a different but identically configured resource.
|
Thanks, that did the trick! How the relevant parts of my working pipeline look like:
Note that the |
I found out that with the above solution, triggering the job manually after a successful run will fail. This is because To solve this, I include the resource we're pushing My final job looks like this:
|
I thought I could be saved from having to do this with [ci skip], but it turns out that is not the case. The dependent get when doing a put causes Concourse to ignore the [ci skip] rule and see a new version anyway. See related issue: concourse/git-resource#18 This reverts commit 4de3880.
I don't like this solution because it is not obvious that Concourse will in some cases disregard the rules that the user has configured on a resource. I have configured a resource such that new resources should not be discovered given it is tagged as such. Still, Concourse decides to ignore that rule when doing a dependent get, which isn't what I want in any case here. This is a not-easily-discoverable bug. |
This behavior is core to how Concourse reasons about the semantics of streams of resource versions flowing through a pipeline.
I would advise against any use of `[ci skip]`. It leads to nonsense and headaches that resemble the need for a `disable_ci_skip` parameter.
… On Mar 14, 2017, at 16:46, krishicks ***@***.***> wrote:
I don't like this solution because it is not obvious that Concourse will in some cases disregard the rules that the user has configured on a resource.
I have configured a resource such that new resources should not be discovered given it is tagged as such. Still, Concourse decides to ignore that rule when doing a dependent get, which isn't what I want in any case here.
This is a not-easily-discoverable bug.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
The headache here was me discovering that I have to configure an additional resource to model this, and that it leaves me in a state where I'm using a hack to achieve my goal. I want to be able to say in a very clear way that an arbitrary |
I thought I could be saved from having to do this with [ci skip], but it turns out that is not the case. The dependent get when doing a put causes Concourse to ignore the [ci skip] rule and see a new version anyway. See related issue: concourse/git-resource#18 This reverts commit 08837a6.
I attempted to follow the final pattern put forth by @MatthiasWinzeler and that didn't work for me because the triggered resource version frequently came up as different than the non triggered version. So, if I committed new code the trigger would detect the commit but the non triggered that I was supposed to be using wouldn't have the same commit version. I assume this is because of differences in check cycle. So, this isn't a viable workaround for me. |
Although I no longer work on the Concourse team I want to apologize for the curt answers I gave above. The behavior is confusing but at the moment |
FWIW, I worked around my latest issue by doing a pull and a push back as the first step in my triggered job. Which works for me because I only want [ci skip] to skip auto triggered builds. We'll see how long this hack works. Probably not long since this issue seems to be a pretty big rat hole. :) So here is the pseudo config for what worked for me in case it is useful for anyone else:
|
Can we reopen this issue? This is still a problem which requires workaround. |
@giner I have the same issue, and this is a major set back. Any progress on it? |
I'm having a problem with one pipeline not respecting More details about my problem (help requested please) here: |
I have "re-opened" the issue on 221. |
When we create a final release, we deliberately re-trigger the pipeline even though it's unnecessary. We do this because the alternative is too complicated, and gets removed, and costs developer time to debug. We release infrequently, so an extra CI run is not expensive. Backstory: Lyle & Edwin originally optimized the pipeline to "[Prevent promote-candidate from automatically re-triggering the pipeline](https://www.pivotaltracker.com/story/show/104376118)" in November 2015, noting that there's a gotcha when using "[ci skip]" in your commit message: Concourse ignores "[ci skip]" when the commit is made as part of a [put to a CI resource](concourse/git-resource#18). The fix is to have two identical resources: one for the trigger, one for the put, which is what [they did](edc53b7). This made the pipeline more complex, and years later, when the BOSH vSphere CPI shifted ownership, the new owners simplified the pipeline, [merging the two resources into one](de47927), and resurrecting the problem in the process. [#177210283](https://www.pivotaltracker.com/story/show/177210283) Co-authored-by: Mark Stokan <mstokan@pivotal.io> Co-authored-by: Brian Cunnie <bcunnie@vmware.com>
For those still running into this issue now: @MatthiasWinzeler workaround of introducing a separate When they are identical, resource cache treats them as one resource, resulting in an unconditional new version of the trigger resource on each put 😤. So for example: - name: repo-trigger
type: git
source: &git
uri: git@github.com:example/example.git
private_key: ((deploy-key))
branch: main
- name: repo-put
type: git
source:
<<: *git
ignore_paths: [ make-it-different ] # this is the magic line |
When we create a final release, we deliberately re-trigger the pipeline even though it's unnecessary. We do this because the alternative is too complicated, and gets removed, and costs developer time to debug. We release infrequently, so an extra CI run is not expensive. Backstory: Lyle & Edwin originally optimized the pipeline to "[Prevent promote-candidate from automatically re-triggering the pipeline](https://www.pivotaltracker.com/story/show/104376118)" in November 2015, noting that there's a gotcha when using "[ci skip]" in your commit message: Concourse ignores "[ci skip]" when the commit is made as part of a [put to a CI resource](concourse/git-resource#18). The fix is to have two identical resources: one for the trigger, one for the put, which is what [they did](cloudfoundry@edc53b7). This made the pipeline more complex, and years later, when the BOSH vSphere CPI shifted ownership, the new owners simplified the pipeline, [merging the two resources into one](cloudfoundry@de47927), and resurrecting the problem in the process. [#177210283](https://www.pivotaltracker.com/story/show/177210283) Co-authored-by: Mark Stokan <mstokan@pivotal.io> Co-authored-by: Brian Cunnie <bcunnie@vmware.com>
commits with
[ci skip]
are now showing up inside our git resources and triggering builds looking at the repo in question is public should allow reproduction of the issue.Local git version:
git version 2.5.0
Version of git inside container which made commit:
git version 1.9.1
The text was updated successfully, but these errors were encountered: