Coder Social home page Coder Social logo

bionade24 / abs_cd Goto Github PK

View Code? Open in Web Editor NEW
72.0 2.0 4.0 9.18 MB

CI/CD for the Arch build system with webinterface.

Home Page: https://abs-cd.oscloud.info

License: GNU Affero General Public License v3.0

Dockerfile 2.05% Python 63.41% CSS 19.19% HTML 6.51% Shell 8.85%
ci cd archlinux arch-linux makepkg hacktoberfest

abs_cd's People

Contributors

alk3pinjection avatar bionade24 avatar der-eddy avatar fmauch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

abs_cd's Issues

Enhance README, especially development setup.

I've tried to get this run locally in order to test #4. However, after starting it as proposed in the README, I noticed a couple of things:

  • Using localhost:8000 in the browser results in a Bad Request error. Using 127.0.0.1:8000 works. This might be due to my network / hostname setup, but I am assuming this should work.
  • The current README doesn't contain information on how to login. I assumed that logging into the docker container using docker exec -it <container-id> bash and executing python manage.py createsuperuser to create a user would be the way to go. If this is correct, that should probably go into the README, as well.
  • There seems to be something wrong with the staticfiles. The whole GUI is completely ugly and navigation to an arbitrary stylesheet (e.g. http://127.0.0.1:8000/static/admin/css/base.css) results in a NOT FOUND error page. Did I miss anything there?
  • Triggering a build seems not to work for me. I added an arbitrary package (python-catkin_pkg) and tried to build it. However, it does not show a building state in the overview. I assume that without having any dependent packages inside my instance this should still try to build and result in an error if an AUR dependency is missing, right? How could I debug this any further? This might be an issue with docker-in-docker? Must have been a misconception. It seems to work, sorry...

In case of time constraints, please look at #4 first :-)

Builds currently not working on abs-cd.oscloud.info

Currently, I cannot trigger builds. The new container log (awesome, btw!) shows:

Traceback (most recent call last):
File "/usr/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
self.run()
File "/usr/lib/python3.9/multiprocessing/process.py", line 108, in run
self._target(*self._args, **self._kwargs)
File "/opt/abs_cd/cd_manager/models.py", line 103, in build
built_packages = dep_pkgobj.build(force_rebuild=force_rebuild, built_packages=built_packages)
File "/opt/abs_cd/cd_manager/models.py", line 103, in build
built_packages = dep_pkgobj.build(force_rebuild=force_rebuild, built_packages=built_packages)
File "/opt/abs_cd/cd_manager/models.py", line 103, in build
built_packages = dep_pkgobj.build(force_rebuild=force_rebuild, built_packages=built_packages)
[Previous line repeated 8 more times]
File "/opt/abs_cd/cd_manager/models.py", line 107, in build
self.run_cd()
File "/opt/abs_cd/cd_manager/models.py", line 67, in run_cd
PackageSystem().build(self)
File "/opt/abs_cd/makepkg/makepkg.py", line 28, in __init__
image = PackageSystem.Connection().images.get('abs-cd/makepkg')
AttributeError: type object 'PackageSystem' has no attribute 'Connection'

Podman compatibility

Is this project compatible with podman rootless docker? It would be a lot safer for aur maintenaners if this could use podman

Error: Failed to initialize alpm library

$ docker-compose build --no-cache
Building abs_cd
Step 1/27 : FROM docker.io/archlinux/archlinux:latest
 ---> 3ae05360002e
Step 2/27 : LABEL org.abs-cd=webcd_manager
 ---> Running in 3cbd501e5a24
Removing intermediate container 3cbd501e5a24
 ---> 9301add2be80
Step 3/27 : RUN pacman --noconfirm -Sy archlinux-keyring && pacman-key --init && pacman-key --populate archlinux
 ---> Running in 68e4c2ed00c0
error: failed to initialize alpm library
(could not find or read directory: /var/lib/pacman/)

Upstream issue: https://gitlab.archlinux.org/archlinux/archlinux-docker/-/issues/56

If container exits on error, eventually important information from stdout is omitted

Example ros-melodic-moveit-perception: https://abs-cd.oscloud.info/cd_manager/ros-melodic-moveit-ros-perception
Real part of stdout + stderr combined:

Total Installed Size:  1423.30 MiB                                                                                                                                                                        
                                                                                                                                                                                                          
:: Proceed with installation? [Y/n]                                                                                                                                                                       
checking keyring...                                                                                                                                                                                       
checking package integrity...                                                                                                                                                                             
loading package files...                                                                                                                                                                                  
checking for file conflicts...                                                                                                                                                                            
error: failed to commit transaction (conflicting files)                                                                                                                                                   
/opt/ros/melodic/lib/python3.9/site-packages/libgtest.so exists in both 'ros-melodic-moveit-core' and 'ros-melodic-tf'                                                                                    
/opt/ros/melodic/lib/python3.9/site-packages/libgtest.so.1.10.0 exists in both 'ros-melodic-moveit-core' and 'ros-melodic-tf'                                                                             
Errors occurred, no packages were upgraded.                                                                                                                                                               
==> ERROR: 'pacman' failed to install missing dependencies.                                                                                                                                               
==> Missing dependencies:                                                                                                                                                                                 
  -> ros-build-tools                                                                                                                                                                                      
  -> ros-melodic-message-filters                                                                                                                                                                          
  -> ros-melodic-moveit-core                                                                                                                                                                              
  -> ros-melodic-moveit-msgs           

Shown in abs_cd:

warning: dependency cycle detected:
warning: harfbuzz will be installed before its freetype2 dependency
warning: dependency cycle detected:
warning: libglvnd will be installed before its mesa dependency
error: failed to commit transaction (conflicting files)
==> ERROR: 'pacman' failed to install missing dependencies.
warning: dependency cycle detected:
warning: harfbuzz will be installed before its freetype2 dependency
warning: dependency cycle detected:
warning: libglvnd will be installed before its mesa dependency
error: failed to commit transaction (conflicting files)
==> ERROR: 'pacman' failed to install missing dependencies.
==> ERROR: Could not resolve all dependencies.
No packages were built!

@fmauch Tagging you as it affects you.

Proposed solutions:

  1. Pacman should imho put all important error information to stderr -> Upstream bug
  2. Capture both logs on error cases, too. The docker API for Python makes this unnecessary complicated imao. ContainerError only has stderr as member. The current implementation can't work that way, we would have need to run containers with detach=True and remove=False to get the container logs after exited on failiure IIRC. -> I'll try to propose adding an output member upstream.

We still could fix this temporarily if necessary.

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.