微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 travis-ci 上使用 balena-cli (balena build) 构建

如何解决在 travis-ci 上使用 balena-cli (balena build) 构建

我一直在尝试在 travis 上为我的 balena 构建设置 CI 环境。我已经设法在 travis 的环境中安装了 balena-cli,但似乎无法使用 qemu 环境进行构建。我正在使用 --debug 标志获取此日志

[debug] new argv=[/home/travis/.nvm/versions/node/v12.21.0/bin/node,/home/travis/build/vivitek/deep-thought/node_modules/.bin/balena,build,--deviceType,raspBerrypi3-64,--arch,aarch64,--emulated] length=8
[Debug] Parsing input...
[Debug] Loading project...
[Debug] Resolving project...
[Debug] docker-compose.yml file found at "/home/travis/build/vivitek/deep-thought"
[Debug] Creating project...
[Info] Building for aarch64/raspBerrypi3-64
[Build] Building services...
[Build] dhcp Preparing...
[Build] rabbitmq Preparing...
[Build] hotspot Preparing...
[Build] pcap Preparing...
[Build] Built 4 services in 0 seconds
[Error] Build Failed.
No such file or directory: /home/travis/.balena/bin
Error: ENOENT: no such file or directory,mkdir '/home/travis/.balena/bin'
For further help or support,visit:
https://www.balena.io/docs/reference/balena-cli/#support-faq-and-troubleshooting

.travis.yml 如下:

sudo: true
language: node_js
node_js:
  - "12"
branches:
  only:
    - develop
    - master
    - ROUT-44-continuous-integration
git:
  submodules: false
cache:
  directories:
    - node_modules
before_script:
  - npm i -g balena-cli
jobs:
  include:
    - stage: "build rpi4"
      name: "Building on raspBerry pi 4"
      script: ./build_rpi4.sh
    - stage: "build rpi3"
      name: "Building on raspBerry pi 3"
      script: ./build_rpi3.sh

脚本buiöd_rpi4.sh如下:

 #!/usr/bin/env sh

echo -e "Building containers in emulated containers"
balena build --deviceType raspBerrypi3-64 --arch aarch64 --emulated --debug

build_rpi3.sh 看起来基本相同,只是标志发生了变化。

有人知道哪里出了问题吗?

解决方法

balena CLI 会默认在 --emulated 中缓存下载的资产(如 $HOME/.balena 的 QEMU),看起来 Travis-CI 中不存在 HOME 目录。

您可以通过首先在您的环境中设置 BALENARC_DATA_DIRECTORY 来更改 balena CLI 数据目录。因此,将其设置为 Travis 工作区中的绝对路径,我认为它会起作用。

https://github.com/balena-io/balena-cli/blob/master/TROUBLESHOOTING.md#how-do-i-make-the-balena-cli-persist-data-in-another-directory

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。