Hello,
I am using Bitbucket Pipeline along with Git-Ftp for months. So far it is really good. Now I have landed into a problem which needs your suggestions.
I have implemented composer packages into the system and I would like to run "composer update" command into the server only when the upload ready file list contents "composer.json" and "composer.lock" file.
For that I believe, I have to run a shell file as a script in the pipeline? The problems are:
- How do I know the file names while a pipeline is running? I searched the available environment variables (https://confluence.atlassian.com/bitbucket/environment-variables-794502608.html) page but couldn't find any.
- If the problem #1 can be resolved then, I'd like to run composer update into the server directly. Is that possible? Do I have to add that server's SSH key into bitbucket? Can you please point me to a guide?
Right now, I have a very straight forward pipeline script which puts files into 'public_html' directory of my site. In the server, I do have SSH access credentials and composer is also installed.
image: samueldebruyn/debian-git
pipelines:
# Automated builds.
branches:
# Automated build into Development.
development:
- step:
name: Automated Development Build
script:
- apt-get update
- apt-get -qq install git-ftp
- git ftp push --user $FTP_USERNAME --passwd $FTP_PASSWORD ftp://$FTP_HOST/public_html/
I could have used Git-Ftp's feature ".git-ftp-include wildcards". But it would upload all contents of the "vendor" directory every time if composer.json/.lock file is changed. I only want to run composer command in the server itself. So I can save pipeline build minutes.
Please suggest.
Regards,
Aneek