小编Wub*_*ubb的帖子

GitHub Actions:如何将 toJSON() 结果传递给 shell 命令

因此,我正在与 Github Actions 合作进行端到端测试。我正在查看的设置是让一项作业检索要测试的 url 列表,而我的第二项作业使用该列表创建一个矩阵并测试所有这些。我的问题是,当我实际运行测试脚本时,必须从命令行完成,因为我使用的是 Playwright。因此我不能直接使用我的矩阵对象;我必须将其输出到 JSON 文件。问题是,当我将 toJSON 输出到我的文件时,它会创建无效的漂亮打印 JSON,这会破坏我的脚本。这是我的代码:

name: <name>

on:
    push:
    workflow_dispatch:

jobs:
    fetch_strategic_urls:
        runs-on: ubuntu-latest
        outputs:
            urls: ${{ steps.req-urls.outputs.urls }}
        steps:
            - name: Request Urls
              id: req-urls
              run: |
                  export RESPONSE=$(
                    curl -X GET -H "Accept: application/json" <api-endpoint>)
                  echo "::set-output name=urls::$RESPONSE"
    run_tests:
        runs-on: ubuntu-latest
        strategy:
            matrix:
                url: ${{needs.fetch_strategic_urls.outputs.urls}}
        needs: fetch_strategic_urls
        steps:
            - ...
            - ...
            - run: |
                  ls
                  echo '${{ toJSON(matrix.url) }}' >> props.json
                  cat props.json
                  npm test
              working-directory: E2E.Tests
Run Code Online (Sandbox Code Playgroud)

无论echo ${{matrix.url}} …

bash json yaml jsonparser github-actions

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

bash ×1

github-actions ×1

json ×1

jsonparser ×1

yaml ×1