first steps in CI integration #66

Merged
muellerr merged 8 commits from mohr_ci into develop 2021-07-29 16:45:12 +02:00
Owner

I added a Jenkinsbuild file and configured jenkins to act on it, also I added a webhook to trigger jenkins.

The Jenkinsfile is a minimal one to be expanded in the future:

  • Only building the q7s debug configuration
  • Binary deployment is not implemented as we are lacking a binary server
  • Compiler and rootfs are fetched from buggy, to be moved to the future binary server, which I think is a better location than the nextcloud (no login or public (eive-cloud is internet facing) share needed).
  • Docker build is not working as expected, also strategy as to when to build and which image tag to use is not finalized yet

As sometimes the build needs to be cleaned, there is a condition which triggers a clean when "cleanCI" is anywhere in the git commit message. It should also trigger a clean if cmake files changed, but this is untested as of now.

The Dockerfile was moved into automation/, I think this is a better place as it has not much to do with the sources. Also, docker is building faster if the directory is empty.
Right now, the docker image is ubuntu 20.04 LTS based, as I did not get an alpine based one to compile the obsw, size would be ~300MB smaller with alpine.
I'm using gcc 8.3 from https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz?revision=e09a1c45-0ed3-4a8e-b06b-db3978fd8d56&la=en&hash=93ED4444B8B3A812B893373B490B90BBB28FD2E3 and the rootfs from the eive-cloud.

I added a Jenkinsbuild file and configured jenkins to act on it, also I added a webhook to trigger jenkins. The Jenkinsfile is a minimal one to be expanded in the future: - Only building the q7s debug configuration - Binary deployment is not implemented as we are lacking a binary server - Compiler and rootfs are fetched from buggy, to be moved to the future binary server, which I think is a better location than the nextcloud (no login or public (eive-cloud is internet facing) share needed). - Docker build is not working as expected, also strategy as to when to build and which image tag to use is not finalized yet As sometimes the build needs to be cleaned, there is a condition which triggers a clean when "cleanCI" is anywhere in the git commit message. It should also trigger a clean if cmake files changed, but this is untested as of now. The Dockerfile was moved into automation/, I think this is a better place as it has not much to do with the sources. Also, docker is building faster if the directory is empty. Right now, the docker image is ubuntu 20.04 LTS based, as I did not get an alpine based one to compile the obsw, size would be ~300MB smaller with alpine. I'm using gcc 8.3 from https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz?revision=e09a1c45-0ed3-4a8e-b06b-db3978fd8d56&la=en&hash=93ED4444B8B3A812B893373B490B90BBB28FD2E3 and the rootfs from the eive-cloud.
mohr added 8 commits 2021-07-29 12:52:04 +02:00
EIVE/eive-obsw/pipeline/head There was a failure building this commit Details
6361fcb6bb
added Jenkinsfile, moved together with Dockerfile into automation folder
having the automation files in an empty folder accelerates docker build.
Also, I think these files are not related to the source code and as such should live in their own space
EIVE/eive-obsw/pipeline/head There was a failure building this commit Details
afb7a2008f
typo in Jenkinsfile
EIVE/eive-obsw/pipeline/head There was a failure building this commit Details
acaf87095a
forcing docker build
EIVE/eive-obsw/pipeline/head There was a failure building this commit Details
af6f24d668
forcing docker build #2
EIVE/eive-obsw/pipeline/head There was a failure building this commit Details
93fa82c413
copy pasted wrong cmake line
EIVE/eive-obsw/pipeline/head There was a failure building this commit Details
12be969ca2
jenkins seems to overwrite out PATH
EIVE/eive-obsw/pipeline/pr-develop This commit looks good Details
EIVE/eive-obsw/pipeline/head This commit looks good Details
4fbfbe8bb8
cleanCI
Author
Owner

Using a Jenkinsfile in the scm means that commiters can run arbitrary code on our buildserver, so please be cautious with untrusted changes to that file, for example from pull requests.
There is a safeguard that if the Jenkinsfile has been changed in an external pull request, jenkins will use the Jenkinsfile of the target branch to build the pull request, but as soon as you merge that pull request, the actual one will be used.

Using a Jenkinsfile in the scm means that commiters can run arbitrary code on our buildserver, so please be cautious with untrusted changes to that file, for example from pull requests. There is a safeguard that if the Jenkinsfile has been changed in an external pull request, jenkins will use the Jenkinsfile of the target branch to build the pull request, but as soon as you merge that pull request, the actual one will be used.
Author
Owner

this implements most of #39 with the docker build still open

this implements most of #39 with the docker build still open
muellerr approved these changes 2021-07-29 16:44:55 +02:00
muellerr merged commit c9da184b7f into develop 2021-07-29 16:45:12 +02:00
muellerr added this to the v1.6.0 milestone 2021-08-02 11:24:26 +02:00
muellerr added the
feature
label 2021-08-09 14:53:21 +02:00
mohr deleted branch mohr_ci 2022-01-26 14:42:09 +01:00
Sign in to join this conversation.
No description provided.