diff --git a/custom-jobs/krita/Krita_Stable_Appimage_Build.pipeline b/custom-jobs/krita/Krita_Stable_Appimage_Build.pipeline index a855f66..88db1ab 100644 --- a/custom-jobs/krita/Krita_Stable_Appimage_Build.pipeline +++ b/custom-jobs/krita/Krita_Stable_Appimage_Build.pipeline @@ -1,65 +1,65 @@ // Request a node to be allocated to us node( "Appimage1604" ) { // We want Timestamps on everything timestamps { // We want to catch any errors that occur to allow us to send out notifications (ie. emails) if needed catchError { // First Thing: Checkout Sources stage('Checkout Sources') { // Make sure we have a clean slate to begin with deleteDir() // Krita Code checkout changelog: true, poll: true, scm: [ $class: 'GitSCM', - branches: [[name: 'krita/4.1']], + branches: [[name: 'krita/4.2']], extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'krita/']], userRemoteConfigs: [[url: 'https://anongit.kde.org/krita']] ] } // Now retrieve the artifacts stage('Retrieving Dependencies') { // First we grab the artifacted dependencies built last time round copyArtifacts filter: 'krita-appimage-deps.tar, gmic_krita_qt-x86_64.appimage', projectName: 'Krita_Nightly_Appimage_Dependency_Build' // Now we unpack them sh """ mkdir -p $HOME/appimage-workspace/ cd $HOME/appimage-workspace/ tar -xf $WORKSPACE/krita-appimage-deps.tar """ } // Let's build Krita that we have everything we need stage('Building Krita') { // The first parameter to the script is where the scripts should work - which is our workspace in this case // Otherwise we leave everything in the hands of that script sh """ export PATH=$HOME/tools/bin/:$PATH krita/packaging/linux/appimage/build-krita.sh $HOME/appimage-workspace/ $WORKSPACE/krita/ """ } // Now we can generate the actual Appimages! stage('Generating Krita Appimage') { // The scripts handle everything here, so just run them sh """ export PATH=$HOME/tools/bin/:$PATH krita/packaging/linux/appimage/build-image.sh $HOME/appimage-workspace/ $WORKSPACE/krita/ mv $HOME/appimage-workspace/*.appimage $WORKSPACE/ """ } // Finally we capture the appimages for distribution to users stage('Capturing Appimages') { // We use Jenkins artifacts for this to save having to setup additional infrastructure archiveArtifacts artifacts: '*.appimage', onlyIfSuccessful: true } } } } diff --git a/custom-jobs/krita/Krita_Stable_Windows_Build.pipeline b/custom-jobs/krita/Krita_Stable_Windows_Build.pipeline index ca056c7..ac5a7de 100644 --- a/custom-jobs/krita/Krita_Stable_Windows_Build.pipeline +++ b/custom-jobs/krita/Krita_Stable_Windows_Build.pipeline @@ -1,107 +1,107 @@ // Request a node to be allocated to us node( "WindowsMingw" ) { // We want Timestamps on everything timestamps { // We want to catch any errors that occur to allow us to send out notifications (ie. emails) if needed catchError { // First Thing: Checkout Sources stage('Checkout Sources') { // Make sure we have a clean slate to begin with deleteDir() // Krita Code checkout changelog: true, poll: true, scm: [ $class: 'GitSCM', - branches: [[name: 'krita/4.1']], + branches: [[name: 'krita/4.2']], extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'krita/']], userRemoteConfigs: [[url: 'https://anongit.kde.org/krita']] ] } // Now retrieve the artifacts stage('Retrieving Dependencies') { // First we grab the artifacted dependencies built last time round copyArtifacts filter: 'krita-deps.zip', projectName: 'Krita_Nightly_Windows_Dependency_Build' // Now we unpack them bat """ mkdir C:\\Packaging\\KritaWS\\ cd C:\\Packaging\\KritaWS\\ C:\\Craft\\Krita\\windows-msvc2017_64-cl\\dev-utils\\bin\\7za.exe x "%WORKSPACE%\\krita-deps.zip" """ } // Now we can build Krita stage('Building Krita') { // Before we can do this we need to setup some environment variables to help guide the Krita scripts around // In particular it needs: // PATH set to guide it to CMake and to allow it to find Mingw (Git and Python are already in PATH as standard convention for these builders) // SEVENZIP_EXE set to guide it to 7-Zip's console utility. It's detection support doesn't work as our binary is named 7za.exe instead of the apparently standard 7z.exe // Then we can run it // We also set SIGNTOOL_SIGN_FLAGS which is used by the package signing script when invoking signtool.exe bat """ set PATH=C:/MingW/x86_64-7.3.0-posix-seh-rt_v5-rev0/mingw64/bin;C:/Craft/Krita/windows-msvc2017_64-cl/bin/;C:/Craft/Krita/windows-msvc2017_64-cl/dev-utils/bin/;%PATH% set SEVENZIP_EXE=C:/Craft/Krita/windows-msvc2017_64-cl/dev-utils/bin/7za.exe set GETTEXT_SEARCH_PATH=C:\\Craft\\Krita\\windows-msvc2017_64-cl\\bin cmd /c krita\\build-tools\\windows\\build.cmd --no-interactive --skip-deps --src-dir "%WORKSPACE%\\krita" --download-dir "%WORKSPACE%\\downloads" --krita-build-dir "%WORKSPACE%\\build" --deps-install-dir "C:\\Packaging\\KritaWS\\deps-install" --krita-install-dir "C:\\Packaging\\KritaWS\\krita-install" if errorlevel 1 exit /b %errorlevel% pushd krita for /f "tokens=* usebackq" %%a in (`git describe --dirty`) do ( set "PACKAGE_SUFFIX=%%a" ) popd set SIGNTOOL_SIGN_FLAGS=/v /n "K Desktop Environment e.V." /tr "http://timestamp.digicert.com" /td SHA256 /fd SHA256 cmd /c krita\\packaging\\windows\\package-complete.cmd --no-interactive --src-dir "%WORKSPACE%\\krita" --deps-install-dir "C:\\Packaging\\KritaWS\\deps-install" --krita-install-dir "C:\\Packaging\\KritaWS\\krita-install" --pre-zip-hook "%WORKSPACE%\\krita\\packaging\\windows\\sign-package.cmd" --package-name "krita-nightly-x64-%PACKAGE_SUFFIX%" if errorlevel 1 exit /b %errorlevel% """ } stage('Generating Installer') { // Let's build an installer! bat """ pushd krita for /f "tokens=* usebackq" %%a in (`git describe --dirty`) do ( set "PACKAGE_SUFFIX=%%a" ) popd set PATH=C:/MingW/x86_64-7.3.0-posix-seh-rt_v5-rev0/mingw64/bin;C:/Craft/Krita/windows-msvc2017_64-cl/bin/;C:/Craft/Krita/windows-msvc2017_64-cl/dev-utils/bin/;%PATH% set PACKAGE_NAME=krita-nightly-x64-%PACKAGE_SUFFIX% cd C:\\Packaging\\KritaWS mkdir installer cd installer cmake -DREMOVE_DEBUG=ON -DOUTPUT_FILEPATH="%WORKSPACE%\\%PACKAGE_NAME%-setup.exe" -DKRITA_PACKAGE_ROOT="%WORKSPACE%\\%PACKAGE_NAME%" -P "C:\\Packaging\\KritaWS\\krita-install\\MakeinstallerNsis.cmake" if errorlevel 1 exit /b 1 call "C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Auxiliary/Build/vcvars64.bat" set SIGNTOOL_SIGN_FLAGS=/v /n "K Desktop Environment e.V." /tr "http://timestamp.digicert.com" /td SHA256 /fd SHA256 signtool sign %SIGNTOOL_SIGN_FLAGS% "%WORKSPACE%\\%PACKAGE_NAME%-setup.exe" """ } // Now we capture them for use stage('Capturing Build') { // To do this we just ask Jenkins to capture the zip file as an artifact archiveArtifacts artifacts: 'krita-nightly-x64-*.zip, krita-nightly-*-setup.exe', onlyIfSuccessful: true } } // As the Windows Slaves are permanent ones, we erase the Workspace as the last thing we do deleteDir() // Same goes for the stable workspace that we use bat """ rmdir /s /q C:\\Packaging\\KritaWS\\ """ } }