Changes between Version 212 and Version 213 of KDEProblems/KDEMacPortsCI/Status


Ignore:
Timestamp:
Sep 5, 2014, 10:58:10 PM (10 years ago)
Author:
mkae (Marko Käning)
Comment:

Restructuring the layout

Legend:

Unmodified
Added
Removed
Modified
  • KDEProblems/KDEMacPortsCI/Status

    v212 v213  
    22= Current status of setting up the CI system =
    33 
    4 This page shall describe what has to be done to get a KDE/CI system up and running on OSX. Partially this is achieved by using a few ports from MacPorts.
    5 
    6 
     4This page shall describe what has to be done to get a KDE/CI system up and running on an OSX host.
     5Partially this is achieved by using quite a few ports from MacPorts.
     6
     7
     8== Preparing the OSX host system ==
    79 
    8 == Start with a fresh Mavericks/MacPorts install ==
     10
     11=== Start with a fresh Mavericks/MacPorts install ===
    912
    1013Currently using the official MacPorts version 2.3.1 is recommended. To be on the safe side make sure your disk has about 60G space in total.
     
    2023
    2124
    22 == Getting a MacPorts-compatible bash environment ==
     25=== Getting a MacPorts-compatible bash environment ===
    2326
    2427Install ports for MacPorts' bash
     
    3033
    3134
    32 == Apple developer tools ==
     35=== Apple developer tools ===
    3336
    3437Install
     
    4144
    4245
    43 == Tools already present on OSX ==
     46=== Tools already present on OSX ===
    4447
    4548Some tools are already installed on OSX due to Xcode (like git, svn, ssh, rsync, make, clang etc.) they don't need to be installed via MacPorts for now.
     
    4851
    4952
    50 == Some more software supplied by MacPorts ==
     53=== Some more software supplied by MacPorts ===
    5154
    5255Install ports needed for the CI scripts as well as KF5:
     
    6164
    6265
    63 == Basic setup of CI system ==
     66== Setting up the CI system itself ==
     67
     68
     69
     70=== Basic setup of CI system ===
    6471
    6572In order to start building up a build slave for KDE's Jenkins-based CI system it is in principle needed to clone [http://quickgit.kde.org/?p=websites%2Fbuild-kde-org.git websites/build-kde-org], BUT further down it will become clear, that it is a good idea to track all changes to be made for websites/build-kde-org in a dedicated branch.
     
    8390
    8491
    85 == 1st step: Qt5 build ==
    86 
    87 
    88 === Prepare environment for Qt5 build ===
     92
     93=== SSH setup ===
     94
     95
     96Set up SSH for rsync access to build host:
     97{{{
     98$ cat ~/.ssh/config
     99Host build.kde.org
     100   Port 2022
     101$ ssh-keygen -C YOUR@EMAIL.ADDRESS       # <-- send your public SSH key to Ben Cooksley in order to get access to the build server
     102}}}
     103
     104
     105
     106
     107=== Helper bash scripts ===
     108
     109KDE's Jenkins-based CI system mainly makes use of these two python scripts:
     110{{{
     111tools/prepare-environment.py
     112tools/perform-build.py
     113}}}
     114
     115For qt5 they've further down been used in order to show the workflow. But in daily use it is more practical to consider some helper bash scripts which ease all actions needed to run project builds on an OSX/CI system for which there's not yet the Jenkins integration available.
     116
     117The various projects on the CI system have to be handled by replacing "PROJECT" with the project name of the corresponding framework or application:
     118{{{
     119$ python2.7 tools/prepare-environment.py --project PROJECT --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-builds/PROJECT
     120...
     121$ (cd ~/WC/KDECI-builds/PROJECT; git checkout jenkins)
     122...
     123$ python2.7 tools/perform-build.py --project PROJECT --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-builds/PROJECT
     124...
     125}}}
     126or alternatively by using [http://quickgit.kde.org/?p=clones%2Fwebsites%2Fbuild-kde-org%2Fkaning%2Fmp-osx-ci.git&a=tree&hb=f19d176025af233c22ac2e7170a8ff7e109289e7 helper bash scripts in ~/scripts/ present in the mp-osx-ci branch of the mp-osx-ci repository]
     127{{{
     128$ ./prepare.sh PROJECT
     129...
     130$ ./build.sh PROJECT
     131...
     132}}}
     133where {{{prepare.sh}}} takes care of creating the build directory if it is not yet existing as well as checks out the branch 'jenkins'. Alternatively one can combine these steps using:
     134{{{
     135$ ./install.sh PROJECT [rebuild]
     136}}}
     137The {{{'rebuild'}}} option can be used to trigger calling {{{build.sh}}} even if {{{prepare.sh}}} didn't signal any changes in the remote project repository.
     138
     139
     140
     141
     142=== 1st step: Qt5 build ===
     143
     144
     145==== Prepare environment for Qt5 build ====
    89146
    90147Install additional ports specific for Qt5 as well as KF5, set correct path to KDE-install directory in config/build/darwin-mavericks.cfg (note, some of the to-be-installed ports got already installed further up as dependencies for other tools, they're listed here to make the dependency on them explicit):
     
    110167
    111168
    112 === Set up build environment for Qt5  ===
     169==== Set up build environment for Qt5  ====
    113170
    114171It is '''required''' to build the debug version. Also make sure that all libs can be found by adding search paths, use "-dbus-linked" to make the [https://bugs.kde.org/show_bug.cgi?id=337140#c22 session bus work] and avoid inclusion of MacPorts' glib2:
     
    124181}}}
    125182
    126 Set up SSH for rsync access to build host, then start building Qt5:
    127 {{{
    128 $ cat ~/.ssh/config
    129 Host build.kde.org
    130    Port 2022
    131 $ ssh-keygen -C YOUR@EMAIL.ADDRESS       # <-- send your public SSH key to Ben Cooksley in order to get access to the build server
     183Start the qt5-build
     184{{{
    132185$ python2.7 tools/perform-build.py --project qt5 --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-builds/qt5
    133186...
     
    142195
    143196
    144 == Helper bash scripts ==
    145 
    146 KDE's Jenkins-based CI system mainly makes use of these two python scripts:
    147 {{{
    148 tools/prepare-environment.py
    149 tools/perform-build.py
    150 }}}
    151 
    152 For qt5 they've above been used in order to show the workflow. But in daily use it is more practical to consider some helper bash scripts which ease all actions needed to run project builds on an OSX/CI system for which there's not yet the Jenkins integration available.
    153 
    154 The various projects on the CI system have to be handled by replacing "PROJECT" with the project name of the corresponding framework or application:
    155 {{{
    156 $ python2.7 tools/prepare-environment.py --project PROJECT --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-builds/PROJECT
    157 ...
    158 $ (cd ~/WC/KDECI-builds/PROJECT; git checkout jenkins)
    159 ...
    160 $ python2.7 tools/perform-build.py --project PROJECT --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-builds/PROJECT
    161 ...
    162 }}}
    163 or alternatively by using [http://quickgit.kde.org/?p=clones%2Fwebsites%2Fbuild-kde-org%2Fkaning%2Fmp-osx-ci.git&a=tree&hb=f19d176025af233c22ac2e7170a8ff7e109289e7 helper bash scripts in ~/scripts/ present in the mp-osx-ci branch of the mp-osx-ci repository]
    164 {{{
    165 $ ./prepare.sh PROJECT
    166 ...
    167 $ ./build.sh PROJECT
    168 ...
    169 }}}
    170 where {{{prepare.sh}}} takes care of creating the build directory if it is not yet existing as well as checks out the branch 'jenkins'. Alternatively one can combine these steps using:
    171 {{{
    172 $ ./install.sh PROJECT [rebuild]
    173 }}}
    174 The {{{'rebuild'}}} option can be used to trigger calling {{{build.sh}}} even if {{{prepare.sh}}} didn't signal any changes in the remote project repository.
    175 
    176 
    177 == Installation of cmake ==
    178 
    179 Cmake needs a '''manual''' checkout of its sources (which is demonstrated here the explicit way again):
     197=== Installation of cmake ===
     198
     199CMake needs a '''manual''' checkout of its sources (which is demonstrated here the explicit way again):
    180200{{{
    181201$ python2.7 tools/prepare-environment.py --project cmake --branchGroup kf5-qt5 --platform darwin-mavericks --sources ~/WC/KDECI-builds/cmake
     
    193213
    194214
    195 == Setting up the build environment ==
     215=== Setting up the build environment ===
    196216
    197217The branch 'mp-osx-ci' contains all required configuration settings for OSX. The most important shall be pointed out [wiki:/KDEProblems/KDEMacPortsCI/Status/Diff_mp-osx-ci here]:
     
    214234
    215235
    216 == Installation of other projects and KDE frameworks ==
     236== Installation of KF5 frameworks and other projects ==
    217237
    218238Specific frameworks can be installed using {{{install.sh}}} , but one can also build all frameworks of a specific tier as a whole using
     
    241261
    242262
    243 == Troubleshooting for projects' dependencies ==
     263=== Troubleshooting for projects' dependencies ===
    244264
    245265[http://quickgit.kde.org/?p=kde-build-metadata.git Dependency data for the CI system] is being downloaded by ~/scripts/update-setup.sh to ~/scripts/dependencies/.
     
    251271
    252272
    253 == Notes concerning some files installed by the frameworks ==
     273=== Notes concerning some files installed by the frameworks ===
    254274
    255275All notes regarding the placement of certain files (apps, config, data, etc.) have been moved aside to a [wiki:/KDEProblems/KDEMacPortsCI/Status/FileLocations dedicated page] as the patching of Qt5's QStandardPaths is still work in progress.
     
    259279
    260280
    261 == KF5 software beyond the basic frameworks ==
     281=== KF5 software beyond the basic frameworks ===
    262282 
    263283Since the basic set of frameworks is now ready for use on OSX one can go ahead and start building other software depending on KF5.