Commit Graph

81 Commits

Author SHA1 Message Date
Anas Nashif
301ee9792d ci: run issue count workflow every 10 minutes
Do not run workflow on each issue change, instead run every 10 minutes.
Running this on every issue open/close/label will cause reaching API
call limit very fast when issues are automatically created from coverity
or during bug triaging sessions.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-03-31 07:44:39 -04:00
Martí Bolívar
8697935882 .github: doc-build: run on scripts/dts change
Some of the generated documentation depends on the devicetree scripts.
E.g. the bindings index uses edtlib.

We don't have a well-defined interface boundary here for managing
dependencies, so let's just add the entire dts directory to the
'paths' glob list in doc-build.yml. This will ensure we don't
accidentally change some DT implementation detail in a way that breaks
the docs.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-03-30 20:41:28 -04:00
Gerard Marull-Paretas
32b71cbcdc doc: move Makefile to doc folder
Move the top-level Makefile to the documentation folder as it is only
used for documentation.

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2021-03-29 10:59:28 -04:00
Carles Cufi
799a87072a actions: Update manifest action to v1.1.0
This new release adds support for diffs as well as being able to list
added and removed projects.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2021-03-26 17:43:20 -04:00
Carles Cufi
153a46620c actions: backport: Update to 1.1.1-1 and enable issue creation
Update the backport action to 1.1.1-1, which adds support for issue
creation when a backport fails.
In our case, label the issue with the "backport" and "bug" labels.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2021-03-26 10:51:10 +01:00
Carles Cufi
3f4109b982 actions: manifest: Pin to v1.0.0
In order to develop further functionality in the action-manifest repo,
pin the version to v1.0.0 here.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2021-03-25 09:14:52 -04:00
Martí Bolívar
2ea77dd019 ci: doc-build: bump west version
This should produce no changes in the docs since there are no API
changes in this point release, but let's just keep the build up to
date with the version being documented for cleanliness.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-03-17 12:50:33 -05:00
Martí Bolívar
ffadff947c .github: doc-build: use west 0.10.0a1
Testing for the release itself.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-03-11 11:08:25 +01:00
Anas Nashif
09cb9ab259 actions: use a different user for this action
PRs created by github bot do not trigger new workflows, so we have to
use a different user.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-02-14 18:40:09 -05:00
Anas Nashif
a2078890d4 actions: run backporting bot only on main
Backporting bot should only run on main branch, not release branches.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-02-14 18:40:09 -05:00
Anas Nashif
666949cda1 action: publish documentation when VERSION is changed
When VERSION is changed, do not wait for daily cron and publish
documentation immediately to keep things in sync.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-02-14 11:52:38 -05:00
Anas Nashif
769d91b922 actions: publish release docs to correct folder
We have been publishing docs to the wrong folter on AWS S3. We still had
the official docs published to the correct place manually though, so all
was good.

This change will eliminate the manual step of publishing documentation
and will put things where they belong.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-02-12 11:07:43 -05:00
Anas Nashif
2e9e241f29 ci: add action to create release
Action to create release when tag is pushed. This will additionally
create an SPDX file and the changelog since the last tag.

The release is created as a draft and will have to be modified by the
release engineer and published when ready.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-02-03 09:55:18 -06:00
Carles Cufi
777c5c9941 actions: compliance: Rebase before running west update
Instead of rebasing just before running the compliance script, do so
before running `west update`, so that the main manifest, west.yml, is up
to date with the latest master before west inspects it.

Fixes #31327.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2021-02-03 09:45:50 -05:00
Maureen Helm
1778e117d7 actions: Fix typo in twister action name
Replaces "Twsiter" with "Twister" in the associated GitHub Action name.

Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2021-01-29 14:22:25 -05:00
Martí Bolívar
de73db9dbc doc-build: build with west 0.9
This is required to get the relevant API docstrings.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-01-28 08:23:52 -05:00
Anas Nashif
f9b76ca76e ci: compliance: fail on errors
Fail workflow in case of script crashes.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-01-22 08:55:06 -05:00
Anas Nashif
52ec40cbdf actions: run manifest workflow only on manifest changes
Run the manifest workflow only when west.yml changes.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-01-19 11:50:39 -06:00
Marc Herbert
fcb8552b4a doc-build.yml: pip3 install wheel, fix 'invalid command bdist_wheel'
As recommended by @mbolivar-nordic and... stackoverflow.

While I could not reproduce this locally, this should get rid of many
non-fatal pip errors in CI all looking like this one:

