Search code examples
continuous-integrationyamlcirclecicircleci-2.0circleci-workflows

CircleCI API behaving differently from github commit trigger?


I'm running the cypress-example-kitchen sink app on CircleCI.

This is my yaml config script:

version: 2.1
orbs:
  cypress: cypress-io/[email protected]
workflows:
  build:
    jobs:
      - cypress/install:
          build: 'npm run build'
      - cypress/run:
          requires:
            - cypress/install
          start: 'npm start'

This kicks off and passes just fine when I make a commit to my fork of the repo above.

However, when I try to execute a CircleCI build programmatically, using curl -X POST https://circleci.com/api/v1.1/project/github/Atticus29/cypress-example-kitchensink?circle-token=myApiToken, the build fails and the jobs dashboard on CircleCI tells me that something is wrong with my config file:

6 schema violations found required key [jobs] not found workflows: 5 schema violations found workflows: minimum size: [2], found: 1 workflows: build: jobs: 4 schema violations found workflows: build: jobs: 0: 0 subschemas matched instead of one workflows: build: jobs: 0: expected type: String, found: Mapping workflows: build: jobs: 0: install: extraneous key [build] is not permitted workflows: build: jobs: 1: 0 subschemas matched instead of one workflows: build: jobs: 1: expected type: String, found: Mapping workflows: build: jobs: 1: run: extraneous key [start] is not permitted

And that something went wrong with my build:

Build-agent version 0.1.1216-48f80d08 (2018-12-07T16:01:40+0000) Configuration errors: 2 errors occurred:

  • Configuration version 2.1 requires the "Enable Build Processing" project setting. Enable Build Processing under Project Settings -> Advanced Settings. In order to retrigger build processing, you must push a new commit.
  • Cannot find a job named build to run in the jobs: section of your configuration file. If you expected a workflow to run, check your config contains a top-level key called 'workflows:'

I can confirm that Enable Build Processing is on.

None of these were problems when I ran the build in the usual way. Any advice?


Solution

  • Circle CI for some reason keeps on assuming that the projects are not set up for v2.0 despite config.yml being called the right thing and living in the right place in the repo. After a few commits, this issue seems to go away?

    I ended up running a build programmatically with the following script:

    #!/bin/bash
    
    PERSONAL_TOKEN=myPersonalTokenHere
    
    MOST_RECENT_BUILD=`curl -s "https://circleci.com/api/v1.1/recent-builds?circle-token=$PERSONAL_TOKEN&limit=1"| grep 'build_num'|grep -o '\d.'|sed 's/,//g'|sort -r -n|head -n1`
    
    curl -X POST "https://circleci.com/api/v1.1/project/github/holmbergius/wildMeCypress/$MOST_RECENT_BUILD/retry?circle-token=$PERSONAL_TOKEN"