Compare commits

...

58 Commits
1.4.1 ... main

Author SHA1 Message Date
Mr Jenkins d66262f1eb submodules: updated netmodule hashes, triggered by Jenkins (userId=downstream) 2022-06-09 12:36:30 +02:00
Mr Jenkins a34e053f01 submodules: updated netmodule hashes, triggered by Marc Mattmüller (userId=mattmueller) 2022-05-31 12:22:52 +02:00
Marc Mattmueller b54fdeff4b autorev-packages: remove wlconf-bin from AUTOREV list
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2022-05-24 16:18:48 +02:00
Marc Mattmueller e2d5290e3c autorev-packages: removed FGPA recipe from AUTOREV list
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2022-05-24 16:17:50 +02:00
Marc Mattmueller f1c5588914 autorev-packages.inc: added storage info to the list of autorev packages
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2022-05-23 15:05:40 +02:00
Alexandre Bard c42ad8d655 env: Add HW17 environment
BugzID: 77953
2022-05-05 15:54:46 +02:00
Mr Jenkins 10a2dff839 submodules: updated community hashes, triggered by Alexandre Bard (userId=bard) 2022-05-02 11:13:42 +02:00
Mr Jenkins 797c94d2df submodules: updated community hashes, triggered by Alexandre Bard (userId=bard) 2022-04-07 10:13:39 +02:00
Marc Mattmueller 1a4ec56472 autorev-packages: remove unused scripts from features repo
see appropriate branch in meta-netmmodule-distro

Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2022-03-21 10:55:51 +01:00
Marc Mattmueller 696db7ca10 ci/cd env: removed all jenkins files and src-rev scripts
The scripts and the pipelines are now located in the build
directory

BugzID: 78260
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2022-02-22 11:24:17 +01:00
Marc Mattmueller 7a078ecee0 Jenkinsfiles: adapted loading yocto environment before building
the yocto environment load path changes, i.e. to load the env for
an ostree image changed from '. ./env.image-ostree' to
'. ./env/distro/ostree-image'

Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2022-02-10 15:20:53 +01:00
Alexandre Bard 75b959e552 Improve environment files
With this changes it is possible to source from anywhere a machine or
distro file.

It is also cleaning all the environment files in the main directory.

As example, to load environment for HW21 and lava image for example the
following command can be used:

