GitHub 操作上传工件未从 npm 运行 构建中找到提供的路径
GitHub Actions Upload Artifact not finding provided path from npm run build
我正在尝试使用 CICD 原则建立一个 React 网站。我可以在本地 运行,使用 'npm run build' 获取构建文件夹,当我手动将文件推送到 S3 时,网站工作正常。但是,当我尝试通过 github 操作 运行 构建和部署时,上传工件步骤给出以下警告: 'Warning: No files were found with the provided path: build. No artifacts will be uploaded.' 显然部署作业随后失败,因为它找不到任何要下载的工件。为什么会这样?自从 运行ning ls 在构建将其列为当前工作目录中的文件夹之一后,肯定正在创建构建文件夹。
name: frontend_actions
on:
workflow_dispatch:
push:
paths:
- 'frontend/'
- '.github/workflows/frontend_actions.yml'
branches:
- master
defaults:
run:
working-directory: frontend
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- name: npm install
run: npm install
- name: npm build
run: npm run build
env:
CI: false
- name: Upload Artifact
uses: actions/upload-artifact@master
with:
name: build
path: build
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Download Artifact
uses: actions/download-artifact@master
with:
name: build
path: build
- name: Deploy to S3
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --follow-symlinks --delete
env:
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: 'us-west-2' # optional: defaults to us-east-1
SOURCE_DIR: 'build' # optional: defaults to entire repository
事实证明,我对 github 操作的了解是不完整的。为作业设置默认工作目录时,默认目录仅供使用 'run' 的命令使用。因此,所有 'uses' 操作都在基目录中 运行。我想我从来没有遇到过这个问题,因为我从未尝试过 uploading/downloading 不是在基础 github 目录中创建的工件。
通过将路径从 'build/' 更改为 'frontend/build' 解决了问题。
我正在尝试使用 CICD 原则建立一个 React 网站。我可以在本地 运行,使用 'npm run build' 获取构建文件夹,当我手动将文件推送到 S3 时,网站工作正常。但是,当我尝试通过 github 操作 运行 构建和部署时,上传工件步骤给出以下警告: 'Warning: No files were found with the provided path: build. No artifacts will be uploaded.' 显然部署作业随后失败,因为它找不到任何要下载的工件。为什么会这样?自从 运行ning ls 在构建将其列为当前工作目录中的文件夹之一后,肯定正在创建构建文件夹。
name: frontend_actions
on:
workflow_dispatch:
push:
paths:
- 'frontend/'
- '.github/workflows/frontend_actions.yml'
branches:
- master
defaults:
run:
working-directory: frontend
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- name: npm install
run: npm install
- name: npm build
run: npm run build
env:
CI: false
- name: Upload Artifact
uses: actions/upload-artifact@master
with:
name: build
path: build
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Download Artifact
uses: actions/download-artifact@master
with:
name: build
path: build
- name: Deploy to S3
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --follow-symlinks --delete
env:
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: 'us-west-2' # optional: defaults to us-east-1
SOURCE_DIR: 'build' # optional: defaults to entire repository
事实证明,我对 github 操作的了解是不完整的。为作业设置默认工作目录时,默认目录仅供使用 'run' 的命令使用。因此,所有 'uses' 操作都在基目录中 运行。我想我从来没有遇到过这个问题,因为我从未尝试过 uploading/downloading 不是在基础 github 目录中创建的工件。
通过将路径从 'build/' 更改为 'frontend/build' 解决了问题。