我正在尝试设置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.
它说没有构建文件或目录。但纱线构建实际上是构建文件夹创建:react-scripts build
来自Atlassian documentation
关键概念
管道由一组步骤组成。
- 管道中的每个步骤都运行一个单独的Docker容器。如果需要,可以通过选择不同的图像为每个步骤使用不同类型的容器
因此,当您尝试在Deploy Step中发送它时,它不存在,因为您在另一个容器中构建它。
要在步骤之间传递文件,您必须使用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