Cancel automated builds, leave manual trigger only


#1

With the new ioS plans including caps on build minutes, we need to limit our builds somehow. We figured we don’t really need to run archive builds for every single push we’re making. We can press the build button to start a new build that will be delivered to QA when we’re done with fixing a bunch of bugs, etc.

Is there any way to disable polling/triggering builds from github, and only make circleci pull and start building manually/via an api call?


#2

I think restricting only to master should do the trick:

general:
  branches:
    only:
      - master # list of branches to build

This will also still build pull requests to master

ref: https://circleci.com/docs/1.0/parameterized-builds/


Feature request: Option to disable builds on commit pushes
#3

We commit many things to master directly, bug fixes for example, so would still need finer control over when a build is triggered. We could use the commit message tag that prevents a build, but that would kinda feel like dirtying the repo. We thought about creating a ‘circleci’ branch, limiting “branches:” to build only that, and control it that way but really wanted to prevent it as we want to build different branches sometimes and it’s more cumbersome than clicking a button.


#4

You don’t build/test on bug fixes? (wondering if I misunderstood)

Hope someone else can help better then.


#5

We do, but we don’t need every single push to be tested. We push/pull between the team while fixing a bunch of bugs, then come up with a build that we need to be passed to QA - that’s the revision we would want to be built.


#6

One obvious option would be to implement the fixes in a separate branch. If that doesn’t work, you could use this API endpoint to trigger a build with a specified value of an environment variable.

Based on that env var, you could do something like this:

test:
  override:
    - test-command
    - if [[ ! -z $API_SPECIFIED_VAR ]] ; then archive-command ; fi

What do you think?


#7

Great, I think that that solves the problem. It’s kinda wasteful that it will still checkout and run a bunch of processes for every push as we’re not looking to skip just the archive step but testing as well, but can live with that. Thanks.


#8

Got it. Sorry for not having a better way to do this right now.


#9

[ci skip] is supported, what about the inverse, [ci build]? Assuming this not an official feature, how could I better implement the same in my circle.yml?

stage:
branch: [/feature-./, /issue-./]
commands:
- COMMIT_MSG=$(git log -1 --pretty=%B)
- if [[ $COMMIT_MSG == “[ci stage]” || $COMMIT_MSG == “[stage ci]” ]]; then
docker login -u $DOCKER_USER -p $DOCKER_PASS -e robot@fake.local quay.io;
make deploy;
else
echo "Deploy skipped by commit message, "$COMMIT_MSG;
fi


#10

Can you remove the ‘solved’ flag since this issue is not resolved? Also which of the 10 support requests for this feature should I upvote to get circle to pay attention to this?


#11

I want this feature too
Or at least some “unofficial” workaround


#12