Picard errors on machine executor


#1

Hello, I’m trying to follow Managing Parallelism with the 2.0 Tests CLI to get timing based test splitting from 1.0 into 2.0, but having a hard time with the machine executor.

First it seems that picard is not pre-installed when using the machine executor, but I just fetched it manually. Second when trying to run it in a shell block, I receive only the input device is not a TTY.

This is my circle yml:

version: 2
executorType: machine
stages:
  build:
    workDir: ~/project
    steps:
      - type: checkout
      - type: shell
        name: Verify Docker Works
        command: |
          docker --version
          docker-compose --version
      - type: shell
        name: Setup circle
        command:  |
          set -e
          mkdir -p ~/circle/artifacts
          mkdir -p ~/circle/report/rspec
          curl -o ~/circle/picard https://circle-downloads.s3.amazonaws.com/releases/circleci-builder/circleci-builder-beta && chmod +x ~/circle/picard
          ~/circle/picard update
          ~/circle/picard version
      - type: shell
        name: Run tests
        command: |
          set -e
          echo "Splitting test based on previous timings"
          TEST_FILES=$(~/circle/picard tests glob "spec/**/*_spec.rb" | ~/circle/picard tests split --split-by=timings --timings-type=filename)
          echo $TEST_FILES

#2

I am opening a bug ticket with our team.


#3

Any update on using picard with a “machine” setup?


#4

Use circleci - the picard syntax was deprecated over a year ago.
https://circleci.com/docs/2.0/parallelism-faster-jobs/


#5