Windows Slave.txt 4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
== Setup of a Windows Host:

-- Necessary Software:

1) Download Python 3.6 for Windows and install it system-wide (the installer has to be run with Administrator rights). Make sure you check the option to set PATH up.
2) Download Git for Windows, installing it system-wide as well, and also ensuring the option to set PATH up is also checked.
3) Download CMake for Windows, also install system-wide, and also ensure it sets up PATH too
4) Install Java from Oracle
5) Install MSVC 2017 Enterprise from Microsoft. Use your best judgement when making the selections - you want the Desktop / C++ / MVC Options
6) Install Qt from the Qt site. The default selections in terms of what you want it to drag down are correct. We are only interested in Desktop compilation (not Universal)

-- Setting up Python

The below will need to be run from an Elevated / Administrator prompt as we use a system-wide Python install

1) Use pip to install lxml and paramiko
2) Download the wheel for PyYAML from http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyyaml and use pip to install it
18
3) Change the following GPO to make sure Python can handle long paths: https://docs.python.org/3/using/windows.html#max-path
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65

-- Setting up Craft

1) Create C:\Craft
2) Clone git://anongit.kde.org/craft/ into this directory (you should now have C:\Craft\craft\
3) Create C:\Craft\etc\ and copy "kdesettings.ini" from the craft.git checkout there
4) Edit the newly copied kdesettings.ini as follows:
   Set the compiler to "msvc2015"
   Leave Native=False as is
   Set Python to where Python is installed. I ended up using: C:\PROGRA~2\Python36-32\ but your path may differ
   Set DownloadDir to C:\Craft\Download
   Comment UseNinja and MakeProgram as needed
   Set EMERGE_USE_SHORT_PATH to False
   Under [QtSDK]:
     Set Enabled to True
     Make Path match where you installed Qt (this was C:\Qt\ for me)
     The compiler should be "msvc2015_64"

Note: When you wish to install packages, ignore the Craft instructions to use Powershell, I never got it to find MSVC because it's environment script wasn't run
Fortunately the cmd/bat method still works fine, so you should launch the appropriate MSVC shell then run:
    cd C:\Craft\craft\
    call .\kdeenv.bat

After that you should be free to install packages as detailed below.
Craft will drag down it's own copies of Git, CMake, etc - just ignore those as they're harmless.

-- Setting up the Jenkins Slave connection

1) Run "control userpasswords2" and create an account for Jenkins agent to run as. Give it a password (note it for later)
2) Setup the agent on the Jenkins side, selecting a JNLP Webstart agent. I used C:\JenkinsWS\ for it's remote workspace 
   (keep the path short as Windows freaks out easily with path lengths)
3) Launch the agent
4) Select File -> Install as Windows Service.
   This is basically guaranteed to fail, however it does mean the necessary files have now been downloaded to the system.
   You can now close the agent you opened.
5) In an Elevated / Administrator command prompt, switch to the remote workspace specified earlier
   A file called "jenkins-slave.exe" should be present here.
   Run "jenkins-slave.exe install" to setup service based launching
6) Run "services.msc" and find the Jenkins Slave service (name will differ, always starts with Jenkins though)
   Open the service properties, and select the Logon tab.
   Fill in the details of the Jenkins user you created in Step 1 above and confirm.
   Windows will say that the user has been granted the ability to run as a service (or something equivalent) which is fine.

== Craft packages installed:

-- Please note which project it was installed for

Ben Cooksley's avatar
Ben Cooksley committed
66
jom (General CI System - Parallel Compilation)
67 68 69 70 71
libarchive (KArchive)
liblzma (KArchive)
gettext (KI18n)
gettext-tools (KI18n)
winflexbison (Solid)
72 73 74
libxslt (KDocTools)
docbook-dtd (KDocTools)
docbook-xsl (KDocTools)
75
gcrypt (KWallet)
76
pcre (KJS)
77 78 79 80
libpng (KHTML)
libjpeg-turbo (KHTML)
giflib (KHTML)
boost (KActivities)
Ben Cooksley's avatar
Ben Cooksley committed
81 82
gperf (KCodecs and KHTML)
docbook-dtd42 (KDELibs4Support)
Ben Cooksley's avatar
Ben Cooksley committed
83
lmdb (Baloo)
84
clang (KDevelop)
85
gsl (Labplot)