How to run build on CircleCI recurrently
To run CircleCI build nightly (or at any interval we want), we need a couple of things. First we need to get CircleCI token that will allow us to access CircleCI API.
Next we need a script, that will trigger the build. In example below we also provide an extra build parameter RUN_ALL_TESTS
that effectively allows us to conditionally run some specs we do not want to run during regular build.
namespace :ci do
desc 'Runs build on CircleCI'
task build: :environment do
command = 'curl -X POST --header "Content-Type: application/json" ' \
"--data '{\"build_parameters\": {\"RUN_ALL_TESTS\": \"true\"}}' " \
'https://circleci.com/api/v1.1/project/github/SomeOwner/' \
"some_project/tree/master\?circle-token\=#{ENV.fetch('CIRCLE_CI_TOKEN')}"
`#{command}`
end
end
Last thing is to schedule the build. Simplest way is to use Heroku Scheduler and just configure it to run rake ci:build
command.
Edit: No longer valid! For Circle 2.0 we can use workflows for the same effect!
Tweet