【问题标题】:How to create a folder in github workflow?如何在 github 工作流中创建文件夹?
【发布时间】:2021-08-31 21:47:56
【问题描述】:

我正在尝试在 github 工作流程中将一个文件夹的内容复制到另一个文件夹中。我知道工作流可以创建新的文件夹和文件,因为在 react 项目上调用 build 会创建项目中不存在的构建,但它会在使用 mkdir 的后续运行命令中引发错误。

错误: mkdir: cannot create directory ‘myNewFolder’: No such file or directory

我的问题是如何实现

> mkdir myNewFolder && cp -R myOldFolder myNewFolder

> cp -R myOldFolder myNewFolder

在 repo/workflow 工作目录中不存在 myNewFolder 时工作?

编辑(请求的工作流文件)

name: Test Server Build and Deploy (CD)

on:
  push:
    branches:
        - cd_branch

jobs:
  deploy:
    runs-on: ubuntu-latest
    env: 
        MY_APP_ENV_VARIABLE:  ${{ secrets.ENV_VARIABLE}}

steps:
        - uses: actions/checkout@v2
        - uses: actions/setup-node@v2
          with:
              node-version: '14.15.4'
        - run: npm cache clean --force
        - run: npm run copy-script

我的复制脚本在哪里: "copy-script": "mkdir existingFolder/newFolder1/newFolder2 && cp -R oldfolder/sub existingFolder/newFolder1/newFolder2"

【问题讨论】:

  • 你遇到了什么错误?
  • 抱歉,现在将其添加到问题中。
  • 该错误与 git 无关。您可能没有足够的权限来创建新文件夹。您当前文件夹的读/写/执行权限状态如何?
  • 如果您指的是 GitHub 操作设置,我选择了“工作流在所有范围的存储库中具有读写权限”。对于有问题的特定回购。
  • 显示工作流文件的最小版本。 mkdircp 应该可以正常工作,就像它们在本地计算机上的 GitHub Actions 中一样。

标签: linux github github-actions building-github-actions


【解决方案1】:

创建嵌套在另一个文件夹中的新文件夹时,在mkdir 之后添加-p(parants)选项,告诉Linux 将所有目录都列在路径中。

我试过了,它对我有用:

name: SO-023 Create folder

on:
  push:
    branches: [ main ]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Create folder
        run: |
          mkdir -p myNewFolder/myNewSubFolder && cp -R dist myNewFolder/myNewSubFolder
          ls myNewFolder/MyNewSubFolder
          

【讨论】:

  • 管道符号是怎么回事?在工作流程上运行 && 命令是否需要这样做?
  • 对不起,我不明白。你能解释一下吗?管道有问题吗?
  • 谢谢,如果您批准编辑,我可以接受这个作为答案。我想这不是一个真正的 github 问题。
  • 不正确,这不是 Github 问题。但我很高兴我们解决了它。我也批准了编辑。
  • 我认为run 之后的管道是 YAML 语法的东西。这意味着它下面的缩进行是一个字符串,@Mr.Drew。它仅在字符串与键位于单独的行时使用。 uses: 旁边的值等也是字符串,但它们在 : 旁边的同一行上,所以你不要在那里使用管道。
猜你喜欢
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 2021-05-13
  • 1970-01-01
  • 1970-01-01
  • 2020-03-12
相关资源
最近更新 更多