. env/distro/lava-image && . ../env/machine/hw21
2022-02-10 15:20:53 +01:00
Alexandre Bard 2f3120ccca conf: Use netmodules templateconf
These templates are shown when source openembedded build environment.
2022-02-10 09:30:01 +01:00
Mr Jenkins 7090550157 submodules: updated netmodule hashes, triggered by Jenkins (userId=downstream) 2022-02-08 21:46:18 +01:00
Mr Jenkins 7dd2298dde submodules: updated netmodule hashes, triggered by Jenkins (userId=downstream) 2022-01-10 17:39:20 +01:00
Mr Jenkins b46a3e72f1 submodules: updated community hashes, triggered by Alexandre Bard (userId=bard) 2021-12-29 15:45:44 +01:00
Marc Mattmueller a8c96aa206 jenkins/mmc: adapted for archiving armada bootloader artifacts
BugzID: 75924
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-12-14 12:32:53 +01:00
Marc Mattmueller 19e6acb19c jenkins: adapted clean build behavior
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-12-14 12:28:22 +01:00
Marc Mattmueller 0ebff0951e jenkins/sdk: added hw18 machine as preparation
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-12-13 15:53:02 +01:00
Marc Mattmueller 01fc39dd61 jenkins: added hw18 to the list of machines to build
BugzID: 75924
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-12-13 12:34:49 +01:00
Marc Mattmueller 413c6f554c jenkins: updated build discarder due to the additional images
The nightly build holds now 2x mmc and 1x ramdisk image for each
hw type. Thus the build discarder was updated.

Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-12-06 15:55:30 +01:00
Alexandre Bard e05c9765f0 Jenkinsfile_mmcImages: Fix building of vcu images with wrong env
The vcu image has its one environment because it has its own
distribution.
2021-12-03 17:49:55 +01:00
Marc Mattmueller f8f47c11fb jenkins-mmc: added image type vcu as IMG_TYPE parameter
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-12-02 13:13:47 +01:00
Marc Mattmueller 87e59c35ed jenkins mmc: fixed release-image builds
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-11-30 09:08:29 +01:00
Mr Jenkins d33d96c505 submodules: updated netmodule hashes, triggered by Jenkins (userId=downstream) 2021-11-09 18:06:42 +01:00
Marc Mattmueller 6b8a34bd85 jenkins/update2head: exclude bblayers.conf from automatic commit
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-11-09 16:07:51 +01:00
Marc Mattmueller 68c04583aa jenkins/update2head: use src rev update in same shell command
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-11-01 09:25:41 +01:00
Mr Jenkins 7c77ed4315 submodules: updated netmodule hashes, triggered by Marc Mattmüller (userId=mattmueller) 2021-11-01 09:24:38 +01:00
Marc Mattmueller c987422f62 local.conf: set parallel threads to 8 (server has now 8 vcpu's)
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-27 15:59:50 +02:00
Marc Mattmueller 01e8be71b0 jenkins: used credential ID of the belonging server
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-27 15:58:42 +02:00
Marc Mattmueller 526eb8729b jenkins/ramdisk/mmc: provide ssh credential for build
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-27 11:56:20 +02:00
Marc Mattmueller bc58edf65d local.conf: remove check of /tmp (space and inodes)
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-27 11:45:10 +02:00
Marc Mattmueller 071a721e80 jenkins/sdk: provide ssh credential for sdk build
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-27 11:44:55 +02:00
Marc Mattmueller 55ac1c7307 jenkins: provided ssh credentials from master for git commands
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-26 19:24:43 +02:00
Marc Mattmueller 6a56c05981 jenkins/common: made cleanWorkspace dash compatible
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-21 11:57:08 +02:00
Marc Mattmueller cd3de28e5b jenkins/sdk: increased timeout from 5 to 8 hours
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-19 08:04:03 +02:00
Marc Mattmueller ea6bd036e1 jenkins/ramdisk/mmc: added parameter to overwrite the build node
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-14 13:02:15 +02:00
Marc Mattmueller 969fa192e9 jenkins/common: reverted the rsync part but added the set +x
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-13 14:21:15 +02:00
Marc Mattmueller b2ea75f1b9 jenkins/common: used set +x to remove rsync log output
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-13 13:36:14 +02:00
Marc Mattmueller 6848564543 src-rev/jenkins: adapted src-rev to handle packages from a file
the file autorev-packages.inc holds holds all recipes with a
SRCREV set to AUTOREV.
When releasing this file shall be used as base which recipes to
update.

BugzID: 75209
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-13 13:17:37 +02:00
Marc Mattmueller 0704618e91 jenkins/update2head: fixed coding convention
the curly brackets shall be used even on if statements with
only one line

Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-13 13:17:37 +02:00
Marc Mattmueller f332dc9de8 autorev: added pathfile to autorevision list
As there might be multiple bb files which hold the same name, it
might be difficult in the future which one to set to AUTOREV. Thus
the list autorev-packages.inc was adapted with the path to the bb
file in the comment.

BugzID: 75209
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-13 13:17:37 +02:00
Marc Mattmueller 35cd165fd8 jenkins/common: set rsync to be quiet on jenkins output
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-13 12:32:37 +02:00
Marc Mattmueller 988558b95d jenkins/common: escaped $ from rsync command
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-13 08:37:35 +02:00
Marc Mattmueller d676264535 jenkins/common: replaced bash- to groovy comment sign
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-13 07:59:57 +02:00
Alexandre Bard e3cf8861d0 Jenkinsfile_Common: Reduce logs from rsync command
The "*" is expanded when the script is running on jenkins and the SRC is
local files. This expansion is hundreds of files, leading to hundreds of
lines in the jenkins logs. We don't need these lines.

BugzID: 75217
2021-10-12 15:53:59 +02:00
Marc Mattmueller 2ada8afbf8 jenkins/update2head/sdk: changed logrotator to 5 items to keep
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-12 14:26:44 +02:00
Marc Mattmueller fc4dd66c9f jenkins: added autorevision handling to mmc-, ramdisk and sdk pipelines
BugzID: 75209
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-12 11:58:35 +02:00
Marc Mattmueller e549b2b7fc jenkins: removed updating the source revisions
BugzID: 75209
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-12 11:45:53 +02:00
Marc Mattmueller c2f977f9fd local.conf: added autorev-packages file and included it in local.conf
BugzID: 75209
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-12 11:43:12 +02:00
Mr Jenkins 9ec3663642 submodules: updated community hashes, triggered by Alexandre Bard (userId=bard) 2021-10-11 14:12:51 +02:00
Alexandre Bard 0664961570 Jenkinsfile_update2head: Better display which layers are updated 2021-10-11 13:58:42 +02:00
Marc Mattmueller c459438f49 jenkins/common: put yocto env loading and src-rev handling in one command
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-11 13:13:19 +02:00
Marc Mattmueller 9fe49c131b jenkins/update2head: integrated updating source revisions
BugzID: 74523
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-11 09:26:12 +02:00
Marc Mattmueller 9b82e098ff src-rev-commit: added script to commit src rev changes
BugzID: 74523
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-11 09:26:12 +02:00
Marc Mattmueller 73fcaacfab jenkins/update2head: fixed typo
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-11 09:26:12 +02:00
Marc Mattmueller d50515c6d5 jenkins: added updating source revisions for nightly builds
BugzID: 74523
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-11 09:26:12 +02:00
Marc Mattmueller 85ca7a099e repo: added src-rev script to update source revisions
BugzID: 74523
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
2021-10-11 09:26:12 +02:00
44 changed files with 167 additions and 871 deletions

View File

@ -1,169 +0,0 @@
// common parts for yocto builds
// BUILD_DIR_POSTFIX needs to be defined in the job before
// loading this module
env.SHARED_BUILD = "${WORKSPACE}/build${env.BUILD_DIR_POSTFIX}"
env.BUILD_DEPLOY_DIR = "${env.SHARED_BUILD}/tmp/deploy/images"
env.BUILD_LICENSE_DIR = "${env.SHARED_BUILD}/tmp/deploy/licenses"
env.BUILD_HISTORY_DIR = "${env.SHARED_BUILD}/buildhistory"
env.DISTRO_VERSION_PATHNAME = "${env.SHARED_BUILD}/conf/distro_version.inc"
env.DOWNLOAD_DIR = "${WORKSPACE}/build-common/downloads"
env.BINARY_STORAGE_URL = "http://nmrepo.netmodule.intranet/src/yocto-downloads"
env.SUBMODULE_VERION_FILE = "submodule_revisions"
env.DISTRO_VERSION_FILE = "distro_version.inc"
env.AUTOREV_VERSION_FILE = "autorev_revisions.inc"
env.PACKAGE_NAME = "nm-os"
echo "loading common yocto build module..."
// Methods declared in external code are accessible
// directly from other code in the external file
// indirectly via the object created by the load operation
// eg. extcode.build(...)
def cleanWorkspace() {
println "cleaning workspace..."
sh "[[ -d \"${WORKSPACE}/build-common/sstate-cache\" ]] && find \"${WORKSPACE}/build-common/sstate-cache/\" -name \"sstate*\" -atime +3 -delete || true"
sh "[[ -d \"${env.SHARED_BUILD}/tmp/work\" ]] && find \"${env.SHARED_BUILD}/tmp/work/\" -name temp -type d -exec rm -rf {} + || true"
}
def isRelease(versionParam) {
if((versionParam == "") || (versionParam == "latest")) {
return false
}
return true
}
def handleSubmodules(versionParam) {
println "init submodules..."
sh 'git submodule update --init'
if(isRelease(versionParam)) {
println "set submodules to freezed state..."
sh 'git submodule update' // set all submodules to freezed commit
}
else {
println "setting netmodule submodule hashes to head..."
sh 'git submodule update --remote --rebase meta-netmodule-*' // update our own submodules to HEAD
}
submoduleStatus = sh(returnStdout: true, script: "git submodule status").trim() // print submodule hashes to jenkins log
println "${submoduleStatus}"
writeFile(file: "${env.SUBMODULE_VERION_FILE}", text: "${submoduleStatus}")
}
def getTopUpstreamBuildNumber() {
// Iterating though all upstream jobs:
// currentBuild.upstreamBuilds.each { item ->
// echo "upstream build: ${item}"
// def nbr = item.getNumber()
// echo "nbr=${nbr}"
// }
def upstreamJobList = currentBuild.upstreamBuilds
def nbrOfUpstreamJobs = upstreamJobList.size()
if (nbrOfUpstreamJobs == 0)
return 0;
def topJob = upstreamJobList[nbrOfUpstreamJobs-1]
println "Top upstream project: " + topJob.getFullDisplayName()
def topJobNbr = topJob.getNumber()
println "Top upstream job build Number = ${topJobNbr}"
return topJobNbr
}
def buildVersionString(imageType, actualBaseVersionString, versionParameter) {
// official release version
if(isRelease(versionParameter)) {
String newVersionStr = versionParameter
return newVersionStr
}
// SDK or FCT release
if((imageType == 'fct') || (imageType == 'sdk')) {
return actualBaseVersionString
}
// nightly/incremental release
def buildnbr = getTopUpstreamBuildNumber()
String nightlyPart = actualBaseVersionString + ".Test${buildnbr}"
return nightlyPart
}
def getVersionString(versionParam, imageType) {
sh 'git fetch -ap'
sh 'git fetch -t'
def gitCmd = "git describe --tags"
if(!isRelease(versionParam)) {
gitCmd = "${gitCmd} --dirty"
}
gitversion = sh(returnStdout: true, script: "${gitCmd}").trim()
String[] versionArr = "${gitversion}".split("-")
versionArr[0] = buildVersionString(imageType, versionArr[0], versionParam)
rlsVersion = versionArr.join("-")
return rlsVersion
}
def changeDistroVersion(versionString){
println "Set the distro version to ${versionString}..."
def versionTag = "DISTRO_VERSION = \"${versionString}\""
writeFile(file: "${env.DISTRO_VERSION_PATHNAME}", text: "${versionTag}")
sh(script: "cp ${env.DISTRO_VERSION_PATHNAME} ${env.DISTRO_VERSION_FILE}")
}
def cleanupDistroVersion() {
println "cleaning repository regarding distro version..."
sh(script:"git clean -f ${env.DISTRO_VERSION_PATHNAME}")
}
def archiveImages(imgageDir, imgType) {
dir ('tmp/artifacts') {
zip archive: true, dir: "${WORKSPACE}/${imgageDir}", glob: "*", zipFile: "${env.PACKAGE_NAME}-${env.BUILD_VERSION}-${params.MACHINE}-${imgType}.zip"
}
sh "rm -rf ${WORKSPACE}/tmp/artifacts"
}
def syncSources(src, dst) {
def hasSrcUrl = (src.contains("http"))
def from = src
def to = dst
// convert the URL into ssh syntax:
def url = (hasSrcUrl) ? src : dst
String[] repoParts = url.split("//")[1].split("/")
repoParts[0] = "build_user@" + repoParts[0] + ":/repo/repo"
sshSrc = repoParts.join("/")
if(hasSrcUrl) {
println "getting data from server..."
from = sshSrc
sh(script: "bash -c \"mkdir -p ${to}\"")
}
else {
println "putting data to server..."
to = sshSrc
}
sshagent (credentials: ['7767e711-08a4-4c71-b080-197253dd7392']) {
sh "rsync -q -auvz --ignore-existing -e \"ssh\" ${from}/* ${to}"
}
}
def getAutoRevHashes(envType) {
def env = "${envType}" == "" ? "" : "-${envType}"
def revs = sh(returnStdout: true, script: "bash -c \". ./env.image${env} > /dev/null && buildhistory-collect-srcrevs\"").trim()
return revs
}
// !!Important Boilerplate!!
// The external code must return it's contents as an object
return this;

View File

@ -1,153 +0,0 @@
// Loading code requires a NODE context
// But we want the code accessible outside the node Context
// So declare yoctocommon (object created by the LOAD operation) outside the Node block.
def yoctocommon
// declarative pipeline
pipeline {
agent {
node {
label 'oem-ci'
}
}
parameters {
choice(name: 'MACHINE', choices: ['select...', 'am335x-nrhw20', 'am335x-nmhw21', 'imx8-nmhw23', 'am335x-nmhw24', 'am335x-hw25', 'am335x-hw26'], description: 'choose target platform')
choice(name: 'IMAGE_TYPE', choices: ['lava', 'fct', 'minimal'], description: 'choose image type')
string(name: 'RLS_VERSION', defaultValue: '', description: 'Set the version to build and use committed submodules')
booleanParam(name: 'CLEAN_BUILD', defaultValue: false, description: 'clean all temp directories before build starts')
}
environment {
IMG_OUTPUT_DIR = "tmp/build-output"
}
options {
timeout(time: 5, unit: 'HOURS')
buildDiscarder(
logRotator(numToKeepStr: '50',
daysToKeepStr: '7',
artifactNumToKeepStr: '50',
artifactDaysToKeepStr: '7'
)
)
disableConcurrentBuilds()
}
stages {
stage('prepare') {
steps {
script {
if("${params.MACHINE}" == "select...") {
currentBuild.result = 'ABORTED'
error("Missing machine type --> select parameter MACHINE for a proper build")
}
// this definition is needed for selecting the
// correct build directory
env.BUILD_DIR_POSTFIX = "${params.IMAGE_TYPE}" == "lava" ? "-fct" : "-${params.IMAGE_TYPE}"
// load yocto common file
env.ROOTDIR = pwd()
yoctocommon = load "${env.ROOTDIR}/Jenkinsfile_Common"
// clean-up no longer needed packages
yoctocommon.cleanWorkspace()
// Prepare Build Environment
env.YOCTO_DEPLOYS = "${env.BUILD_DEPLOY_DIR}/${params.MACHINE}"
yoctocommon.handleSubmodules("${params.RLS_VERSION}")
version = yoctocommon.getVersionString("${params.RLS_VERSION}", "${params.IMAGE_TYPE}")
env.BUILD_VERSION = "${version}"
currentBuild.displayName = "${version}-${params.MACHINE}-${params.IMAGE_TYPE}" //replace Bitbake timestamp after building
printJobParameters()
yoctocommon.changeDistroVersion("${version}")
yoctocommon.syncSources("${env.BINARY_STORAGE_URL}", "${env.DOWNLOAD_DIR}")
}
writeFile file: 'VERSION', text: "${env.PACKAGE_NAME}: ${env.BUILD_VERSION}"
}
}
stage('clean') {
when { expression { return params.CLEAN_BUILD } }
steps {
dir ("${env.SHARED_BUILD}/tmp") { deleteDir() }
dir ("${env.SHARED_BUILD}/tmp-glibc") { deleteDir() }
}
}
stage('build') {
steps {
script {
build(params.IMAGE_TYPE, params.IMAGE_TYPE)
createArchive(params.IMAGE_TYPE, env.IMG_OUTPUT_DIR)
yoctocommon.archiveImages(env.IMG_OUTPUT_DIR, params.IMAGE_TYPE)
sh "rm -rf ${IMG_OUTPUT_DIR}"
}
}
post {
always {
script {
yoctocommon.syncSources("${env.DOWNLOAD_DIR}", "${env.BINARY_STORAGE_URL}")
}
}
}
}
stage('collect versions') {
steps {
script {
revisions = yoctocommon.getAutoRevHashes(params.IMAGE_TYPE)
writeFile(file: "${env.AUTOREV_VERSION_FILE}", text: "${revisions}")
}
}
post {
success {
archiveArtifacts(artifacts: "${env.SUBMODULE_VERION_FILE}, ${env.AUTOREV_VERSION_FILE}, ${env.DISTRO_VERSION_FILE}", onlyIfSuccessful: false)
}
}
}
} // stages
}
def printJobParameters() {
println "----------------------------------\n\
Job Parameters:\n\
----------------------------------\n\
MACHINE = ${params.MACHINE}\n\
IMAGE_TYPE = ${params.IMAGE_TYPE}\n\
CLEAN_BUILD = ${params.CLEAN_BUILD}\n\
RLS_VERSION = ${params.RLS_VERSION}\n\
--> version = ${env.BUILD_VERSION}\n\
----------------------------------\n"
}
def build(envType, imgType) {
def envPostFix = "${envType}" == "" ? "" : "-${envType}"
sh "bash -c '. ./env.image${envPostFix} > /dev/null && bitbake -q -k virtual/netmodule-image'"
}
def createArchive(imgType, outputDir) {
def imgTypePostfix = "${imgType}" == "" ? "" : "-${imgType}"
dir (outputDir) {
def image_basename = "netmodule-linux-image${imgTypePostfix}-${params.MACHINE}"
def basename_built = "${env.YOCTO_DEPLOYS}/${image_basename}"
def basename_archive = "./image${imgTypePostfix}-${params.MACHINE}"
sh "cp ${basename_built}.manifest ${basename_archive}.manifest"
sh "bash -c '${WORKSPACE}/openembedded-core/scripts/buildhistory-collect-srcrevs -p ${env.BUILD_HISTORY_DIR} > srcrev-${params.MACHINE}${imgTypePostfix}.inc'"
sh label: 'Copy License Manifest', returnStatus: true, script: """
LATEST_LICENSE_DIR=\$(ls -Artd ${env.BUILD_LICENSE_DIR}/netmodule-linux-image${imgTypePostfix}* | tail -n 1)
cp \$LATEST_LICENSE_DIR/license.manifest ${basename_archive}_license.manifest
"""
sh "cp ${env.YOCTO_DEPLOYS}/fitImage-${image_basename}-${params.MACHINE} fitImage-${image_basename}"
sh "cp ${basename_built}.cpio.gz ${basename_archive}.cpio.gz"
}
}

View File

@ -1,216 +0,0 @@
// Loading code requires a NODE context
// But we want the code accessible outside the node Context
// So declare yoctocommon (object created by the LOAD operation) outside the Node block.
def yoctocommon
// declarative pipeline
pipeline {
agent {
node {
label 'oem-ci'
}
}
parameters {
choice(name: 'MACHINE', choices: ['select...', 'am335x-nrhw20', 'am335x-nmhw21', 'imx8-nmhw23', 'am335x-nmhw24', 'am335x-hw25', 'am335x-hw26'], description: 'choose target platform')
choice(name: 'IMAGE_TYPE', choices: ['dev', 'bootloader', 'release'], description: 'choose image type')
string(name: 'RLS_VERSION', defaultValue: '', description: 'Set the version to build and use committed submodules')
booleanParam(name: 'CLEAN_BUILD', defaultValue: false, description: 'clean all temp directories before build starts')
}
environment {
WORK_DIR = "tmp"
IMG_OUTPUT_DIR = "${WORK_DIR}/build-output"
}
options {
timeout(time: 5, unit: 'HOURS')
buildDiscarder(
logRotator(numToKeepStr: '50',
daysToKeepStr: '7',
artifactNumToKeepStr: '50',
artifactDaysToKeepStr: '7'
)
)
disableConcurrentBuilds()
}
stages {
stage('prepare') {
steps {
script {
if("${params.MACHINE}" == "select...") {
currentBuild.result = 'ABORTED'
error("Missing machine type --> select parameter MACHINE for a proper build")
}
cleanLeftOvers(env.IMG_OUTPUT_DIR)
// this definition is needed for selecting the
// correct build directory
env.BUILD_DIR_POSTFIX = ""
// load yocto common file
env.ROOTDIR = pwd()
yoctocommon = load "${env.ROOTDIR}/Jenkinsfile_Common"
// clean-up no longer needed packages
yoctocommon.cleanWorkspace()
// Prepare Build Environment
env.YOCTO_DEPLOYS = "${env.BUILD_DEPLOY_DIR}/${params.MACHINE}"
yoctocommon.handleSubmodules("${params.RLS_VERSION}")
version = yoctocommon.getVersionString("${params.RLS_VERSION}", "${params.IMAGE_TYPE}")
env.BUILD_VERSION = "${version}"
currentBuild.displayName = "${version}-${params.MACHINE}-${params.IMAGE_TYPE}" //replace Bitbake timestamp after building
printJobParameters()
yoctocommon.changeDistroVersion("${version}")
yoctocommon.syncSources("${env.BINARY_STORAGE_URL}", "${env.DOWNLOAD_DIR}")
}
writeFile file: 'VERSION', text: "${env.PACKAGE_NAME}: ${env.BUILD_VERSION}"
}
}
stage('clean') {
when { expression { return params.CLEAN_BUILD } }
steps {
dir ("${SHARED_BUILD}/tmp") { deleteDir() }
dir ("${SHARED_BUILD}/tmp-glibc") { deleteDir() }
}
}
stage('build') {
steps {
script {
build(params.IMAGE_TYPE)
// archive a bootloader package:
// the bootloader is also built with the dev image, hence we combine it
def isBootLoaderOnly = (params.IMAGE_TYPE == 'bootloader').toBoolean()
if(isBootLoaderOnly || (params.IMAGE_TYPE == 'dev')) {
createBslPackage(env.IMG_OUTPUT_DIR, params.MACHINE)
archivePackage(yoctocommon, env.IMG_OUTPUT_DIR, 'bootloader', !isBootLoaderOnly)
}
// archive an image package:
// skip for bootloader only builds
if(!isBootLoaderOnly) {
createImagePackage(params.IMAGE_TYPE, env.IMG_OUTPUT_DIR)
archiveOSTreeArtifact(env.IMG_OUTPUT_DIR)
archivePackage(yoctocommon, env.IMG_OUTPUT_DIR, params.IMAGE_TYPE, false)
}
}
}
post {
always {
script {
cleanLeftOvers(env.WORK_DIR)
yoctocommon.syncSources("${env.DOWNLOAD_DIR}", "${env.BINARY_STORAGE_URL}")
}
}
}
}
stage('collect versions') {
steps {
script {
revisions = yoctocommon.getAutoRevHashes('ostree')
writeFile(file: "${env.AUTOREV_VERSION_FILE}", text: "${revisions}")
}
}
post {
success {
archiveArtifacts(artifacts: "${env.SUBMODULE_VERION_FILE}, ${env.AUTOREV_VERSION_FILE}, ${env.DISTRO_VERSION_FILE}", onlyIfSuccessful: false)
}
}
}
} // stages
}
//-----------------------------------------------------------------------------
def printJobParameters() {
println "----------------------------------\n\
Job Parameters:\n\
----------------------------------\n\
MACHINE = ${params.MACHINE}\n\
IMAGE_TYPE = ${params.IMAGE_TYPE}\n\
CLEAN_BUILD = ${params.CLEAN_BUILD}\n\
RLS_VERSION = ${params.RLS_VERSION}\n\
--> version = ${env.BUILD_VERSION}\n\
----------------------------------\n"
}
//-----------------------------------------------------------------------------
def cleanLeftOvers(cleaningDir) {
sh "rm -rf ${cleaningDir}"
}
//-----------------------------------------------------------------------------
def build(imgType) {
def tgtImgType = "${imgType}" == "bootloader" ? "dev" : "${imgType}"
def imgTypePostfix = "${tgtImgType}" == "" ? "" : "-${tgtImgType}"
sh "bash -c '. ./env.image-ostree > /dev/null && bitbake -q -k netmodule-linux-image${imgTypePostfix}'"
}
//-----------------------------------------------------------------------------
def createBslPackage(outputDir, machine) {
dir(outputDir) {
String machineStr = machine
String[] machineArr = machineStr.split('-')
println "get bootloader artifacts for package..."
if(machineArr[0] == 'imx8') {
sh "cp ${env.YOCTO_DEPLOYS}/imx-boot ."
sh "cp ${env.YOCTO_DEPLOYS}/imx-boot.sd ."
}
else {
sh "cp ${env.YOCTO_DEPLOYS}/*u-boot-${params.MACHINE}*.img ."
sh "cp ${env.YOCTO_DEPLOYS}/*u-boot-${params.MACHINE}*.xmodem.bin ."
}
}
}
//-----------------------------------------------------------------------------
def createImagePackage(imgType, outputDir) {
dir (outputDir) {
println "get image artifacts for package..."
def imgTypePostfix = "${imgType}" == "" ? "" : "-${imgType}"
def image_basename = "netmodule-linux-image${imgTypePostfix}-${params.MACHINE}"
def basename_built = "${env.YOCTO_DEPLOYS}/${image_basename}"
def basename_archive = "./image${imgTypePostfix}-${params.MACHINE}"
sh "cp ${basename_built}.manifest ${basename_archive}.manifest"
sh "bash -c '${WORKSPACE}/openembedded-core/scripts/buildhistory-collect-srcrevs -p ${env.BUILD_HISTORY_DIR} > srcrev-${params.MACHINE}${imgTypePostfix}.inc'"
sh label: 'Copy License Manifest', returnStatus: true, script: """
LATEST_LICENSE_DIR=\$(ls -Artd ${env.BUILD_LICENSE_DIR}/netmodule-linux-image${imgTypePostfix}* | tail -n 1)
cp \$LATEST_LICENSE_DIR/license.manifest ${basename_archive}_license.manifest
"""
sh label: 'Copy initramfs License Manifest', returnStatus: true, script: """
LATEST_LICENSE_DIR=\$(ls -Artd ${env.BUILD_LICENSE_DIR}/initramfs-ostree-image-${params.MACHINE}-* | tail -n 1)
cp \$LATEST_LICENSE_DIR/license.manifest initramfs-ostree-image_license.manifest
"""
sh "cp ${basename_built}.ota-ext4 ${basename_archive}.ota-ext4"
sh "cp ${basename_built}.wic ${basename_archive}.wic"
sh "tar czf ./ostree_repo${imgTypePostfix}.tar.gz -C ${env.YOCTO_DEPLOYS}/ostree_repo ."
}
}
//-----------------------------------------------------------------------------
def archivePackage(yoctocommon, pkgDir, imgType, doCleanPkgDir) {
yoctocommon.archiveImages(pkgDir, imgType)
if(doCleanPkgDir) {
println "cleaning pkgDir..."
sh "rm -rf ./${pkgDir}/*"
}
}
//-----------------------------------------------------------------------------
def archiveOSTreeArtifact(outputDir) {
archiveArtifacts artifacts: "${outputDir}/ostree_repo*.tar.gz", onlyIfSuccessful: true
sh "rm -f ./${outputDir}/ostree_repo*.tar.gz"
}

View File

@ -1,159 +0,0 @@
// Loading code requires a NODE context
// But we want the code accessible outside the node Context
// So declare yoctocommon (object created by the LOAD operation) outside the Node block.
def yoctocommon
// declarative pipeline
pipeline {
agent {
node {
label "${params.NODE_NAME}"
}
}
parameters {
choice(name: 'MACHINE', choices: ['select...', 'am335x-nrhw20', 'am335x-nmhw21', 'imx8-nmhw23', 'am335x-nmhw24', 'am335x-hw25', 'am335x-hw26'], description: 'choose target platform')
string(name: 'RLS_VERSION', defaultValue: '', description: 'Set the version to build and use committed submodules')
string(name: 'NODE_NAME', defaultValue: 'oem-ci', description: 'Enter a specific node name')
booleanParam(name: 'CLEAN_BUILD', defaultValue: false, description: 'clean all temp directories before build starts')
booleanParam(name: 'BUILD_FROM_DEV_IMAGE', defaultValue: false, description: 'build SDK from dev image')
}
environment {
// SDK Build Parameter (default is recipe netmodule-linux-sdk)
IS_NM_LINUX_SDK = "${!params.BUILD_FROM_DEV_IMAGE}"
}
options {
timeout(time: 5, unit: 'HOURS')
buildDiscarder(
logRotator(numToKeepStr: '5',
daysToKeepStr: '5',
artifactNumToKeepStr: '5',
artifactDaysToKeepStr: '5'
)
)
}
stages {
stage('prepare') {
steps {
script {
if("${params.MACHINE}" == "select...") {
currentBuild.result = 'ABORTED'
error("Missing machine type --> select parameter MACHINE for a proper build")
}
// this definition is needed for selecting the
// correct build directory
env.BUILD_DIR_POSTFIX = ""
// load yocto common file
env.ROOTDIR = pwd()
yoctocommon = load "${env.ROOTDIR}/Jenkinsfile_Common"
// clean-up no longer needed packages
yoctocommon.cleanWorkspace()
// Prepare Build Environment
env.YOCTO_DEPLOYS = "${env.SHARED_BUILD}/tmp/deploy/sdk"
yoctocommon.handleSubmodules("${params.RLS_VERSION}")
cleanLastBuildArtifacts()
version = yoctocommon.getVersionString("${params.RLS_VERSION}", "sdk")
env.BUILD_VERSION = "${version}"
currentBuild.displayName = "${version}-${params.MACHINE}-sdk" //replace Bitbake timestamp after building
printJobParameters()
yoctocommon.changeDistroVersion("${version}")
yoctocommon.syncSources("${env.BINARY_STORAGE_URL}", "${env.DOWNLOAD_DIR}")
}
writeFile file: 'VERSION', text: "${env.PACKAGE_NAME}: ${env.BUILD_VERSION}"
}
}
stage('clean') {
when { expression { return params.CLEAN_BUILD } }
steps {
dir ("${SHARED_BUILD}/tmp") { deleteDir() }
dir ("${SHARED_BUILD}/tmp-glibc") { deleteDir() }
}
}
stage('build') {
steps {
script {
if(env.IS_NM_LINUX_SDK.toBoolean()) {
sh "bash -c '. ./env.image-ostree && bitbake -q netmodule-linux-sdk'"
}
else {
sh "bash -c '. ./env.image-ostree && bitbake -q -fc populate_sdk netmodule-linux-image-dev'"
}
}
}
post {
success {
script{
deploySdkToArtifactory(params.BUILD_FROM_DEV_IMAGE, "${params.MACHINE}")
}
} // success
always {
script {
yoctocommon.syncSources("${env.DOWNLOAD_DIR}", "${env.BINARY_STORAGE_URL}")
}
} // always
}
}
} // stages
}
def printJobParameters() {
println "----------------------------------\n\
Job Parameters:\n\
----------------------------------\n\
MACHINE = ${params.MACHINE}\n\
CLEAN_BUILD = ${params.CLEAN_BUILD}\n\
IS_NM_LINUX_SDK = ${env.IS_NM_LINUX_SDK}\n\
RLS_VERSION = ${params.RLS_VERSION}\n\
--> version = ${env.BUILD_VERSION}\n\
----------------------------------\n"
}
def cleanLastBuildArtifacts() {
println "cleaning artifacts from last build..."
sh "rm -f ${env.YOCTO_DEPLOYS}/*"
sh "bash -c 'git fetch -ap'"
sh "bash -c '. ./env.image-ostree > /dev/null && bitbake -q -c cleanall netmodule-linux-sdk'"
}
def deploySdkToArtifactory(isBuildFromDev, machine) {
def cpuType = machine.split("-")[0]
def sdkArtifact = sh(returnStdout: true, script: "ls ${env.YOCTO_DEPLOYS}/netmodule-linux-ostree*-netmodule-linux-*.sh").trim()
if(isBuildFromDev) {
def jenkinsBaseUrl = "https://jenkins.netmodule.intranet"
def workspaceUrl = "${jenkinsBaseUrl}/job/NMOS/job/build-sdk/job/${env.BRANCH_NAME}/${currentBuild.number}/execution/node/3/ws/build/tmp/deploy/sdk"
def artifactFile = sh(returnStdout: true, script: "basename ${sdkArtifact}")
println "Download link of image-sdk (cpuType=${cpuType}): ${workspaceUrl}/${artifactFile}"
return
}
println "Deploying ${sdkArtifact} (cpuType=${cpuType}) to NEXUS..."
nexusArtifactUploader(
nexusVersion: "nexus3",
protocol: "https",
nexusUrl: "repo.netmodule.intranet:443",
groupId: "nm.sdk",
version: "latest",
repository: "nm-os",
credentialsId: "0099cd5a-81d4-4698-9b55-1206895d19fb",
artifacts: [
[artifactId: "${cpuType}",
classifier: "",
file: "${sdkArtifact}",
type: "sh"]
]
);
}

View File

@ -1,116 +0,0 @@
// declarative pipeline
pipeline {
agent {
node {
label 'oem-linux'
}
}
parameters {
booleanParam(name: 'UPDATE_NM_PARTS', defaultValue: true, description: 'update the netmodule submodules')
booleanParam(name: 'UPDATE_COMMUNITY_PARTS', defaultValue: false, description: 'update the the community submodules')
}
environment {
SUBMODULE_VERION_FILE = "submodule_revisions"
}
options {
timeout(time: 1, unit: 'HOURS')
buildDiscarder(
logRotator(numToKeepStr: '5',
daysToKeepStr: '5',
artifactNumToKeepStr: '5',
artifactDaysToKeepStr: '5'
)
)
disableConcurrentBuilds()
}
stages {
stage('prepare') {
steps {
script {
printJobParameters()
prepareUpdate()
}
}
}
stage('update to head') {
steps {
script {
updateSubmodules(params.UPDATE_NM_PARTS, params.UPDATE_COMMUNITY_PARTS)
}
}
post {
success {
archiveArtifacts(artifacts: "${env.SUBMODULE_VERION_FILE}", onlyIfSuccessful: false)
sh "rm -f ${env.SUBMODULE_VERION_FILE}"
}
}
}
stage('commit') {
steps {
commitChanges(params.UPDATE_NM_PARTS, params.UPDATE_COMMUNITY_PARTS)
}
}
} // stages
}
def printJobParameters() {
println "----------------------------------\n\
Job Parameters:\n\
----------------------------------\n\
UPDATE_NM_PARTS = ${params.UPDATE_NM_PARTS}\n\
UPDATE_COMMUNITY_PARTS = ${params.UPDATE_COMMUNITY_PARTS}\n\
----------------------------------\n"
}
def prepareUpdate() {
sh 'git submodule update --init' // init submodules used if first checkout
def userId = "${currentBuild.getBuildCauses()[0].userId}"
def userName = "${currentBuild.getBuildCauses()[0].userName}"
if("${userId}" == "null") {
userId = "downstream"
userName = "Jenkins"
}
env.TRIGGERED_USER = "${userName} (userId=${userId})"
def notNmUpdate = "${!params.UPDATE_NM_PARTS}"
def notCommunityUpdate = "${!params.UPDATE_COMMUNITY_PARTS}"
if(notNmUpdate.toBoolean() && notCommunityUpdate.toBoolean()) {
error("Nothing to update selected - both parameters are false")
}
}
def updateSubmodules(isNmUpdate, isCommunityUpdate) {
if(isNmUpdate) {
sh(script: "git submodule update --remote --rebase meta-netmodule-*")
}
if(isCommunityUpdate) {
sh(script: "git submodule update --remote --rebase \$(git submodule status | grep -v \"meta-netmodule-*\" | sed 's/^ *//g' | cut -d' ' -f2)")
}
submoduleStatus = sh(returnStdout: true, script: "git submodule status").trim() // print submodule hashes to jenkins log
println "${submoduleStatus}"
writeFile(file: "${env.SUBMODULE_VERION_FILE}", text: "${submoduleStatus}")
}
def commitChanges(isNmUpdate, isCommunityUpdate) {
String updatedLayers = ""
if(isNmUpdate) { updatedLayers += "netmodule"}
if(isNmUpdate && isCommunityUpdate) { updatedLayers += " and " }
if(isCommunityUpdate) { updatedLayers += "community" }
sh(script: "git checkout ${env.BRANCH_NAME}")
sh(script: "git add -u")
stagedData = sh(returnStdout: true, script: "git diff --cached").trim()
if("${stagedData}" == "") {
println "everything up to date, nothing to commit"
return
}
sh(script: "git commit -m \"submodules: updated ${updatedLayers} hashes, triggered by ${env.TRIGGERED_USER}\" && git push")
}

54
autorev-packages.inc Normal file
View File

@ -0,0 +1,54 @@
#./meta-netmodule-bsp/recipes-kernel/ssc-sysstate-driver/ssc-sysstate-driver_git.bb
SRCREV_ssc-sysstate-driver = "${AUTOREV}"
#./meta-netmodule-bsp/recipes-kernel/ssc-broker-driver/ssc-broker-driver_git.bb
SRCREV_ssc-broker-driver = "${AUTOREV}"
#./meta-netmodule-bsp/recipes-kernel/ssc-extmod-driver/ssc-extmod-driver_git.bb
SRCREV_ssc-extmod-driver = "${AUTOREV}"
#./meta-netmodule-bsp/recipes-kernel/dt-overlay/dt-overlay_1.0.bb
SRCREV_dt-overlay = "${AUTOREV}"
#./meta-netmodule-bsp/recipes-kernel/linux/linux-netmodule_git.bb
SRCREV_linux-netmodule = "${AUTOREV}"
#./meta-netmodule-bsp/recipes-connectivity/nmubxlib/nmubxlib.bb
SRCREV_nmubxlib = "${AUTOREV}"
#./meta-netmodule-bsp/recipes-connectivity/gnss-mgr/gnss-mgr.bb
SRCREV_gnss-mgr = "${AUTOREV}"
#./meta-netmodule-bsp/recipes-connectivity/wwan-config/wwan-config.bb
SRCREV_wwan-config = "${AUTOREV}"
#./meta-netmodule-bsp/recipes-connectivity/modemmanager/modemmanager_git.bb
SRCREV_modemmanager = "${AUTOREV}"
#./meta-netmodule-bsp/recipes-bsp/bootloader-config/bootloader-config.bb
SRCREV_bootloader-config = "${AUTOREV}"
#./meta-netmodule-bsp/freescale/recipes-imx/imx-atf/imx-atf_1.5.0.bb
SRCREV_imx-atf = "${AUTOREV}"
#./meta-netmodule-bsp/recipes-bsp/u-boot/u-boot-imx8-nmhw23_git.bb
SRCREV_u-boot-imx8-nmhw23 = "${AUTOREV}"
#./meta-netmodule-bsp/recipes-bsp/u-boot/u-boot-armada_git.bb
SRCREV_u-boot-armada = "${AUTOREV}"
#./meta-netmodule-bsp/recipes-bsp/u-boot/u-boot-ti33x_git.bb
SRCREV_u-boot-ti33x = "${AUTOREV}"
#./meta-netmodule-bsp/recipes-core/udev/udev-rules-nmhw_git.bb
SRCREV_udev-rules-nmhw = "${AUTOREV}"
#./meta-netmodule-distro/recipes-tools/nmhw-fwupdate/nmhw-fwupdate.bb
SRCREV_nmhw-fwupdate = "${AUTOREV}"
#./meta-netmodule-distro/recipes-tools/libnmapp/libnmapp_git.bb
SRCREV_libnmapp = "${AUTOREV}"
#./meta-netmodule-distro/recipes-tools/ssf-mgr/ssf-mgr_git.bb
SRCREV_ssf-mgr = "${AUTOREV}"
#./meta-netmodule-distro/recipes-tools/sys-mon/sys-mon_git.bb
SRCREV_sys-mon = "${AUTOREV}"
#./meta-netmodule-bsp/recipes-bsp/storage-info/storage-info.bb
SRCREV_storage-info = "${AUTOREV}"
#./meta-netmodule-distro/recipes-tools/battery-test/battery-test_git.bb
SRCREV_battery-test = "${AUTOREV}"
#./meta-netmodule-fct/recipes-testing/fct/fct.bb
SRCREV_fct = "${AUTOREV}"
#./meta-netmodule-fct/recipes-testing/provisioning/provisioning.bb
SRCREV_provisioning = "${AUTOREV}"
#./meta-netmodule-fct/recipes-testing/badassbd/badassbd.bb
SRCREV_badassbd = "${AUTOREV}"
#./meta-netmodule-fct/recipes-connectivity/toast/toast.bb
SRCREV_toast = "${AUTOREV}"
#./meta-netmodule-om/recipes-navigation/gpsd/gpsd_om-3.20.bb
SRCREV_gpsd_om = "${AUTOREV}"
#./meta-netmodule-private/recipes-extended/hydra/hydra_1.0.0.bb
SRCREV_hydra = "${AUTOREV}"

@ -1 +1 @@
Subproject commit c2a3bda3a29e12472ef7862e424ea1552fab2959
Subproject commit 0784db7dd0fef6f0621ad8d74372f44e87fef950

View File

@ -1,5 +1,5 @@
BB_NUMBER_THREADS ?= "4"
PARALLEL_MAKE ?= "-j 4"
BB_NUMBER_THREADS ?= "8"
PARALLEL_MAKE ?= "-j 8"
PACKAGE_CLASSES ?= "package_rpm"
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
PATCHRESOLVE = "noop"
@ -7,11 +7,9 @@ BB_DISKMON_DIRS = "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K \
ABORT,/tmp,10M,1K"
ABORT,${SSTATE_DIR},100M,1K"
ASSUME_PROVIDED += "libsdl-native"
CONF_VERSION = "1"
EXTRA_IMAGE_FEATURES_append = " debug-tweaks"
@ -35,6 +33,9 @@ LICENSE_CREATE_PACKAGE = "1"
INHERIT += "buildhistory buildstats-summary"
# enable upstream check to use head of branch:
UPSTREAM_CHECK_COMMITS = "1"
YOCTOROOT = "${@os.path.abspath(os.path.join("${TOPDIR}", os.pardir))}"
PREMIRRORS_prepend = "\
@ -43,4 +44,5 @@ PREMIRRORS_prepend = "\
http://.*/.* file://${YOCTOROOT}/sla-mirror/ \n \
https://.*/.* file://${YOCTOROOT}/sla-mirror/ \n"
include ../../autorev-packages.inc
include distro_version.inc

View File

@ -1 +1 @@
meta/conf
../meta-netmodule-fct/conf

View File

@ -1,5 +1,5 @@
BB_NUMBER_THREADS ?= "4"
PARALLEL_MAKE ?= "-j 4"
BB_NUMBER_THREADS ?= "8"
PARALLEL_MAKE ?= "-j 8"
PACKAGE_CLASSES ?= "package_rpm"
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
PATCHRESOLVE = "noop"
@ -7,11 +7,9 @@ BB_DISKMON_DIRS = "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K \
ABORT,/tmp,10M,1K"
ABORT,${SSTATE_DIR},100M,1K"
ASSUME_PROVIDED += "libsdl-native"
CONF_VERSION = "1"
EXTRA_IMAGE_FEATURES_append = " debug-tweaks"
@ -35,6 +33,9 @@ LICENSE_CREATE_PACKAGE = "1"
INHERIT += "buildhistory buildstats-summary"
# enable upstream check to use head of branch:
UPSTREAM_CHECK_COMMITS = "1"
YOCTOROOT = "${@os.path.abspath(os.path.join("${TOPDIR}", os.pardir))}"
PREMIRRORS_prepend = "\
@ -43,4 +44,5 @@ PREMIRRORS_prepend = "\
http://.*/.* file://${YOCTOROOT}/sla-mirror/ \n \
https://.*/.* file://${YOCTOROOT}/sla-mirror/ \n"
include ../../autorev-packages.inc
include distro_version.inc

View File

@ -1,5 +1,5 @@
BB_NUMBER_THREADS ?= "4"
PARALLEL_MAKE ?= "-j 4"
BB_NUMBER_THREADS ?= "8"
PARALLEL_MAKE ?= "-j 8"
PACKAGE_CLASSES ?= "package_rpm"
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
PATCHRESOLVE = "noop"
@ -7,11 +7,9 @@ BB_DISKMON_DIRS = "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K \
ABORT,/tmp,10M,1K"
ABORT,${SSTATE_DIR},100M,1K"
ASSUME_PROVIDED += "libsdl-native"
CONF_VERSION = "1"
EXTRA_IMAGE_FEATURES_append = " debug-tweaks"
@ -35,6 +33,9 @@ LICENSE_CREATE_PACKAGE = "1"
INHERIT += "buildhistory buildstats-summary"
# enable upstream check to use head of branch:
UPSTREAM_CHECK_COMMITS = "1"
YOCTOROOT = "${@os.path.abspath(os.path.join("${TOPDIR}", os.pardir))}"
PREMIRRORS_prepend = "\
@ -43,4 +44,6 @@ PREMIRRORS_prepend = "\
http://.*/.* file://${YOCTOROOT}/sla-mirror/ \n \
https://.*/.* file://${YOCTOROOT}/sla-mirror/ \n"
include ../../autorev-packages.inc
include distro_version.inc

View File

@ -0,0 +1 @@
../meta-netmodule-distro/conf

View File

@ -1,15 +0,0 @@
if [ -z "$DISTRO" ]; then
echo "No distro selected. Please source a helper script (env.*)"
fi
if [ -z "$MACHINE" ]; then
. ./machine_select
fi
echo Building for machine $MACHINE, distro: $DISTRO
export DISTRO
export MACHINE
export OSTREE_OSNAME=nm-linux
. ./openembedded-core/oe-init-build-env build$BUILD_FOLDER_APPEND

View File

@ -1,3 +0,0 @@
DISTRO="netmodule-linux"
BUILD_FOLDER_APPEND=""
. ./env.common

View File

@ -1,3 +0,0 @@
DISTRO="netmodule-linux-fct"
BUILD_FOLDER_APPEND="-fct"
. ./env.common

View File

@ -1,3 +0,0 @@
DISTRO="netmodule-linux-lava"
BUILD_FOLDER_APPEND="-fct"
. ./env.common

View File

@ -1,3 +0,0 @@
DISTRO="netmodule-linux-ostree"
BUILD_FOLDER_APPEND=""
. ./env.common

View File

@ -1,3 +0,0 @@
DISTRO="netmodule-linux-ostree-vcu"
BUILD_FOLDER_APPEND=""
. ./env.common

24
env/common vendored Normal file
View File

@ -0,0 +1,24 @@
if [ -z "$DISTRO" ]; then
echo "No distro selected. Please source a helper script (env/distro/*)"
return
fi
if [ -z "$MACHINE" ]; then
echo "No machine selected. Please source a helper script (env/machine/*)"
return
fi
echo
echo Build parameters:
printf "\tMACHINE = $MACHINE\n"
printf "\tDISTRO = $DISTRO\n"
echo
export DISTRO
export MACHINE
export OSTREE_OSNAME=nm-linux
# Moving back to top yocto directory (env/..)
env_path=${BASH_SOURCE:-$0}
cd $(dirname $env_path)/..
source openembedded-core/oe-init-build-env build$BUILD_FOLDER_APPEND

4
env/distro/base-image vendored Normal file
View File

@ -0,0 +1,4 @@
DISTRO="netmodule-linux"
BUILD_FOLDER_APPEND=""
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

4
env/distro/fct-image vendored Normal file
View File

@ -0,0 +1,4 @@
DISTRO="netmodule-linux-fct"
BUILD_FOLDER_APPEND="-fct"
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

4
env/distro/lava-image vendored Normal file
View File

@ -0,0 +1,4 @@
DISTRO="netmodule-linux-lava"
BUILD_FOLDER_APPEND="-fct"
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

View File

@ -1,3 +1,4 @@
DISTRO="netmodule-linux-minimal"
BUILD_FOLDER_APPEND="-minimal"
. ./env.common
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

4
env/distro/ostree-image vendored Normal file
View File

@ -0,0 +1,4 @@
DISTRO="netmodule-linux-ostree"
BUILD_FOLDER_APPEND=""
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

4
env/distro/vcu-image vendored Normal file
View File

@ -0,0 +1,4 @@
DISTRO="netmodule-linux-ostree-vcu"
BUILD_FOLDER_APPEND=""
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

View File

@ -4,6 +4,7 @@
PS3='Please choose a machine: '
HW16="nrhw16 - NB800"
HW17="hw17 - NB2800"
HW18="nrhw18 - NB1800"
HW20="nrhw20 - NB1601"
HW21="nmhw21 - VCU1"
@ -13,13 +14,17 @@ HW24="nrhw24 - NB800 facelift"
HW25="hw25 - TC Router"
HW26="hw26 - NG800"
select opt in HW16 HW18 HW20 HW21 HW23 DLM HW24 HW25 HW26
select opt in HW16 HW17 HW18 HW20 HW21 HW23 DLM HW24 HW25 HW26
do
case $opt in
HW16)
MACHINE=am335x-nrhw16
break
;;
HW17)
MACHINE=armada-385-hw17
break
;;
HW18)
MACHINE=armada-385-nrhw18
break

