yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #14836
Faster local testing chroots for everyone :)
-
To:
Yade developers <yade-dev@xxxxxxxxxxxxxxxxxxx>
-
From:
Janek Kozicki <janek_listy@xxxxx>
-
Date:
Fri, 12 Jul 2019 22:46:00 +0200
-
Face:
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAALVBMVEUBAQEtLS1KSkpRUVFXV1dYWFhjY2Nzc3N3d3eHh4eKioqdnZ24uLjLy8vc3NxVIagyAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2AIVEzgS1fgQtQAAAjRJREFUOMtt1DFv00AUAOAzFQNbjigSyoQaRaBMhKgLUyKXpVNNeUpk9vyDqFJhQ1kiBuaqAwJCqvPtSLY7RlTn5+5IdnYkkt/AOyfxXVLe5vf53Z1875kd34tOEax8djmj6GyjhB5bxz50GdsVZr9fqRjZwAtKOJw5Wqs2MMZ16ALHsaDncF7xAHix1oEFHAB8f+pRjcO4gfZDykcYzbiucRolOLUJ6kjA0xtVt+A6TySlM0RajIpK6DzwKZ/nOYbF/gclHMo1ZOHYY/+Ha+AWuM+3oMS4eeqYzZ8FiCltgUqI8cd2wwAVpJk+8LWYjBtnJdQpHQqJMd4Oxt4bU9ESiFGc5hkqaH74asAX4iabP5I5gZ+qjgGlJCqZa3h3lxhoeVcSE1qLQC4sqKOK9MGW9E3izFqqHokoztLFEgXg31sbZEKnWi2T74A4NxfVQqlkjKtcAWD+zcArFEES01dR0E/nnV0IgugmDd/2L84sOAouRBBHEc7gtc8teDkRlE0iNQPo2w3Xhh/D4TCIQ4LRLoTvgwjj6RRgavdurxYGMaIuGOyAW/PpNlCcU9/93AHenAWYjPoAwa+G3e3to/MgFNTAEKvKDjzuCzHTnY3qqdXtx24VijzQfZ0yewZ5cwRFQaa+mIYr1uI0I76+3W4xhlvoVRwOA0Fdl64HlJnxP6T8YpX/Lga4Wv4A3ErrU5oTfN7Mu/llXMl8RXEPji/lQkN3H7qXqgC2By47EXeU/7PJ/wPxRKMnuZwIeAAAAABJRU5ErkJggg==
Hi everyone,
I have prepared the chroots testing suite for you. To make it all
work you need about 100GB free HDD space.
Here's how to use it:
# by default it is in directory /home/extra_nobackup/distros
# you can change this by editing file start_chroot_IN_DIR.sh
mkdir -p /home/extra_nobackup/distros
cd /home/extra_nobackup/distros
# I will try to keep this sevver online, but unfortunately cannot guarentee this
# at least this month it should stay online.
wget http://wilis.pg.gda.pl:55555/tmp/yadeChroots1.tar.bz2
# make sure your downloaded file is OK:
md5sum yadeChroots1.tar.bz2
# e918acc8e2e099ff1ce6531dc2675fe5 yadeChroots1.tar.bz2
tar -xvjf ./yadeChroots1.tar.bz2
# You can safely copy ./yadeChroots1 to have multiple independent chroot sets,
# but do this when chroot is not running.
# move the start script into /root/bin
mkdir /root/bin
mv ./yadeChroots1/start_chroot_IN_DIR.sh /root/bin
# use the custom ~/.screenrc config. If you have your own screen config already,
# then don't do this step. It is to enable F11/F12 keys to change chroots.
mv ./yadeChroots1/.screenrc /root
# install necessary local packages.
# BTW, I wonder if this can work on Mac-OSX with brew install chroot ??
apt-get install screen zsh
# Now you can start chroot with command:
/root/bin/start_chroot_IN_DIR.sh yadeChroots1 p3 zsh
# Now inside chroots you can test yade
~/bin/test-branch.sh upstream master NODOC
# Press F11, F12 to switch between chroots
# then you can exit the chroots by pressing Ctrl-d
# After you exit, use this command to check if you have other chroots
# running:
cat /etc/mtab
I made a demo video on ubuntu 16.04 https://youtu.be/sZ4zDj1mFdc
in case if you have any problems.
The text file written during the video is in the attachment.
I hope this will speed up yade testing for all of you :)
best regards
Janek Kozicki
# OK, I installed a fresh 16.04 in virtualbox to test if this chroot works. First download it to this dir:
mkdir -p /home/extra_nobackup/distros ; cd /home/extra_nobackup/distros
wget http://wilis.pg.gda.pl:55555/tmp/yadeChroots1.tar.bz2
md5sum yadeChroots1.tar.bz2
# e918acc8e2e099ff1ce6531dc2675fe5 yadeChroots1.tar.bz2
tar -xvjf ./yadeChroots1.tar.bz2 # unpacking 40GB is going to take some time. Let's skip recording video of unpacking :)
mkdir /root/bin ; mv ./yadeChroots1/start_chroot_IN_DIR.sh /root/bin ; mv ./yadeChroots1/.screenrc /root
apt-get install screen zsh
# is that all? Let's see if this works.
/root/bin/start_chroot_IN_DIR.sh yadeChroots1 p3 zsh
# started! F11, F12 to change tabs.
# ONLY ONCE, to clone first: mkdir -p /home/ytest/yade ; cd /home/ytest/yade ; git clone https://gitlab.com/yade-dev/trunk.git ; cd trunk ; git remote rename origin upstream
# Then start testing:
~/bin/test-branch.sh upstream master NODOC
# heh, compilation will take some time, but let's do this. I will stop recording until they all compile.
# Ouch, I see that F11 isn't working to move to left tab. Try to change this in options.
# Future compilation will be much faster, because these chroots are configured with ccache
# I also noticed that opensuse by default asks to confirm the `git log` nevermind. It is still compiling....
# Now the script continues, will --test first, then --check, then build documentation unless there was NODOC argument
# hm. I never seen this checkMPI.py error before. Perhaps this chroot had a mistake in preparing it.
# Tried to make dir /home/ytest/.ipython ; ok, it worked the second time. So now we can use the script
# And use ccached compile.
~/bin/test-branch.sh upstream master NODOC
# OK, so it all works. We see the result in here. DOC -1 means it was skipped. We can run tests again with commands
# printed at the end:
~/yade/install/bin/yade-ci --test
~/yade/install/bin/yade-ci --check
# also, in most of the chroots we will have working graphics. First need to make sure the DISPLAY number
# if the number is the same, we need to run command: 'xhost +local:' on the host.
# And now graphics will work!
# hmm.. not always :( In some chroots it was working. Let me check. xterm works at least.
# right, it's not working in 16.04, stretch and opensuse. But should work in others, let's try 18.04
# Nice, all test and check worked. now let's try graphics.
# OK it all works. Now try again - logout from chroot and start it again.
# Use this command to check if you have other chroots running:
cat /etc/mtab
# now start it again as root, to install maybe something.
/root/bin/start_chroot_IN_DIR.sh yadeChroots1 p3 root
# OK, nothing to install, go back to regular user.
/root/bin/start_chroot_IN_DIR.sh yadeChroots1 p3 zsh
# remember about the 'xhost +local:' on the host. for graphics.
#
# OK, it works, ready to announce on yade-dev :)
# End of message.
Follow ups