2017-07-13 1 views
2

J'ai remarqué hier que BitBucket supportait les pipelines CICD, ce qui est une fonctionnalité incroyable que je suis impatient d'utiliser.BitBucket Pipeline - Construire et déployer en utilisant node/gulp/git ftp

J'ai cependant quelques difficultés à le configurer.

Mon processus de construction en général:

  • NPM installer
  • NPM installer -g charmille
  • charmille installer
  • NPM installer -g gulp
  • gulp

Le La commande gulp construit l'application HTML et place la sortie dans un build dossier. Une fois la compilation terminée, j'aimerais que le code soit transféré dans un répertoire de mon site Web.

Cela se traduit par la bitbucket.yml suivante:

# This is a sample build configuration for JavaScript. 
# Check our guides at https://confluence.atlassian.com/x/14UWN for more examples. 
# Only use spaces to indent your .yml configuration. 
# ----- 
# You can specify a custom docker image from Docker Hub as your build environment. 
image: node:6.9.4 

pipelines: 
    default: 
    - step: 
     caches: 
      - node 
     script: # Modify the commands below to build your repository. 
      - npm install 
      - npm install -g bower 
      - bower install --allow-root 
      - npm install -g gulp 
      - gulp 
      - cd build 
      - apt-get update 
      - apt-get -qq install git-ftp 
      - git ftp init --user $FTP_USERNAME --passwd $FTP_PASSWORD ftp://mywebsite.com/public_html/mydirectory 

La question que je reçois est que le git ftp init semble téléchargera le dossier src, et non le contenu du build celui qui est créé au cours de la gulp étape.

Des idées?


Mise à jour:--syncroot ne semble être une solution partielle. Ce qui signifie qu'il essaie de télécharger le répertoire build maintenant. Cependant, le problème à ce stade est que git ftp semble seulement synchroniser les fichiers suivis. Parce que les fichiers dans le dossier build sont créés au cours de la construction du pipeline, cela ne s'applique pas à ceux-ci.

J'ai essayé d'ajouter un fichier nommé .git-ftp-include, qui, comme décrit, doit transférer des fichiers non-suivis. Malheureusement, je n'ai pas réussi à déployer mon code.

.git-ftp-include contenu du fichier: build/index.html: /src/index.html

qui dit essentiellement: télécharger index.html du build SyncRoot chaque fois que le index.html dans le répertoire src est changé.

Répondre

0

Pour les fichiers non suivis à transférer par git-ftp la syntaxe dans .git-ftp-include est !filename.

+0

En fait le '!' implique qu'un fichier doit toujours être téléchargé. La notation que j'ai utilisée est utilisée quand vous voulez seulement télécharger des fichiers qui sont changés. En plus, j'ai déjà essayé le '!' et n'a pas fonctionné. – larssy1