Giter VIP home page Giter VIP logo

conan's Introduction

Conan dependency building

Contains all configuration files for building IncludeOS dependencies. The build jobs in this repository are for 3rd party external dependencies in use by IncludeOS. They are uploaded as stable packages to includeos repository on bintray.

Creating/adding new build jobs

To create a new build job: Place a Jenkinsfile and a conanfile.py in the correct directory structure. The Jenkinsfile should contain:

  • Parameters that the dependency can be built with.

    • IMPORTANT: Make the choice parameter always have an empty item as the first choice. This is needed when initializing the jobs.
  • A stage that builds and calls the external For reference have a look at one of our structures.

  • A sample tree structure:

    example:

    conanfile: dependencies/musl/1.1.21/conanfile.py

    Jenkinsfile: dependencies/musl/Jenkinsfile

    So the tree would like:

      	- dependencies
      		- <dependency-name-dir>
      			- <semantic-version-number>
      				- conanfile.py
      			- Jenkinsfile
    

Job build Workflow

  1. Root Jenkinsfile: JobDSL to create 1 Unique build job pr dependency.
  2. Each dependency needs to have a Jenkinsfile and a conanfile.py
  3. Root Jenkinsfile: Scans the includeos/conan repo for all Jenkinsfiles excluding itself.

Any changes made to the Jenkinsfile requires the seed-job to be run and the scripts accepted by the admin before the jobs are built.

Dependency Workflow

The job pipeline for each dependency contains 2 stages:

  • Build
  • Upload

The jobs require a number of parameters;

  • Version: choose a version
  • Upload_channel: name a channel you would like to add/create package to
  • Profiles: available profile names are specified
  • Target_os:* currently available for: Macos or Linux. (can be left empty)
  • Target_architectures:* currently available for: x86_64 or x86 (can be left empty)
  • Build_types: Two available build types specified; Debug and Release

The Build step is capable of building a number of packages in parallel depending on the instance handling the builds.

The Upload step uploads the packages if the build step for all the packages specified is successful. The packages are uploaded to the includeos repository on bintray.

Note: For parameters marked with a [*], these settings are included in the Profiles, entering them via Jenkins job overwrites the profiles default values. Please have a look at the settings in the profile for build compatibility before attempting to change settings.

conan's People

Contributors

fwsgonzo avatar kristianjerpetjon avatar mnordsletten avatar staiyeba avatar

Watchers

 avatar  avatar

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.