3
env/machine/hw16 vendored Normal file
View File

@ -0,0 +1,3 @@
MACHINE=am335x-nrhw16
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

3
env/machine/hw17 vendored Normal file
View File

@ -0,0 +1,3 @@
MACHINE=armada-385-hw17
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

3
env/machine/hw18 vendored Normal file
View File

@ -0,0 +1,3 @@
MACHINE=armada-385-nrhw18
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

3
env/machine/hw20 vendored Normal file
View File

@ -0,0 +1,3 @@
MACHINE=am335x-nrhw20
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

3
env/machine/hw21 vendored Normal file
View File

@ -0,0 +1,3 @@
MACHINE=am335x-nmhw21
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

3
env/machine/hw23 vendored Normal file
View File

@ -0,0 +1,3 @@
MACHINE=imx8-nmhw23
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

3
env/machine/hw24 vendored Normal file
View File

@ -0,0 +1,3 @@
MACHINE=am335x-nmhw24
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

3
env/machine/hw25 vendored Normal file
View File

@ -0,0 +1,3 @@
MACHINE=am335x-hw25
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

3
env/machine/hw26 vendored Normal file
View File

@ -0,0 +1,3 @@
MACHINE=am335x-hw26
env_path=${BASH_SOURCE:-$0}
. $(dirname $env_path)/../common

