我正在尝试建立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
答案 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