My Pipelines configuration gets rejected with the following message:
The 'environment' section in your bitbucket-pipelines.yml file must be a map.
Using the docs, I created the following yml:
pipelines: branches: main: - step: image: php script: - php -v - apt-get update && apt-get install -y unzip - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer - composer -V - composer install - bin/console doctrine:schema:create - bin/console doctrine:fixtures:load - vendor/bin/phpunit services: - mysql definitions: services: mysql: image: mysql environment: MYSQL_DATABASE: tournament MYSQL_RANDOM_ROOT_PASSWORD: yes MYSQL_USERNAME: tournament_user MYSQL_PASSWORD: tournament_password
What's wrong with this configuration file? Why is it rejected?
USERNAME should be USER and the values should be encapsulated in apostrophes. This works:
environment: MYSQL_DATABASE: 'tournament' MYSQL_RANDOM_ROOT_PASSWORD: 'yes' MYSQL_USER: 'tournament_user' MYSQL_PASSWORD: 'tournament_password'
The validator at https://bitbucket-pipelines.prod.public.atl-paas.net/validator does not seem to catch that tho.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I second @Adrian - the validator told me my configuration was valid but then I got this unexplained error.
Also, these docs should be updated to use the correct format https://confluence.atlassian.com/bitbucket/how-to-run-common-databases-in-bitbucket-pipelines-891130454.html
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
And also my-db is not quoted in this page: https://confluence.atlassian.com/bitbucket/service-containers-for-bitbucket-pipelines-874786688.html ...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I found the error! You shouldn't use MYSQL_USERNAME but MYSQL_USER!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Awesome, i'll check that out later.They also seem to have updated the docs as now the credentials are in quotes and they weren't before (still says MYSQL_USERNAME though)!
https://confluence.atlassian.com/bitbucket/test-with-databases-in-bitbucket-pipelines-856697462.html
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Very sorry about this. Good catch. I've updated it to MYSQL_USER
Thanks
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I had the same problem and through a process of elimination found that the error comes from using MYSQL_RANDOM_ROOT_PASSWORD. So, despite what the pipelines documentation says, I don't think this is supported properly yet.
I replaced:
MYSQL_RANDOM_ROOT_PASSWORD: yes
with:
MYSQL_ROOT_PASSWORD: some_password
Not ideal but it is a workaround for now.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Kieren, sorry for the incorrect example in the docs. I've gone ahead and fixed it.
It's an issue with yml where yes gets converted to a boolean (true) which messes with Pipelines since you can't have a boolean environment variable they must be strings.
If you wrap the yes in quotes then it should work.
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
These answers were very helpful. Thanks everyone.
Team Atlassian -- the docs on the page at the link below are still incorrect -- need to add quotes around the environment variables and also use MYSQL_USER not MYSQL_USERNAME. Please fix these. Thx.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks, that worked!
It totally shouldn't have, since even the mysql docker docs acknowledge the random_root parameter, but hey, fine for now :)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.