Is it possible to make Q builds using Docker?

Any news on this one please?

The official Q alpha build works on the Mi Mix2 chiron. Have tested the build myself on the device.

Great - thank you. I’ll see if I can build that on Docker

Was it build with docker ?? If yes, could you post the docker command for the right docker container, so the docker builder could use it ?

The /e/ official or test builds are only built with Docker. If @petefoth can run the same build commands calling v1-q branch and devices as chiron it should build. If there are error messages it would be helpful to get the same to check.

1 Like

Getting an error

>> [Wed Sep 30 11:45:04 UTC 2020] Branch:  v1-q
>> [Wed Sep 30 11:45:04 UTC 2020] Devices: chiron,
>> [Wed Sep 30 11:45:04 UTC 2020] (Re)initializing branch repository
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 32517  100 32517    0     0   172k      0 --:--:-- --:--:-- --:--:--  173k
>> [Wed Sep 30 11:45:05 UTC 2020] Copying '/srv/local_manifests/*.xml' to '.repo/local_manifests/'
Traceback (most recent call last):
  File "/root/build_manifest.py", line 61, in <module>
    f.write(xmlstr)
TypeError: write() argument must be str, not bytes
>> [Wed Sep 30 11:45:05 UTC 2020] Syncing branch repository
>> [Wed Sep 30 11:45:06 UTC 2020] Missing "vendor/lineage", aborting

Build command was

sudo docker run \
-v "/srv/e/src:/srv/src" \
-v "/srv/e/zips:/srv/zips" \
-v "/srv/e/logs:/srv/logs" \
-v "/srv/e/manifests:/srv/local_manifests" \
-v "/srv/e/userscripts:/srv/userscripts" \
-v "/srv/e/ccache:/srv/ccache" \
-e "CCACHE_SIZE=200G" \
-e "BRANCH_NAME=v1-q" \
-e "DEVICE_LIST=chiron" \
-e "REPO=https://gitlab.e.foundation/e/os/releases.git" \
registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community

Also tried with -e "BRANCH_NAME=v0.12-q" \ Same error

Building a nougat branch worked OK e.g.

-e "BRANCH_NAME=v0.11-nougat" \
-e "DEVICE_LIST=suzuran" \

Thanks will ask @rhunault to have a look at this error.

1 Like

Note: remote compute instance was using ubuntu 18.04 with all updates applied.

I tried again using 20.04 - same error :frowning:

Searching online for this error indicates it maybe a problem with python versions: python 3 seems to be more picky about type safety than python 2. Sadly, I have no idea how to fix it in the Docker build image

Thanks for pointing this out…will pass it on . Was not able to get an update, yesterday will check today.

you have to build with python2, otherwise you will get alot of errors.
remove python3 from your system and install python2.

If the problem is with the python version, I think the problem lies in the Docker image, rather than the system it is running in. Also the problem is only with Q builds. Nougat builds work with no problems.

I’ll wait to hear back from @Manoj and the Dev team.

2 Likes

Any more news on this?
Thanks.

Unfortunately I did not get an update on this . Will check on Monday once the team is in office and get back to you.

Thanks very much @Manoj

lol what a joke ! Problem is : python3 is installed inside this docker container… Removing system wide python will do nothing !!!

It could be shown here at line 143 : https://gitlab.e.foundation/e/os/docker-lineage-cicd/-/blob/master/Dockerfile#L143

So here in this thread, some recommend to use python2 but official docker release have python3 installed and a symlink in line 148 of Dockerfile to python3. What is the official recommendation ?

The team is still working on the resolution to the v0.12 fix. There should be an update by next week. As of now the builds for v0.12 have been pulled back from the servers. We are checking if the issue is with the build infra or something in the code is causing this.

Ok … But doesn’t make sense : Documentation force you to use docker whereas Docker image simply doesn’t work ! May be add an advanced user install for those like me already in Linux. Furthermore deploying in Docker is not transparent unless you understand Docker. Lucky me I understand but not everybody

Discovering this project … bad first impression, may be I have better luck to support other projects like pinephone …

The documentation does not force you it mentions that we use Docker for our builds but that does not mean users cannot build using the traditional repo sync method. We have some good documentation on this forum for example how to build without Docker or for non LOS supported devices.

In forum not in documentation so you are a little bit forced. When you come in a project, users will say RTFM. I read it but none of other thing that Docker is mentioned …
BTW thank you for the links.