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 @@ ...@@ -5,7 +5,7 @@
variables: variables:
# CI_IMAGES_BASEPATH: Environment variable configure in gitlab # CI_IMAGES_BASEPATH: Environment variable configure in gitlab
CI_IMAGES_PATH: ${CI_IMAGES_BASEPATH}/ci-images 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_PYTHON: "${CI_IMAGES_PATH}/python/3.9:${CI_IMAGES_REV}"
CI_IMAGE_YOCTO: "${CI_IMAGES_PATH}/yocto-build/ubuntu-20.04:${CI_IMAGES_REV}" CI_IMAGE_YOCTO: "${CI_IMAGES_PATH}/yocto-build/ubuntu-20.04:${CI_IMAGES_REV}"
# Include git submodules # Include git submodules
......
...@@ -137,3 +137,25 @@ yamllint: ...@@ -137,3 +137,25 @@ yamllint:
stage: manifest-integration stage: manifest-integration
rules: rules:
- if: $CI_MERGE_REQUEST_IID - 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