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

Haj*_*jan 1 deployment bitbucket reactjs bitbucket-pipelines

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

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

小智 5

来自 Atlassian文档

关键概念

管道由一组步骤组成。

  • 管道中的每个步骤都运行一个单独的 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
Run Code Online (Sandbox Code Playgroud)