Skip to content
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

Use [ci skip] rather than ***NO_CI*** #1270

Closed
marceloavf opened this issue Oct 30, 2017 · 25 comments
Closed

Use [ci skip] rather than ***NO_CI*** #1270

marceloavf opened this issue Oct 30, 2017 · 25 comments

Comments

@marceloavf
Copy link

marceloavf commented Oct 30, 2017

Most of the others CI use [ci skip] or [skip ci] (e.g. Travis, CircleCI, Concourse, Codeship, Bitrise, Appveyor, GitlabCI)

Some dependencies use [ci skip] as default to skip automatically versioning from their CI, why not make VSTS also accept it?

@TingluoHuang
Copy link
Contributor

@marceloavf ***NO_CI*** has been there for at least 6+ years from what i can remember.
@chrisrpatterson see how we want to take this feedback.

@marceloavf
Copy link
Author

What I suggest is to give some options to the user:

  • Specify what kind of commit should not trigger a build.
  • And/Or ignore those ***NO_CI***, [ci skip] in specific branch for an user that want a pull request to trigger a build after merge.

@TingluoHuang
Copy link
Contributor

@marceloavf i would suggest submit your feedback at here: https://visualstudio.uservoice.com/forums/330519-team-services
since the feature you request is for server side.

@hugovk
Copy link

hugovk commented Mar 12, 2019

Here's the link, but it's been closed for voting with no comment as to why:

Please could someone say why voting is closed?


AppVeyor also respects [skip ci] and [ci skip] in the commit message title, as well as [skip appveyor].

Travis CI support [<KEYWORD> skip] and [skip <KEYWORD>] where <KEYWORD> is either ci, travis, travis ci, travis-ci, or travisci.

This inconsistency means Azure Pipelines builds when others do not. It wastes resources at Azure Pipelines, can cause confusion when a build is made when it shouldn't, and can cause builds to fail when they shouldn't be run.

Thank you!

@nschonni
Copy link
Contributor

Please could someone say why voting is closed?

https://visualstudio.uservoice.com/forums/330519-azure-devops-formerly-visual-studio-team-services has the announcement about the move to developer community

@hugovk
Copy link

hugovk commented Mar 13, 2019

Thanks!

I found the new issue and the good news is it's being worked on.

@davidstaheli
Copy link
Contributor

davidstaheli commented Mar 22, 2019

This is available now. You can tell Azure Pipelines to skip running a pipeline that a commit would normally trigger. Just include [skip ci] in the commit message or description of the HEAD commit and Azure Pipelines will skip running CI. You can also use any of the variations below. This is supported for commits to Azure Repos Git, Bitbucket Cloud, GitHub, and GitHub Enterprise Server.

  • [skip ci] or [ci skip]
  • skip-checks: true or skip-checks:true
  • [skip azurepipelines] or [azurepipelines skip]
  • [skip azpipelines] or [azpipelines skip]
  • [skip azp] or [azp skip]
  • ***NO_CI***

@vutkin
Copy link

vutkin commented Apr 24, 2019

@davidstaheli [skip ci] is not working.
https://developercommunity.visualstudio.com/content/problem/430367/no-ci-not-being-honored-in-azure-devops.html

@hugovk
Copy link

hugovk commented Apr 25, 2019

Can confirm [ci skip] not working.

See python-pillow/Pillow#3805 which skipped Travis CI and AppVeyor but not Azure Pipelines.

@mloskot
Copy link

mloskot commented Apr 25, 2019

See #1270 (comment) for updated version.


(copying from my comment posted to Developer Community in response to @hugovk)

I have been using this feature in variety of projects (e.g. Boost library) and it has worked fine.

Here are two test PRs

  1. [skip ci] - https://github.com/mloskot/ci-test/pull/2
  2. [skip azp] - https://github.com/mloskot/ci-test/pull/3

The PR from 1. is skipped by all CI services configured for the test repo (Travis CI, CircleCI, AppVeyor, AzP).
The PR from 2. is skipped by AzP only, and the other three run the build.
I have no idea why it's not working for others.

@hugovk
Copy link

hugovk commented Apr 25, 2019

Also works in @mloskot's test repo:

  1. [ci skip] - https://github.com/mloskot/ci-test/pull/4

But as mentioned, [ci skip] doesn't work in python-pillow/Pillow#3805. Why are some repos working and others not?

@davidstaheli
Copy link
Contributor

Thanks for reporting this problem. We're looking into it ASAP.

@mloskot
Copy link

mloskot commented Apr 25, 2019

UPDATE to #1270 (comment)

I'm sorry for confusion, but that 'worked' due to issues in my own configuration. Please, forget that comment.


I can confirm neither [skip ci] nor [skip azp] is working on Azure Pipelines

  1. [skip ci] - https://github.com/mloskot/ci-test/pull/2 - Azure builds, but should NOT
  2. [skip azp] - https://github.com/mloskot/ci-test/pull/3 - Azure builds, but should NOT

@keljos
Copy link
Member

keljos commented Apr 25, 2019

@mloskot and @hugovk , thanks for reporting the issue! Are you currently seeing CI builds running when the [skip ci] or [skip azp] commands are used or only PR builds? Azure DevOps only supports the [skip ci] command variations for CI builds. PR builds will always be run, even if the commit comment contains a [skip ci] command.

