我创建了一个bitbucket管道,但是对于每个脚本我都需要执行相同的脚本:
- apt-get update
- apt-get -qq install git-ftp
但我正在寻找一种优化和简化这种方法的方法:
image: samueldebruyn/debian-git
pipelines:
custom: # Pipelines that are triggered manually via the Bitbucket GUI
init-staging:
- step:
script:
- apt-get update
- apt-get -qq install git-ftp
- git ftp init --user "$FTP_USERNAME" --passwd "$FTP_PASSWORD" "$STAGING_FTP_URL" -v
init-production:
- step:
script:
- apt-get update
- apt-get -qq install git-ftp
- git ftp init --user "$FTP_USERNAME" --passwd "$FTP_PASSWORD" "$PRODUCTION_FTP_URL" -v
re-deploy-all-to-staging: # -- Deploys all files from the selected commit
- step:
script:
- apt-get update
- apt-get -qq install git-ftp
- git ftp init --user "$FTP_USERNAME" --passwd "$FTP_PASSWORD" "$STAGING_FTP_URL" -v --all
re-deploy-all-to-production: # -- Deploys all files from the selected commit
- step:
script:
- apt-get update
- apt-get -qq install git-ftp
- git ftp init --user "$FTP_USERNAME" --passwd "$FTP_PASSWORD" "$PRODUCTION_FTP_URL" -v --all
manual-to-staging:
- step:
script:
- apt-get update
- apt-get -qq install git-ftp
- git ftp push --user "$FTP_USERNAME" --passwd "$FTP_PASSWORD" "$STAGING_FTP_URL" -v
manual-to-production:
- step:
script:
- apt-get update
- apt-get -qq install git-ftp
- git ftp push --user "$FTP_USERNAME" --passwd "$FTP_PASSWORD" "$PRODUCTION_FTP_URL" -v
branches: # Automated triggers on commits to branches
master: # When committing to master branch
- step:
deployment: staging
script:
- apt-get update
- apt-get -qq install git-ftp
- git ftp push --user "$FTP_USERNAME" --passwd "$FTP_PASSWORD" "$STAGING_FTP_URL" -v
使用不同的Docker镜像。你当前正在使用的那个(samueldebruyn/debian-git
)不包括git-ftp,但是如果你使用其他人制作的那个(查看hub.docker.com)或自己制作一个那么你将在开始时使用该实用程序管道。这将节省您在管道中的步骤,并且还可以构建分钟。