Giter Club home page Giter Club logo

Comments (6)

hkjn avatar hkjn commented on June 30, 2024 1

Looks like we've now hit the 50 min maximum timeout for an individual job:

I'm guessing it will be hard to improve things from here. The options as I see them are:

  • figure out why Armbian builds are slow on Travis, and make them faster
  • break up the Armbian build into several individual jobs
  • don't add Armbian builds to Travis CI

To be clear, I believe switching the Armbian OS builds from VirtualBox+Vagrant to Docker still has advantages, and since we don't have CI configured for building these artifacts right now, there's no regression by not getting it working on Travis. I'll look around a bit more, then clean up and prep a PR that switches to Dockerized Armbian builds.

from bitbox-base.

Stadicus avatar Stadicus commented on June 30, 2024 1

Armbian build has been moved to Docker completely. Integration of nightly builds in CI system is a separate topic.

from bitbox-base.

hkjn avatar hkjn commented on June 30, 2024

I tried making the changes to armbian/build.sh to switch to Docker-based builds for Armbian OS images in 6fbda4c.

The branch seems to build fine locally, and produces an .img file that boots on a RockPro64 board and which seems functional on cursory examination, however on Travis the build errors:

The symptom seen on Travis builds is:

[...]
# Successfully built b1561d8cbb3b
# Successfully tagged armbian:latest
# [ o.k. ] Running the container 
# docker: Error response from daemon: create ./: "./" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.
# See 'docker run --help'.
# [ error ] Docker command failed, check syntax or version support. Error code:   [ 125 ]

The part of the build that fails seems to be L79 in config-docker.conf, where the Armbian script tries to run:

docker run "${DOCKER_FLAGS[@]}" -it armbian docker-guest "$@"

The error from the Travis logs seems to indicate a syntax error in the arguments to docker run. It's a bit tricky to get more information as this script is checked out by our build.sh script during the Travis build..

I'll try finding out what the full docker run command is during local builds to start with, and then look for options for figuring out what's different / what's going wrong when Travis runs the build.

from bitbox-base.

hkjn avatar hkjn commented on June 30, 2024

In a branch, I've added the entire armbian repo in a commit, to be able to debug the issue with building using Docker that was seen on Travis builds.

I found that config-docker.conf on L79 tries to run a command like:

$ docker run --cap-add=SYS_ADMIN --cap-add=MKNOD --cap-add=SYS_PTRACE --security-opt=apparmor:unconfined --device=/dev/loop0 --device=/dev/loop1 --device=/dev/loop2 --device=/dev/loop3 --device=/dev/loop4 --device=/dev/loop5 --device=/dev/loop6 --device=/dev/loop7 --device=/dev/loop-control --device-cgroup-rule='b 7:* rmw' --device-cgroup-rule='b 259:* rmw' -v /dev:/tmp/dev:ro -v=.:/root/armbian/ -v=armbian-cache:/root/armbian/cache -v=armbian-ccache:/root/.ccache -it armbian docker-guest BOARD=rockpro64 KERNEL_ONLY=no KERNEL_CONFIGURE=no RELEASE=stretch BRANCH=default BUILD_DESKTOP=no WIREGUARD=no LIB_TAG=sunxi-4.20

This fails with the error message seen earlier:

# docker: Error response from daemon: create ./: "./" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.

The failure seems to be due to SRC having the value ., whereas the -v / --volume arguments to Docker need to hold the absolute path. If I patch config-docker.conf to set it to the value of $(pwd) instead as in 40704ff, this issue no longer is seen.

I have as of yet not followed the logic of where the SRC variable gets its value, and why this issue is only seen when running on Travis, but this might represent a genuine issue / room for improvement for the armbian project.

from bitbox-base.

hkjn avatar hkjn commented on June 30, 2024

As another update, I noticed a further potential issue when running on Travis.

Without the hkjn@3ba9c6f commit, the command inside config-docker.conf would run docker run -it <...>. As seen in e.g this build, that led to the command erroring with the input device is not a TTY. Removing the -t seems to allow the build to proceed.

The current issue is that the build fails abruptly, seemingly due to the Travis timeout:

[...]
  LD      net/vmw_vsock/built-in.o
  CC [M]  net/vmw_vsock/af_vsock.o
  CC [M]  drivers/net/ipvlan/ipvlan_main.o
The command "travis_wait 40 ./scripts/travis-ci.sh" exited with 137.

I've been progressively bumping the timeout using the travis_wait wrapper script to find a value that allows Travis to finish the build process.

from bitbox-base.

hkjn avatar hkjn commented on June 30, 2024

The work for this issue has been mostly addressed, and we have switched over to using the Dockerized Armbian builds by default when we're running make at this point.

We'll leave this issue open for now, until we've sent PRs for the upstream fixes to the Armbian project that were mentioned earlier in #39 (comment).

Even after upstreaming those fixes, we likely won't pursue switching Travis over due to the timeout issue, but it does seem good to clear the path for doing so by addressing the other two problems.

from bitbox-base.

Related Issues (18)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.