@ -1 +1 @@
Subproject commit 12c3eed6a90b436565126d8ba6934f794b816e25
Subproject commit 3dbca0ef2ae1ea3862e540c59ad77adbcb419d57

@ -1 +1 @@
Subproject commit 554d477873d877563f9f46bc10fdc43afcd369bc
Subproject commit 901c12f911e4fa4ae351ca6da07e4b4dacd1d6f1

@ -1 +1 @@
Subproject commit fa2957f59ac5c0900080e1a426cbd45d894ab777
Subproject commit 30d95eb8c877bb655cfd11a5dd1f7ba0a533e2b7

@ -1 +1 @@
Subproject commit f2386004959ca7e311fccf083f301c0d53003a08
Subproject commit 7538f89cfdd7624df5c2a7ba9d3ceb01d8536671

@ -1 +1 @@
Subproject commit b9300d6c34aa6a3b4b62d8edc9abdffc388415d2
Subproject commit 8bd0b8ee7ade4aaec66d0a1dfe4d6aa65e8dd661

@ -1 +1 @@
Subproject commit 6bf77c5803385d1174438545bcf897637765afaf
Subproject commit afeb746c8e8d3b6daf5f05cdb1e692ea593db696

@ -1 +1 @@
Subproject commit 4a0d93d250576177e1237fa559f55c4f9d371809
Subproject commit 8ff12bfffcf0840d5518788a53d88d708ad3aae0

@ -1 +1 @@
Subproject commit 5d49b28570ed030924ed5d45fbced24d3cb6e588
Subproject commit f2f5ca077baa1f08001cff9608ae59ed4dbeca3d

@ -1 +1 @@
Subproject commit ce78c16409363741d59a2f787aca66077bec93cd
Subproject commit 8e81d38048c953d0823abf04d5b2506cd988f0bb