我正在尝试为我的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.yml
的default,但是我根据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
有关如何进行的任何想法?
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/runs/438192908