If adding an option to skip PR builds is feature you would like to see, please be sure to suggest a feature on Developer Community!

@vutkin
Copy link

vutkin commented Apr 25, 2019

Hi, Could anyone reopen an issue?

@mloskot
Copy link

mloskot commented Apr 25, 2019

@kelliejos

Are you currently seeing CI builds running when the [skip ci] or [skip azp] commands are used or only PR builds?
Azure DevOps only supports the [skip ci] command variations for CI builds.

That may explain my confusion. I have seen builds skipped for non-PRs. That convinced me all eorks fine.

@vutkin
Copy link

vutkin commented Apr 25, 2019

@kelliejos We are not talking about PRs, regular builds aren't skipped.

@hugovk
Copy link

hugovk commented Apr 25, 2019

@mloskot and @hugovk , thanks for reporting the issue! Are you currently seeing CI builds running when the [skip ci] or [skip azp] commands are used or only PR builds? Azure DevOps only supports the [skip ci] command variations for CI builds. PR builds will always be run, even if the commit comment contains a [skip ci] command.

If adding an option to skip PR builds is feature you would like to see, please be sure to suggest a feature on Developer Community!

I'm talking about PR builds. On the project I mentioned, (virtually) everything is done via feature branches and PRs (as is standard practice on many projects), so I've not seen it on non-PR builds.

Travis CI and AppVeyor skip PR (and non-PR) builds when the skip tag is present, it's a command from the author not to expend CI resources on the PR.

I don't understand the difference between PR and CI builds on AzP. Aren't PR builds just a subset of CI builds? Is the difference documented somewhere? Thanks!

@mloskot
Copy link

mloskot commented Apr 25, 2019

@vishnugms

@kelliejos We are not talking about PRs, regular builds aren't skipped.

For https://github.com/boostorg/gil/ library, Azure Pipelines skip builds for any non-PR commits with [skip azp] in the message. For example, for commit boostorg/gil@427956f in develop branch:

commit 427956fa3f2b61a38f88ae436851ad5705df43be
Author: Mateusz Łoskot <mateusz@loskot.net>
Date:   Fri Apr 19 21:40:36 2019 +0200

    [circleci] Enable builds for all branches [skip appveyor]

    One leftover and missing from db8c76bf54c3f073c392152896d9d4c5de67132e

    [skip travis]
    [skip azp]

AzP did not start any build at https://dev.azure.com/boostorg/gil/_build

You will see there similar commit, as on screenshot below, but this is for a different (previous) commit made on Apr 17 boostorg/gil@db8c76b, which does not contain any [skip azp] in the message, so it was built:

image

So, for Boost.GIL project, skipping has worked fine for long time now.


That is why I'm being confused because the skippers have worked for me (for non-PR builds) since day one AzP announced the skipping feature.

@keljos
Copy link
Member

keljos commented Apr 25, 2019

@mloskot and @hugovk Azure DevOps does not permit skipping PR builds as they are gated builds. Allowing a user to bypass gated builds increases the chances that a breaking change could be merged into the code base. Azure DevOps honors the [skip ci] commands on CI builds as the change being built has already been merged.

@vutkin
Copy link

vutkin commented Apr 25, 2019

@kelliejos Why do you think that you know what end-users want? I want use skippers for all builds.
I confirm that AzDevOps DOESN'T respect skippers for regular builds from official docs. My code is stored in AzRepos.

image

@hugovk
Copy link

hugovk commented Apr 26, 2019

Thanks, but for GitHub PRs, it looks really weird when [CI skip] is ignored by Azure Pipelines but honoured by Travis CI and AppVeyor.

I agree it does increase the chance of a breaking change, but sometimes we really do want to skip all CI builds (like a minor or docs change).

@mloskot
Copy link

mloskot commented Apr 26, 2019

sometimes we really do want to skip all CI builds (like a minor or docs change)

Indeed. Trying to not to waste resources (electricity) at micro-scale may turn into significant saving.
I do purposely add skippers when I know a build is unnecessary and, yes, I do it with a bit of eco-friendly mind on purpose.

@rgommers
Copy link

rgommers commented Jun 2, 2019

Allowing a user to bypass gated builds increases the chances that a breaking change could be merged into the code base.

There's still a reviewer involved. Second guessing humans isn't helpful. Example: on a repo where I'm a maintainer I made an edit to a plan text file. I want to send it via a PR so it's visible to other maintainers that I'm making a change (pushing directly to master is considered bad form). But I don't need to trigger hours of CPU time worth of CI builds. I'm 99.99% sure I'm not breaking anything. And in the very unlikely case I did break something, I can just go back and fix it or revert the change.

@MarcoGorelli
Copy link

@mloskot and @hugovk Azure DevOps does not permit skipping PR builds as they are gated builds. Allowing a user to bypass gated builds increases the chances that a breaking change could be merged into the code base. Azure DevOps honors the [skip ci] commands on CI builds as the change being built has already been merged.

Surely if someone is just making a simple typo fix PR then it should be possible to avoid running 30-60 minutes' worth of tests?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests