如何设置dart.yml以使用build_runner运行测试

问题描述 投票:1回答:1

我正在尝试为我的Dart项目设置持续集成,但是运行pub run build_runner test时出现文件未找到错误:

  Failed to run Chrome: No such file or directory

您可以在此处看到执行的完整作业:https://github.com/UC-Davis-molecular-computing/scadnano/runs/434176213

我已经尝试设置粘贴到dart.ymldefault,但是我根据pub run test的要求将最后一行从pub run build_runner test更改为OverReact framework

所以我的dart.yml读为:


name: Dart CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    container:
      image:  google/dart:latest

    steps:
    - uses: actions/checkout@v2
    - name: Install dependencies
      run: pub get
    - name: Run tests
      run: pub run build_runner test

有关如何进行的任何想法?

github dart dart-pub github-actions
1个回答
0
投票

Ubuntu-latest包含google-chrome是正确的,但是由于您的配置中包含以下内容:

    container:
      image:  google/dart:latest

这意味着您的ubuntu映像正在生成基于“ google / dart:latest”的docker容器,并在该容器中运行脚本的其余部分。我在“ google / dart:latest”和“ ubuntu-latest”上都提取了/usr/bin的内容,可以在这里看到:

https://gist.github.com/julemand101/1e74aee8e5152fb18b4913bbeaf805b6

正如我们从此输出中看到的,“ google / dart:latest”容器没有google-chrome可执行文件(我在图像的其他地方四处张望,无法发现它)。但是ubuntu-latest确实包含它。

由于Dart SDK的安装比Google chrome容易得多,所以我想解决该问题的最简单方法是在ubuntu最新映像中安装Dart SDK(因此不要在github操作中使用容器功能)按照本指南安装步骤:

https://dart.dev/get-dart#install-using-apt-get

然后,正常运行其余脚本。我试过在这里举一个例子:

name: Dart CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - name: Setup Dart SDK Step 1
      run: sudo apt-get update
    - name: Setup Dart SDK Step 2
      run: sudo apt-get install apt-transport-https
    - name: Setup Dart SDK Step 3
      run: sudo sh -c 'wget -qO- https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -'
    - name: Setup Dart SDK Step 4
      run: sudo sh -c 'wget -qO- https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list'
    - name: Setup Dart SDK Step 5
      run: sudo apt-get update
    - name: Setup Dart SDK Step 6
      run: sudo apt-get -y install dart
    - uses: actions/checkout@v1
    - name: Install dependencies
      run: PATH="$PATH:/usr/lib/dart/bin" pub get
    - name: Run tests
      run: PATH="$PATH:/usr/lib/dart/bin" pub run test
    - name: Run analyzer
      run: PATH="$PATH:/usr/lib/dart/bin" dartanalyzer --fatal-infos --fatal-warnings .
      if: always()
    - name: Run dartfmt
      run: PATH="$PATH:/usr/lib/dart/bin" dartfmt -n --set-exit-if-changed .
      if: always()

https://github.com/julemand101/AdventOfCode2019/blob/85475933c1cc5617610c9287b03813fde748039a/.github/workflows/dart.yml

您可以在这里看到成功的构建:https://github.com/julemand101/AdventOfCode2019/runs/438192908

© www.soinside.com 2019 - 2024. All rights reserved.