Building wheels for collected packages: PyYAML, progress, psutil, ...

 Running setup.py bdist_wheel for PyYAML: started
 Running setup.py bdist_wheel for PyYAML: finished with status 'error'

 Complete output from command /usr/bin/python3 -u -c "import setuptools,
  tokenize;__file__='/tmp/pip-build-b3sj5a6m/PyYAML/setup.py';
  f=getattr(tokenize, 'open',open)(__file__);code=f.read().replace(
  '\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))"
  bdist_wheel -d /tmp/tmpvn0bt6xfpip-wheel- --python-tag cp36:

  Failed building wheel for PyYAML
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Running setup.py clean for PyYAML

Etc.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-01-13 08:01:20 -05:00
Anas Nashif
cc0f600753 ci: fix check_compliance workflow
- Use older junitparser, new version is not compatible
- Fetch pull request ref, not master
- add few debug messages

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-01-12 23:25:37 -05:00
Marc Herbert
2fd1d3ca07 doc-build.yml: add top-level Makefile
Dunno why the top-level Makefile is doc/ specific but it is.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2021-01-11 19:27:06 -05:00
Anas Nashif
0a98147d04 ci: compliance: setup west modules
Setup a complete workspace with west. Some checks need access to
configured modules.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2021-01-06 07:53:46 -06:00
Fabio Utzig
831194abe3 ci: remove block copypasta in compliance check
Update copypasta to iterate over a list of files to check.

Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
2020-12-18 07:50:08 -06:00
Anas Nashif
8b826e59e3 actions: fix issue tracker configuration
prio -> priority

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-12-15 22:19:37 -05:00
Anas Nashif
687b411525 actions: add issue tracker action
This action will generate a summary page with bug counts and issues
counts for common labels.

The report will be pubished on
https://testing.zephyrproject.org/issues/zephyrproject-rtos/zephyr/index.html

Example:

https://testing.zephyrproject.org/issues/zephyrproject-rtos/docker-image/index.html

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-12-15 22:03:32 -05:00
Anas Nashif
6be5e02923 actions: use descriptive job names
Use descriptive and unique job names, otherwise we end up with those
showing up in different location with no way to know which is which.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-12-15 14:47:26 -05:00
Anas Nashif
17b09c2761 ci: rename sanitycheck -> twister
Replace leftover sanitycheck mentions.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-12-14 14:13:16 -05:00
Øyvind Rønningstad
c1b000bfb3 west_cmds.yml: Add itself to path filter
So build is run when west_cmds.yml is changed.

Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>
2020-12-11 20:24:33 -05:00
Øyvind Rønningstad
819b3639a9 sanitycheck_tests.yml: Add itself to path filter
So build is run when sanitycheck_tests.yml is changed.

Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>
2020-12-11 20:24:33 -05:00
Øyvind Rønningstad
9d2e64191c devicetree_checks.yml: Add itself to path filter
So build is run when devicetree_checks.yml is changed.

Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>
2020-12-11 20:24:33 -05:00
Anas Nashif
a05d056943 ci: rename sanitycheck -> twister
Change all CI scripts to use the new script name: twister.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-12-11 14:13:02 -05:00
Øyvind Rønningstad
2fc50c6e9d doc-build.yml: Add itself to path filter
So doc build is run when doc-build.yml is changed.

Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>
2020-12-10 15:38:46 -05:00
Øyvind Rønningstad
5362a88338 doc-build.yml: Add west.yml to path filter
Since modules can affect the doc build.

Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>
2020-12-10 15:38:46 -05:00
Anas Nashif
6658b1938a actions: rename jobs
Do not use default 'triage' job names.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-12-09 08:20:38 -05:00
Carles Cufi
cd97cffa79 actions: manifest: Update to latest action revision
The manifest GitHub action now optionally takes a checked out tree in
order to find the merge base of the pull request branch. Provide this to
avoid artifacts in edge cases.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2020-11-27 20:12:46 +01:00
Carles Cufi
f97b07bc3f actions: Enable new manifest workflow
The manifest workflow uses the manifest action to detect changes in the
west manifest. It then analyzes the changes and posts labels and a
comment in table format accordingly.

It is meant to be used as a helper bot for developers submitting changes
to modules, reducing the need for manual work and oversight and
automating common operations.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2020-11-26 12:07:23 -05:00
Max Bachmann
1d4c36486c CI: only release to AWS in the Zephyr repository
Currently, nightly releases are performed in Forks as well.
Since these fail due to missing AWS credentials this causes
a lot of messages about failing builds, this commit disables
them for Forks.

Signed-off-by: Max Bachmann <kontakt@maxbachmann.de>
2020-11-25 08:53:49 -06:00
Eugeniy Paltsev
0699f38f16 ARC: west: mdb runner: record MDB's CLD process pid to file
Record MDB's CLD process pid to file so this process can be
terminated by sanitycheck infrastructure.
Update mdb runners test to be able to handle changes.

Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
2020-11-11 08:18:38 -05:00
Fabio Utzig
577d588b3a workflows: enable documentation build for Kconfig*
Trigger documentation builds when Kconfig files are changed.

Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
2020-11-07 08:29:57 -06:00
Kumar Gala
fabf40398f ci: github: Update for deprecation of add-path
Github has deprecated add-path, so update the workflows that use it to
the new method of setting the PATH.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2020-11-04 14:45:08 -06:00
Fabio Utzig
0df18a9163 doc: enable documentation build for known-issues
Changing .known-issues/doc should always trigger a documentation build
so add it to the filters.

Signed-off-by: Fabio Utzig <fabio.utzig@nordicsemi.no>
2020-11-03 15:27:37 +01:00
Kumar Gala
f80f31eb0d ci: github: reduce when we do doc builds
Rather than doing a doc build on every PR, limit it to PRs that either
touch a file in doc/, *.rst and what's listed as DOXY_SOURCES in
doc/CMakeLists.txt.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2020-10-21 17:40:52 +02:00
Anas Nashif
dac6937cda actions: install needed modules for docs
add scripts/requirements-base.txt to install needed modules for docs to
build.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-10-05 13:04:22 -04:00
Martí Bolívar
a6856811a3 scripts: dts: pass tests on windows
Doing this just requires a bit of os.fspath()-ery.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-10-02 11:51:15 +02:00
Martí Bolívar
a8612f75c5 scripts: dts: convert test suites to pytest
Use the pytest test framework in the dtlib.py and edtlib.py test
suites (testdtlib.py and testedtlib.py respectively).

The goal here is not to change what is being tested. The existing test
suite is excellent and very thorough.

However, it is made up of executable scripts where all of the tests
are run using a hand-rolled framework in a single function per file.
This is a bit all-or-nothing and prevents various nice features
available in the de-facto standard pytest test framework from being
used.

In particular, pytest can:

- drop into a debugger (pdb) when there is a problem
- accept a pattern which specifies a subset of tests to run
- print very detailed error messages about the actual and expected
  results in various traceback formats from brief to very verbose
- gather coverage data for the python scripts being tested (via plugin)
- run tests in parallel (via plugin)
- It's easy in pytest to run tests with temporary directories
  using the tmp_path and other fixtures. This us avoid
  temporarily dirtying the working tree as is done now.

Moving to pytest lets us leverage all of these things without any loss
in ease of use (in fact, some things are nicer in pytest):

- Any function that starts with "test_" is automatically picked up and
  run. No need for rolling up lists of functions into a test suite.
- Tests are written using ordinary Python 'assert'
  statements.
- Pytest magic unpacks the AST of failed asserts to print details on
  what went wrong in really nice ways. For example, it will show you
  exactly what parts of two strings that are expected to be equal
  differ.

For the most part, this is a pretty mechanical conversion:

- extract helpers and test cases into separate functions
- insert temporary paths and adjust tests accordingly to not match
  file names exactly
- use 'assert CONDITION' instead of 'if not CONDITION: fail()'

There are a few cases where making this happen required slightly
larger changes than that, but they are limited.

Move the checks from check_compliance.py to a new GitHub workflow,
removing hacks that are no longer needed.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2020-10-02 11:51:15 +02:00
Øyvind Rønningstad
d6c30eead0 nrfjprog.py: Fail if hex file has UICR data and no --erase
Inspect the hex file with intelhex, and fail if the hex file has any
contents in the UICR area(s).
family == 'NRF52' still always does --sectoranduicrerase, but this
option is not available on other families.
Add --force command line option to proceed with flashing instead of
failing.

Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>
2020-09-28 14:09:14 -05:00
Anas Nashif
c25f486322 actions: increase stale operations
Increase to 400 to have it complete the job in one run.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-09-21 16:05:15 -04:00
Anas Nashif
a06884a4e6 actions: stale: increase operations per run
The action is currently being aborted due to a very low value. Trying
something larger to get more operation done per day.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-09-18 19:05:29 -04:00
Anas Nashif
bc8832f6c8 actions: add backporting bot
With new event 'pull_request_target' it is now possible to run the
backporting action that we used to have in the past as a Github app.

Use labels for backporting as before.

See https://github.com/tibdex/backport for more details.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2020-09-12 07:28:16 -04:00
Carles Cufi
bbcda199bf github: actions: Use on-PR labeler
Now that the standard GitHub action supports forks, switch to the on-PR
action instead of running a cronjob.

Reference:

https://github.com/actions/labeler/issues/12#issuecomment-670967607

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2020-09-12 07:27:41 -04:00