Fragility

bamboo works like this:

it gets your files from git

and it puts them in a working directory that only bamboo touches

and for me, what i do then is i run composer update on the working directory

and composer does all the wonderful things it does including putting symlinks in its bin dir out to your executables

and mine looks like this

0 lrwxrwxrwx   1 xxx xxx   24 Sep 17 15:54 behat -> ../behat/behat/bin/behat*
0 lrwxrwxrwx   1 xxx xxx   26 Jun  5 16:16 phpunit -> ../phpunit/phpunit/phpunit*
0 lrwxrwxrwx   1 xxx xxx   23 Jun  5 16:16 wp -> ../wp-cli/wp-cli/bin/wp*
0 lrwxrwxrwx   1 xxx xxx   27 Jun  5 16:16 wp.bat -> ../wp-cli/wp-cli/bin/wp.bat*

as it should

and then bamboo copies everything from the working directory out to the actual location on the file system where the wordpress install lives.

and then after that things look like this

4 -rwxr-xr-x   1 xxx xxx   859 Feb 22  2015 behat*
0 lrwxrwxrwx   1 xxx xxx   26 Apr 27 16:42 phpunit -> ../phpunit/phpunit/phpunit*
0 lrwxrwxrwx   1 xxx xxx   23 Apr 27 16:43 wp -> ../wp-cli/wp-cli/bin/wp*
0 lrwxrwxrwx   1 xxx xxx   27 Apr 27 16:43 wp.bat -> ../wp-cli/wp-cli/bin/wp.bat*

hey now that is not right, what gives bamboo?

i did this many times, i uninstalled behat (which is a laborious process when you have to involve git, composer, and bamboo to make this happen) and reinstalled and yes, every time. no symlink. actual file. my behat command doesn’t work.

so this is frustrating, but really it is also disturbing because i don’t understand what is happening and uuhhhhhhh oh god how do i not understand this?

so i google and google has something like this about how ant doesn’t respect symlinks. ant? okay so technically speaking i used to be on the ops side of “devops” but that was a really long time ago before ant existed and i know i had to figure out some really basic ant patterns when i first set up my bamboo stuff but

this system seems really fragile and i feel kind of stupid.

 

p.s. i know i will figure it out, this is more of a ‘share my pain’ than a ‘solve my problem’ sort of post.