如何使用Bitbucket Pipelines将react项目部署到ftp?

时间:2019-02-19 09:05:12

标签: reactjs deployment bitbucket bitbucket-pipelines

我正在尝试建立bitbucket-pipelines.yml文件来进行构建,然后部署react项目。下面是我的代码。

image: node:10.15.1 pipelines: default: # Pipelines that are triggered manually via the Bitbucket GUI - step: name: Build script: - yarn - yarn build - step: name: Deploy script: - apt-get update - apt-get install ncftp - ncftpput -v -u "$FTP_USERNAME" -p "$FTP_PASSWORD" -R $FTP_HOST $FTP_SITE_ROOT_DEV build/* - echo Finished uploading /build files to $FTP_HOST$FTP_SITE_ROOT

我得到结果:
+ ncftpput -v -u "$FTP_USERNAME" -p "$FTP_PASSWORD" -R $FTP_HOST $FTP_SITE_ROOT_DEV build/* could not stat build/*: No such file or directory. ncftpput build/*: no valid files were specified.
它说没有构建文件或目录。但yarn build实际上是build文件夹创建的:react-scripts build

1 个答案:

答案 0 :(得分:1)

来自Atlassian documentation

  

关键概念

     

管道由一系列步骤组成。

     
      
  • 管道中的每个步骤都运行一个单独的Docker容器。如果你   想要的话,您可以为每个步骤使用不同类型的容器,方法是   选择不同的图像
  •   

因此,当您尝试在“部署步骤”中将其发送时,由于它是在另一个容器中构建的,因此不存在。

要在步骤之间传递文件,您必须使用Artifacts

image: node:10.15.1
pipelines:
  default: # Pipelines that are triggered manually via the Bitbucket GUI
      - step:
          name: Build
          script:
          - yarn
          - yarn build
          artifacts: # defining build/ as an artifact
          - build/**
      - step:
          name: Deploy
          script:
            - apt-get update
            - apt-get install ncftp
            - ncftpput -v -u "$FTP_USERNAME" -p "$FTP_PASSWORD" -R $FTP_HOST $FTP_SITE_ROOT_DEV build/*
            - echo Finished uploading /build files to $FTP_HOST$FTP_SITE_ROOT