Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Debugging "The step provided was invalid"

Michael Ritter August 16, 2017

I'm trying to setup PHP unit testing for our PHP application using MariaDB as a "service".

Now, as soon as I declare that my step should use the service defined in "definitions" section the pipeline fails with the message "The step provided was invalid". Whenever I remove the service from the step it works.

According to https://bitbucket-pipelines.atlassian.io/validator my bitbucket-pipelines.yml is valid.

What am I doing wrong? What does the error mean? How can I debug that error?

I currently use the following bitbucket-pipelines.yml for testing:

 

clone:
  depth: 1
pipelines:
  default:
    - step:
        image: php:7.0-apache
        script:
          - ls
        services:
          - maria
definitions:
  services:
    maria:
      image: mariadb
      environment:
        MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
        MYSQL_ROOT_PASSWORD: ''
        MYSQL_DATABASE: 'dev'  

 

1 answer

1 accepted

0 votes
Answer accepted
Philip Hodder
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
August 28, 2017

Hello,

The issue is that you have an empty string for the value of the MYSQL_ROOT_PASSWORD. Pipelines fails to parse this as it is a string with no content.

An alternate way of setting the MYSQL_ROOT_PASSWORD variable to an empty string is to set MYSQL_ROOT_PASSWORD="\0".

Thanks,

Phil

Michael Ritter August 28, 2017

Hi Philip,

Thanks for your response, I'll try that ASAP!

It would be nice if such conditions could be built into the validator (or is there some other documentation I missed?). I guess this would simplify things for you as well...

Thanks,

Mike

Michael Ritter August 28, 2017

Hi Philip,

Since I receive a different error message now, it seems to work ;-)

Thanks again!

Mike

Michael Ritter August 28, 2017

Ok, setting the MySQL password to "\0" did not work, instead I got the following error:

container_linux.go:247: starting container process caused "process_linux.go:320: reading syncT run type caused \"write parent: broken pipe\""

When I set a password (like 123456) it works.

Philip Hodder
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
August 28, 2017

Excellent! I'll open an internal issue for adding the validation logic. And I'll bring up the empty variable use-case with our PMs.

Glad to see you got things working. :)

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events