Skip to content
Snippets Groups Projects
Commit 44000de1 authored by Dmitry Petrov's avatar Dmitry Petrov Committed by Jonas Höppner
Browse files

Check bitbake recipes with linter

The job checks bitbake recipes added/updated in MR using the
oelint-adv tool (https://github.com/priv-kweihmann/oelint-adv).

.oelint.json is a rulefile, created with the command
"oelint-adv --print-rulefile". It can be used during development.
It contains default rules for now, but will probably be customized later.

To get the list of changed files in MR, we adjusted the GIT_DEPTH variable.
The new value is 50, which should be fine for getting MR changes,
and still small enough to keep checkout fast for large projects.
parent 9d9574d1
No related branches found
No related tags found
1 merge request!383Check bitbake recipes with linter
Pipeline #113459 passed with stage
in 29 minutes and 50 seconds
{
"oelint.append.protvars": "error",
"oelint.append.protvars.PV": "error",
"oelint.append.protvars.PR": "error",
"oelint.append.protvars.SRCREV": "error",
"oelint.append.protvars.LICENSE": "error",
"oelint.append.protvars.LIC_FILES_CHKSUM": "error",
"oelint.exportfunction.dash": "error",
"oelint.bbclass.underscores": "error",
"oelint.file.includenotfound": "warning",
"oelint.file.requireinclude": "warning",
"oelint.file.inlinesuppress_na": "info",
"oelint.file.nospaces": "error",
"oelint.file.inactiveupstreamdetails": "info",
"oelint.file.inappropriatemsg": "info",
"oelint.file.patchsignedoff": "warning",
"oelint.file.upstreamstatus": "info",
"oelint.file.includerelpath": "warning",
"oelint.file.requirenotfound": "error",
"oelint.file.underscores": "error",
"oelint.func.specific": "error",
"oelint.newline.consecutive": "warning",
"oelint.newline.eof": "warning",
"oelint.spaces.linebeginning": "warning",
"oelint.spaces.linecont": "error",
"oelint.spaces.emptyline": "warning",
"oelint.spaces.lineend": "warning",
"oelint.tabs.notabs": "warning",
"oelint.task.addnotaskbody": "warning",
"oelint.task.noanonpython": "warning",
"oelint.task.customorder": "error",
"oelint.task.dash": "error",
"oelint.task.docstrings": "info",
"oelint.task.heredocs": "warning",
"oelint.task.multifragments": "info",
"oelint.task.nocopy": "error",
"oelint.task.nomkdir": "error",
"oelint.task.nopythonprefix": "warning",
"oelint.task.order": "warning",
"oelint.task.order.do_fetch": "warning",
"oelint.task.order.do_unpack": "warning",
"oelint.task.order.do_patch": "warning",
"oelint.task.order.do_configure": "warning",
"oelint.task.order.do_compile": "warning",
"oelint.task.order.do_install": "warning",
"oelint.task.order.do_populate_sysroot": "warning",
"oelint.task.order.do_build": "warning",
"oelint.task.order.do_package": "warning",
"oelint.task.pythonprefix": "warning",
"oelint.var.addpylib": "error",
"oelint.vars.appendop": "error",
"oelint.vars.autorev": "warning",
"oelint.vars.bbvars": "warning",
"oelint.vars.bbvars.BB_CONSOLELOG": "warning",
"oelint.vars.bbvars.BB_CURRENTTASK": "warning",
"oelint.vars.bbvars.BB_DANGLINGAPPENDS_WARNONLY": "warning",
"oelint.vars.bbvars.BB_DEFAULT_TASK": "warning",
"oelint.vars.bbvars.BB_DISKMON_DIRS": "warning",
"oelint.vars.bbvars.BB_DISKMON_WARNINTERVAL": "warning",
"oelint.vars.bbvars.BB_ENV_EXTRAWHITE": "warning",
"oelint.vars.bbvars.BB_ENV_WHITELIST": "warning",
"oelint.vars.bbvars.BB_FETCH_PREMIRRORONLY": "warning",
"oelint.vars.bbvars.BB_FILENAME": "warning",
"oelint.vars.bbvars.BB_GENERATE_MIRROR_TARBALLS": "warning",
"oelint.vars.bbvars.BB_HASHBASE_WHITELIST": "warning",
"oelint.vars.bbvars.BB_HASHCHECK_FUNCTION": "warning",
"oelint.vars.bbvars.BB_HASHCONFIG_WHITELIST": "warning",
"oelint.vars.bbvars.BB_INVALIDCONF": "warning",
"oelint.vars.bbvars.BB_LOGFMT": "warning",
"oelint.vars.bbvars.BB_NICE_LEVEL": "warning",
"oelint.vars.bbvars.BB_NO_NETWORK": "warning",
"oelint.vars.bbvars.BB_NUMBER_PARSE_THREADS": "warning",
"oelint.vars.bbvars.BB_NUMBER_THREADS": "warning",
"oelint.vars.bbvars.BB_ORIGENV": "warning",
"oelint.vars.bbvars.BB_PRESERVE_ENV": "warning",
"oelint.vars.bbvars.BB_RUNFMT": "warning",
"oelint.vars.bbvars.BB_RUNTASK": "warning",
"oelint.vars.bbvars.BB_SCHEDULER": "warning",
"oelint.vars.bbvars.BB_SCHEDULERS": "warning",
"oelint.vars.bbvars.BB_SETSCENE_DEPVALID": "warning",
"oelint.vars.bbvars.BB_SETSCENE_VERIFY_FUNCTION": "warning",
"oelint.vars.bbvars.BB_SIGNATURE_EXCLUDE_FLAGS": "warning",
"oelint.vars.bbvars.BB_SIGNATURE_HANDLER": "warning",
"oelint.vars.bbvars.BB_SRCREV_POLICY": "warning",
"oelint.vars.bbvars.BB_STAMP_POLICY": "warning",
"oelint.vars.bbvars.BB_STAMP_WHITELIST": "warning",
"oelint.vars.bbvars.BB_STRICT_CHECKSUM": "warning",
"oelint.vars.bbvars.BB_TASK_NICE_LEVEL": "warning",
"oelint.vars.bbvars.BB_TASKHASH": "warning",
"oelint.vars.bbvars.BB_VERBOSE_LOGS": "warning",
"oelint.vars.bbvars.BB_WORKERCONTEXT": "warning",
"oelint.vars.bbvars.BBDEBUG": "warning",
"oelint.vars.bbvars.BBFILE_COLLECTIONS": "warning",
"oelint.vars.bbvars.BBFILE_PATTERN": "warning",
"oelint.vars.bbvars.BBFILE_PRIORITY": "warning",
"oelint.vars.bbvars.BBFILES": "warning",
"oelint.vars.bbvars.BBINCLUDED": "warning",
"oelint.vars.bbvars.BBINCLUDELOGS": "warning",
"oelint.vars.bbvars.BBINCLUDELOGS_LINES": "warning",
"oelint.vars.bbvars.BBLAYERS": "warning",
"oelint.vars.bbvars.BBMASK": "warning",
"oelint.vars.bbvars.BBPATH": "warning",
"oelint.vars.bbvars.BBSERVER": "warning",
"oelint.vars.bbvars.BBVERSIONS": "warning",
"oelint.vars.bbvars.BITBAKE_UI": "warning",
"oelint.vars.bbvars.BUILDNAME": "warning",
"oelint.vars.bbvars.CACHE": "warning",
"oelint.vars.bbvars.DL_DIR": "warning",
"oelint.vars.bbvars.FILE": "warning",
"oelint.vars.bbvars.FILESDIR": "warning",
"oelint.vars.bbvars.FILESPATH": "warning",
"oelint.vars.bbvars.INHERIT": "warning",
"oelint.vars.bbvars.LAYERDEPENDS": "warning",
"oelint.vars.bbvars.LAYERDIR": "warning",
"oelint.vars.bbvars.LAYERVERSION": "warning",
"oelint.vars.bbvars.MIRRORS": "warning",
"oelint.vars.bbvars.MULTI_PROVIDER_WHITELIST": "warning",
"oelint.vars.bbvars.PERSISTENT_DIR": "warning",
"oelint.vars.bbvars.PREFERRED_PROVIDER": "warning",
"oelint.vars.bbvars.PREFERRED_PROVIDERS": "warning",
"oelint.vars.bbvars.PREFERRED_VERSION": "warning",
"oelint.vars.bbvars.PREMIRRORS": "warning",
"oelint.vars.bbvars.PRSERV_HOST": "warning",
"oelint.vars.bbvars.STAMP": "warning",
"oelint.vars.bbvars.TOPDIR": "warning",
"oelint.vars.bugtrackerisurl": "warning",
"oelint.vars.dependsappend": "error",
"oelint.vars.dependsclass": "error",
"oelint.vars.dependsordered": "warning",
"oelint.vars.descriptionsame": "warning",
"oelint.vars.descriptiontoobrief": "warning",
"oelint.vars.doublemodify": "error",
"oelint.vars.duplicate": "warning",
"oelint.vars.fileextrapaths": "warning",
"oelint.vars.fileextrapathsop": "error",
"oelint.var.filesoverride": "warning",
"oelint.vars.homepageprefix": "warning",
"oelint.vars.homepageping": "warning",
"oelint.vars.inconspaces": "error",
"oelint.vars.insaneskip": "error",
"oelint.var.licenseremotefile": "warning",
"oelint.vars.licensesdpx": "warning",
"oelint.vars.licfileprefix": "warning",
"oelint.vars.mispell": "warning",
"oelint.vars.mispell.unknown": "warning",
"oelint.vars.multilineident": "info",
"oelint.vars.notneededspace": "info",
"oelint.vars.overrideappend": "warning",
"oelint.vars.pbpusage": "error",
"oelint.vars.dusageinpkgfuncs": "error",
"oelint.vars.pkgspecific": "error",
"oelint.vars.pkgspecific.RDEPENDS": "error",
"oelint.vars.pkgspecific.RRECOMMENDS": "error",
"oelint.vars.pkgspecific.RSUGGESTS": "error",
"oelint.vars.pkgspecific.RCONFLICTS": "error",
"oelint.vars.pkgspecific.RPROVIDES": "error",
"oelint.vars.pkgspecific.RREPLACES": "error",
"oelint.vars.pkgspecific.FILES": "error",
"oelint.vars.pkgspecific.pkg_preinst": "error",
"oelint.vars.pkgspecific.pkg_postinst": "error",
"oelint.vars.pkgspecific.pkg_prerm": "error",
"oelint.vars.pkgspecific.pkg_postrm": "error",
"oelint.vars.pkgspecific.ALLOW_EMPTY": "error",
"oelint.vars.pnbpnusage": "error",
"oelint.vars.pnusagediscouraged": "warning",
"oelint.vars.valuequoted": "error",
"oelint.var.rootfspostcmd": "warning",
"oelint.vars.sectionlowercase": "warning",
"oelint.vars.spacesassignment": "warning",
"oelint.vars.specific": "error",
"oelint.vars.srcurioptions": "warning",
"oelint.vars.srcuriappend": "error",
"oelint.vars.srcurichecksum": "error",
"oelint.vars.srcuridomains": "warning",
"oelint.vars.srcurifile": "warning",
"oelint.vars.srcurigittag": "warning",
"oelint.vars.srcurisrcrevtag": "error",
"oelint.var.srcuriwildcard": "error",
"oelint.vars.summary80chars": "warning",
"oelint.vars.summarylinebreaks": "warning",
"oelint.vars.notrailingslash": "error",
"oelint.var.bbclassextend": "info",
"oelint.vars.downloadfilename": "warning",
"oelint.vars.filessetting": "warning",
"oelint.vars.filessetting.hidden": "warning",
"oelint.vars.filessetting.double": "warning",
"oelint.var.improperinherit": "error",
"oelint.vars.listappend": "error",
"oelint.var.mandatoryvar": "error",
"oelint.var.mandatoryvar.SUMMARY": "error",
"oelint.var.mandatoryvar.DESCRIPTION": "error",
"oelint.var.mandatoryvar.HOMEPAGE": "error",
"oelint.var.mandatoryvar.LICENSE": "error",
"oelint.var.mandatoryvar.SRC_URI": "error",
"oelint.var.multiinclude": "warning",
"oelint.var.multiinherit": "warning",
"oelint.var.nativefilename": "warning",
"oelint.var.nativesdkfilename": "warning",
"oelint.var.order": "warning",
"oelint.var.order.SUMMARY": "warning",
"oelint.var.order.DESCRIPTION": "warning",
"oelint.var.order.AUTHOR": "warning",
"oelint.var.order.HOMEPAGE": "warning",
"oelint.var.order.BUGTRACKER": "warning",
"oelint.var.order.SECTION": "warning",
"oelint.var.order.LICENSE": "warning",
"oelint.var.order.LIC_FILES_CHKSUM": "warning",
"oelint.var.order.DEPENDS": "warning",
"oelint.var.order.PROVIDES": "warning",
"oelint.var.order.PV": "warning",
"oelint.var.order.SRC_URI": "warning",
"oelint.var.order.SRCREV": "warning",
"oelint.var.order.S": "warning",
"oelint.var.order.inherit": "warning",
"oelint.var.order.PACKAGECONFIG": "warning",
"oelint.var.order.EXTRA_QMAKEVARS_POST": "warning",
"oelint.var.order.EXTRA_OECONF": "warning",
"oelint.var.order.PACKAGE_ARCH": "warning",
"oelint.var.order.PACKAGES": "warning",
"oelint.var.order.FILES": "warning",
"oelint.var.order.RDEPENDS": "warning",
"oelint.var.order.RRECOMMENDS": "warning",
"oelint.var.order.RSUGGESTS": "warning",
"oelint.var.order.RPROVIDES": "warning",
"oelint.var.order.RCONFLICTS": "warning",
"oelint.var.order.BBCLASSEXTEND": "warning",
"oelint.vars.pathhardcode": "warning",
"oelint.vars.pathhardcode.systemd_user_unitdir": "warning",
"oelint.vars.pathhardcode.systemd_system_unitdir": "warning",
"oelint.vars.pathhardcode.docdir": "warning",
"oelint.vars.pathhardcode.infodir": "warning",
"oelint.vars.pathhardcode.mandir": "warning",
"oelint.vars.pathhardcode.libexecdir": "warning",
"oelint.vars.pathhardcode.systemd_unitdir": "warning",
"oelint.vars.pathhardcode.libdir": "warning",
"oelint.vars.pathhardcode.bindir": "warning",
"oelint.vars.pathhardcode.datadir": "warning",
"oelint.vars.pathhardcode.includedir": "warning",
"oelint.vars.pathhardcode.localstatedir": "warning",
"oelint.vars.pathhardcode.nonarch_base_libdir": "warning",
"oelint.vars.pathhardcode.sbindir": "warning",
"oelint.vars.pathhardcode.servicedir": "warning",
"oelint.vars.pathhardcode.sharedstatedir": "warning",
"oelint.vars.pathhardcode.sysconfdir": "warning",
"oelint.var.suggestedvar": "info",
"oelint.var.suggestedvar.BUGTRACKER": "info",
"oelint.var.suggestedvar.BBCLASSEXTEND": "info",
"oelint.var.suggestedvar.CVE_PRODUCT": "info",
"oelint.var.suggestedvar.SECTION": "info",
"oelint.var.override": "error",
"oelint.vars.virtual": "error"
}
......@@ -5,7 +5,7 @@
variables:
# CI_IMAGES_BASEPATH: Environment variable configure in gitlab
CI_IMAGES_PATH: ${CI_IMAGES_BASEPATH}/ci-images
CI_IMAGES_REV: 54826eeb55cf9738a253f0018b1a0059767e64d7
CI_IMAGES_REV: 6594c93254dcca63068e4ef81032c3748686a705
CI_IMAGE_PYTHON: "${CI_IMAGES_PATH}/python/3.9:${CI_IMAGES_REV}"
CI_IMAGE_YOCTO: "${CI_IMAGES_PATH}/yocto-build/ubuntu-20.04:${CI_IMAGES_REV}"
# Include git submodules
......
......@@ -137,3 +137,25 @@ yamllint:
stage: manifest-integration
rules:
- if: $CI_MERGE_REQUEST_IID
oelint:
extends:
- .infrastructure
- .skip-for-gitlab-ci-integrations
stage: manifest-integration
variables:
GIT_DEPTH: 50
rules:
- changes:
- '**/*.{bb,bbappend}'
script:
- DIFF=$(git diff --name-only --diff-filter=AMR $CI_MERGE_REQUEST_DIFF_BASE_SHA)
- for f in $DIFF; do
if [[ $f == *.bb ]] || [[ $f == *.bbappend ]]; then
BB_RECIPES+="$f ";
fi;
done
- if [ -n "$BB_RECIPES" ]; then
oelint-adv --noinfo --nowarn --rulefile=.gitlab-ci/.oelint.json $BB_RECIPES;
fi
allow_failure: true
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment