Closed markus2330 closed 2 months ago
Further more: There never will be another python2 version. So python2.7-dev will be the last python2 dev package ever.
Depending on python3-dev is what I said.
Now only the key is missing:
gpg: new configuration file `/home/jenkins/.gnupg/gpg.conf' created
gpg: WARNING: options in `/home/jenkins/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/home/jenkins/.gnupg/secring.gpg' created
gpg: keyring `/home/jenkins/.gnupg/pubring.gpg' created
gpg: skipped "Autobuilder <autobuilder@libelektra.org>": secret key not available
gpg: /tmp/debsign.DlSdnFtB/elektra_0.8.13-1.41.dsc: clearsign failed: secret key not available
debsign: gpg error occurred! Aborting....
gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
pub 2048R/08C91995 2015-09-30
Key fingerprint = BA4C 688E 9071 FD3F 57ED E9D6 D0A9 EDB9 08C9 1995
uid Autobuilder <autobuilder@libelektra.org>
sub 2048R/E69F110A 2015-09-30
done
Thank you!
Please export /home/jenkins/repository via http.
cannot access /home/jenkins/repository: No such file or directory
?
@manuelm Could you please install ronn
on the agents? (needed for generating man pages)
apt-get install ruby-ronn
done
Thanks, jessie packages build again, and man pages are now included!
Please install musl, i.e.
apt-get install musl musl-dev musl-tools
Thank you!
musl installed and agends upgraded
Two important things about the build server:
@mpranj It would be great if you can fix 2.
@markus2330 just to make sure: I should just apply the same clone behaviour to all build jobs like it is in elektra-clang
?
Shallow clones applied to all build-jobs except:
These jobs check out to some sub-directory. Wasn't sure what you want there so I'll leave them as they are for now.
Thank you! Yes they need complete history and branches, shallow clones make no sense but the reference clone repository would be useful.
Jenkins was updated to 1.651.2. Also all plugins were updated.
I will keep the issue open for the reference clone repos. We should also have "cron jobs" which update the repos from time to time, ideally using jenkins itself.
Jenkins stopped building some jobs (since the update apparently). It fails with
ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
Thanks for the info. I try to downgrade github request builder from 1.31 to 1.14.
Now it seems stuck when setting the build status for the Github commit. It does warn that this is deprecated in the config.
I also tried to downgrade every plugin with *git*
in its name, but then there were still errors (strange error related to Mailer Plugin, downgrade of Mailer Plugin did not help). So I updated everything to recent versions again. The problem seems to be a known issue upstream:
https://github.com/janinko/ghprb/issues/347
I hope they will fix it soon.
Another question: Does someone know how to run multiple jobs for every PR? (I would like to run both elektra-mergerequests-stable and elektra-mergerequests-unstable)
The elektra-test-bindings
job is working fine with parameterized builds (as also described in the upstream ticket). Couldn't we just switch it to parameterized builds? The bug has been reported upstream for a while, I don't see it fixed soon.
Good idea, we could change all PR jobs to parameterized builds, it actually has only advantages. It allows us to run the jobs manually by specifing a branch, too. And it also can be used for regular build jobs.
Ideally, every job could be executed by github PRs, too. (Except those specifically for non-PR tasks that update docu or coverage of the master branch)
A disadvantage of elektra-test-bindings' config is that it only does polling and takes quite long until it starts building (up to 5 min). I do not want to activate "Use github hooks for build triggering", however, to not break the build job.
Btw. are you sure that the "shallow clone" option is okay for the github pullrequest builder jobs?
I wonder how github picks the build job it uses for new PRs. Why is the elektra-test-bindings and elektra-ini-mergerequests never selected for a new PR? Why is it sometimes elektra-mergerequests-unstable and somtimes elektra-mergerequests(-stable)?
@manuelm do you have any idea?
Btw. somehow the communication of finished build jobs and github is severely impaired (even for elektra-test-bindings). It now says on nearly every build "Some checks haven’t completed yet".
A disadvantage of elektra-test-bindings' config is that it only does polling and takes quite long until it starts building (up to 5 min).
And this is a problem because? Testing takes more than 5 minutes anyway.
Why is the elektra-test-bindings and elektra-ini-mergerequests never selected for a new PR?
Why should it? elektra-test-bindings
gets triggered by the "Trigger phrase" only. No idea what elektra-ini-mergerequests
is.
Why is it sometimes elektra-mergerequests-unstable and somtimes elektra-mergerequests-stable?
The -stable/-unstable are new? I'm not sure triggering multiple jobs per new PR is possible. I would do subjobs.
Btw I've said this a few times already but I think the amount of jobs is getting ridiculous and a sign of a messed up config. But criticizing is always easier than solving something.
The 5 min is a problem when you want to debug the build server. And I still hope that we get a quick first test sometime, taking about 5 min.
Ahh, ok, I missed the option "Only use trigger phrase for build triggering". The config for the github request builder is really a mess.
Someone talked about github projects where they have multiple jobs running for every PR. (Displayed individually)
What is a subjob? Do you mean multijob?
Someone talked about github projects where they have multiple jobs running for every PR. (Displayed individually)
You'll have to add two services on github.
What is a subjob? Do you mean multijob?
Yeah multijob.
btw, what about https://docs.travis-ci.com/ ? Travis has support for OSX.
I know it won't replace jenkins but might replace the PR/on every commit builds. Jenkins can still do the multiple compiler/etc.. testing. Edit: Travis even has gcc + clang.
Agreed, it would be interesting to use their CPU power/electricity for free as elektra is open source.
It is likely that the connection between github and jenkins actually is 1:1. In the github service I entered http://build.libelektra.org:8080/github-webhook/ and I did not find a way to create another URL in jenkins. (I only found a way how to specify a override, but this did not create a new URL).
In https://github.com/janinko/ghprb/issues/142 they discuss that it should "just work"? (Without adding multiple services)
The sha1 problem, however, should be solved now. It was broken because Jenkins introduced a new security measurement which prunes unknown environment variables. I fixed it as suggested (added -Dhudson.model.ParametersAction.safeParameters=ghprbActualCommit,ghprbActualCommitAuthor,ghprbActualCommitAuthorEmail,ghprbAuthorRepoGitUrl,ghprbCommentBody,ghprbCredentialsId,ghprbGhRepository,ghprbPullAuthorEmail,ghprbPullAuthorLogin,ghprbPullAuthorLoginMention,ghprbPullDescription,ghprbPullId,ghprbPullLink,ghprbPullLongDescription,ghprbPullTitle,ghprbSourceBranch,ghprbTargetBranch,ghprbTriggerAuthor,ghprbTriggerAuthorEmail,ghprbTriggerAuthorLogin,ghprbTriggerAuthorLoginMention,GIT_BRANCH,sha1 to /etc/default/jenkins).
About usage of additional build servers: Yes, go ahead. It also solves the issue of multiple build jobs for a single PR ;) I never used travis-ci, so cannot say anything about it. I gave the permission that travis has access to ElektraInitiative.
First travis build: https://travis-ci.org/ElektraInitiative/libelektra/builds/130425147 I think we need some yaml file so that travis knows what to do.
And I figured out how to do multiple jenkins jobs per PR, a different context for every build-job was needed. In the next meeting we discuss what the "fast" and other build jobs should do.
I'm working on travis (or checking some things out)
Have fun. Travis also added a github service, so I guess that a PR will be built with travis, too.
I'm already swearing loudly
-- Could NOT find JNI (missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH) -- Exclude Plugin jni because jni not found
I'm unable to get the java plugin configure correctly. However Java bindings work. On debian unstable. Any ideas? Looking at the cmake module doesn't help much.
Edit: /usr/lib/jvm/java-8-openjdk-amd64/include/linux/jni_md.h
, /usr/lib/jvm/java-8-openjdk-amd64/include/jawt.h
and /usr/lib/jvm/java-8-openjdk-amd64/include/jni.h
is in place
Edit 2: Got it. JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64/ ....
https://travis-ci.org/manuelm/libelektra/builds/130638376
Debian unstable built within a docker container. But building takes ages. Any good ideas?
clang is often faster regarding build time, but i think the installation of the dependencies is what takes a large amount of time
Isn't there a more minimal debian docker image then the one used? It seems a lot of packages get installed that should not be needed.
@sirblackheart What makes you think that? https://github.com/manuelm/libelektra/blob/a3d4b9212e738f9b8f2c13318b8a661522dff4a6/scripts/docker/Dockerfile.debian_unstable#L6
@manuelm probably the dist-upgrade. a lot of packages get updated that are desktop specific like wayland
No. dist upgrade is short. maybe a minute. about 50% of the time is taken by installing the build deps.
I'm pushing the build image to hub.docker.com right now. Hope that will speed things up. But the image has 1.9gb
Elapsed time 14 min 8 sec
Not sure if we can do much better
like i said, clang maybe gets us 2-3 mins. at least it does for the aseprite project https://travis-ci.org/aseprite/aseprite
It would be useful to have both compilers anyway.
Just had an idea while preparing work stuff: What if we extract the paths of all commits in the push request and build bindings/plugins only if they are affected? e.g.
We still have the daily/twice a day full build on jenkins.
@manuelm good idea, @tom-wa would write such a script, can you create a new issue for this?
@mpranj: Reminder: add Mac OS X builds to travis and add mingw builds to PR. (*BSD seems to be more effort)
@markus2330 now i understand @manuelm docker approach, travis will not support ubuntu 16.04 till next year so docker is needed to get all dependencies that ubuntu 14.04 does not have = swig3.0 libsystemd-devel.
I'm sorry I couldn't attend the meeting today. At work we're still preparing a big software rollout today, so I can't leave the office. But within a short delay I can answer e-mails.
I've started to add OS X builds for travis 2 days ago: https://github.com/manuelm/libelektra/blob/e41ac43a18e5e9f9640a4042a313cc43f2704f65/.travis.yml Build is here: https://travis-ci.org/manuelm/libelektra/builds/130898079 Open things here:
I'm happy if anyone will assume my work from here. I don't have OS X and waiting for travis to inspect the OSX system sums up very fast.
re: docker: Yeah, travis default ubuntu version doesn't work well. Even cmake is too old. Fetching the uploaded docker image takes only about 3mins. And adding more images is a no brainer. So I think that's a nice way to workaround any pitfalls the default travis linux environment has (or might have after an update).
I haven't figured out a good way to integrate the different build and test phases of libelektra (cmake + make + make test) with docker (build + run) + travis (before_install, before_script, script). Docker containers exit after the command completes. Since docker containers are meant to be throw-away, you cannot resume afterwards. So your disk/compile state is vanished, unless you mount a local directory into the container. Will continue to work on docker next week.
@manuelm Great, you got further then we thought. Mac OS X for PRs and per commit would be really great. A lot of people are using Mac OS X now and I do not want to break the build for them again and again. In the meeting today @mpranj said he would pick up your work. Do you want to create a PR with the travis file?
This issue gives up-to-date information about the health of our build system.
Report here any permanent problems (that cannot be fixed by rerunning the build job). Temporary problems should be reported in #2967.
Current open issues for our Jenkins build system:
make uninstall
leaves a clean system, see #1244find . | grep -v '^[-_/.a-zA-Z0-9]*$'
see #1615Fixed issues:
elektra-gcc-configure-debian-optimizations
toelektra-gcc-configure-debian-no-optimizations
debian-wheezy-mr
anddebian-strech-mr