2023-11-19 22:19:33 +03:00
fix
2023-11-19 22:19:33 +03:00
r
2023-11-15 19:05:30 +03:00
2023-11-15 18:48:30 +03:00

Helper class for Jenkins

This repo add functionality for automate building with platforms.json configuration.

Setup

You should add PLATFORMS_GIT environment to your Jenkins with url to git repo, which contains single platforms.json file.

Next you should register this library in Jenkins -> System settings -> Global Pipeline Libraries:

  • Library name: SHS.Platforms
  • Default version: master
  • Project Repository: https://git.shs.tools/SHS/jenkins_lib.git

API

org.SHS.Platforms Class:

  • get() - download and parse platforms.json file from PLATFORMS_GIT
  • root() - returns root JSON object of platforms.json
  • forEach(func, ...) - iterate over platforms, func is only mandatory parameter:
    • func - method to execute for each enabled platform, pass JSON element of current platform and optional CMake toolchain argument
    • stagePrefix - prefix string for stage
    • stageSuffix - suffix string for stage
    • whiteList - array of permitted names, ignored if empty
    • blackList - array of denied names, ignored if empty

whiteList and blackList are case-insensitive, and can be part of platform name

Usage

Simple:

@Library('SHS.Platforms') _
node {
    def pl = new org.SHS.Platforms(this)
    pl.get()
    pl.forEach ({ dist ->
        print("works in ${dist.docker_image}")
    })
}

With toolchain:

@Library('SHS.Platforms') _
node {
    def pl = new org.SHS.Platforms(this)
    pl.get()
    pl.forEach ({ dist, cmake_toolchain ->
        print("compile in ${dist.docker_image} with arg ${cmake_toolchain}")
    })
}

With filter:

@Library('SHS.Platforms') _
node {
    def pl = new org.SHS.Platforms(this)
    pl.get()
    pl.forEach ({ dist ->
			print("works in ${dist.docker_image}")
		},
		stagePrefix: "Build ",
		stageSuffix: " soft",
		whiteList: ["ubuntu", "debian", "osx"],
		blackList: ["20.04", "11"]
	)
}
Description
No description provided
Readme 69 KiB
Languages
Groovy 100%