【问题标题】:Where are the repo files in a working-directory context?工作目录上下文中的 repo 文件在哪里?
【发布时间】:2021-09-14 03:32:24
【问题描述】:

我有一个简单文件的存储库,包含一个 front 目录(TS、Vue.js、Quasar)和一个 back 目录。该项目的骨架是

infinote/
├─ front/
│  ├─ package.json
│  ├─ src/
├─ back/
├─ .git/

我正在尝试通过以下工作来建造前线:

jobs:
  front:
    runs-on: ubuntu-latest
    env:
      working-directory: ./front
    steps:
      - uses: actions/checkout@v2
        with:
          ref: master
      - uses: actions/setup-node@v2
        with:
          node-version: '14'
      - run: npm install
      - run: npm install -g @quasar/cli
      - run: quasar build
      - uses: actions/upload-artifact@v2
        with:
          name: front
          path: dist/spa

这失败了,因为npm install 找不到要安装的东西:

Run npm install
  npm install
  shell: /usr/bin/bash -e {0}
  env:
    working-directory: ./front
npm WARN saveError ENOENT: no such file or directory, open '/home/runner/work/infinote/infinote/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '/home/runner/work/infinote/infinote/package.json'
npm WARN infinote No description
npm WARN infinote No repository field.
npm WARN infinote No README data
npm WARN infinote No license field.

up to date in 0.24s
found 0 vulnerabilities

我想这是因为package.json(以及项目的其余部分)在其他地方。我应该在哪里找到它?

【问题讨论】:

    标签: github github-actions


    【解决方案1】:

    您想要实现的目标(为整个工作使用工作目录)可以通过使用${{env.working-directory}}run: npm install 命令来完成,如github community answer 中所述。

    在不通知working-directory 的情况下,该命令将在存储库根目录执行(其中没有package.json 文件)。有关此语法的更多信息,请访问here

    您的工作流程应如下所示:

    jobs:
      front:
        runs-on: ubuntu-latest
        env:
          working-directory: ./front
        steps:
          - uses: actions/checkout@v2
            with:
              ref: master
          - uses: actions/setup-node@v2
            with:
              node-version: '14'
          - run: npm install
            working-directory: ${{env.working-directory}}
          - run: npm install -g @quasar/cli
            working-directory: ${{env.working-directory}}
          - run: quasar build
            working-directory: ${{env.working-directory}} #not sure if this one is necessary
          - uses: actions/upload-artifact@v2
            with:
              name: front
              path: dist/spa
    

    【讨论】:

      【解决方案2】:

      应通过defaults 中的条目为整个作业设置工作目录:

      jobs:
        front:
          defaults:
            run:
              working-directory: ./front
          runs-on: ubuntu-latest
          steps:
            - uses: actions/checkout@v2
              with:
                ref: master
            - uses: actions/setup-node@v2
              with:
                node-version: '14'
            - run: npm install
            - run: npm install -g @quasar/cli
            - run: quasar build
            - run: ls -lR dist
            - uses: actions/upload-artifact@v2
              with:
                name: front
                path: ./dist/spa/
      

      【讨论】:

        猜你喜欢
        • 2013-04-11
        • 2016-09-19
        • 1970-01-01
        • 1970-01-01
        • 2015-09-05
        • 1970-01-01
        • 2017-02-13
        • 1970-01-01
        • 2017-07-06
        相关资源
        最近更新 更多