This commit fixes a stale reference to the 'master' branch when
downloading the issue report configuration file.
Note that the 'master' branch is no longer the default
branch -- 'main' is.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit removes the "Conflict Finder" workflow, which is no longer
used (see #26613) and is unnecessary because GitHub is capable of
handling merge conflicts on its own and there are other workflows to
warn about stale pull requests.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Add a note to the bug report GitHub template asking if the bug is a
regression, and asking for a bisected commit if available.
This should make regression bugs easier to triage, or even point the
author to the solution.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
`github.event.repository.name` is not available for the workflow runs
triggered by the `schedule` event.
This commit updates the workflow to use the repository name extracted
from the `GITHUB_REPOSITORY` environment variable, which is always
available.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit restricts the bug snapshot workflow to the
`zephyrproject-rtos` organisation because it requires access to the
project internal infrastructure and cannot be reused downstream.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit modifies the twister workflow to include the module test
results in the unit test report.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Store bug stats on a daily basis and keep original workflow behavior
triggered manually in place. Daily snapshots will be stored under daily/
folder and separate from manual snapshots.
The daily snapshots will be used for more granular analytics of github
issues over time.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
There is a breaking change in Junitparser 'TestCase.result' between
v1.x and v2.x.
Update check_compliance.py minimally to take into account this change.
This avoids relying on an outdated package.
Signed-off-by: Henri Xavier <datacomos@huawei.com>
Give documentation a bit more time to build, seems like we are hitting
the current 30 minutes limit.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
This is an automated check for the Backports project to
require one or more `Fixes #<issue>` items in the body
of the pull request.
Fixes#46164
Signed-off-by: Christopher Friedt <cfriedt@fb.com>
This commit updates the Twister workflow to use the 'action-s3-cache'
action from the zephyrproject-rtos organisation.
It also updates the action reference such that it uses a specific
version of the action instead of the latest master.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit updates the Codecov workflow to use the 'action-s3-cache'
action from the zephyrproject-rtos organisation.
It also updates the action reference such that it uses a specific
version of the action instead of the latest master.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit updates the Clang workflow to use the 'action-s3-cache'
action from the zephyrproject-rtos organisation.
It also updates the action reference such that it uses a specific
version of the action instead of the latest master.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Add a maintainership section in the ext-source template, forcing future
contributors to identify one or more maintainers.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This commit updates the pull request assigner workflow to skip the
reviewers, assignee and labels assignment for the pull requests that
are marked as draft.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit removes the "Pull Request Labeler" workflow because the
newly added "Pull Request Assigner" workflow takes care of assigning
the pull request labels.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit adds the "Pull Request Assigner" workflow that
automatically assigns the reviewers, assignee and labels for a pull
request.
Note that this workflow runs on the `pull_request_target` event in the
context of the base branch using the `MAINTAINERS.yml` from the base
branch.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
The GitHub Actions runner redirects the stdout and stderr console
outputs and, now that twister properly invokes the Colorama module
initialisation function, the color output is disabled when running the
twister in the CI.
This commit adds the `--force-color` option when invoking the twister
so that the ANSI color escape sequences are output even when the output
is redirected by the GitHub Actions runner (note that the web console
properly displays the color escape sequences).
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This creates a new GitHub workflow that snapshots open bugs in a
compressed format that is convenient to extract for later analysis in
a Python script, using scripts/make_bugs_pickle.py.
The workflow is only run on demand. This allows us to run it during
the weekly release readiness meeting, right after we have finished the
initial bug triage for the week. That ensures that results are as
fresh and relevant as possible.
The resulting file is uploaded to S3; with the goal of enabling later
tracking and analysis.
Getting the analysis scripts themselves merged into Zephyr is left for
future work. This commit just allows us to get the data.
Co-authored-by: Stephanos Ioannidis <root@stephanos.io>
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
GitHub Actions may trigger the `workflow_run` event type when the
pull request source branch name matches one of the branches specified
under `branches:`.
This commit updates the documentation publish workflow to skip when the
preceding event type is `pull_request`, in order to prevent pull
request documentation from being uploaded as main documentation.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit updates the CI workflows to use the Zephyr SDK 0.14.2 for
building and testing Zephyr in the CI.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit updates the CI workflows to use the CI image 0.23.3, in
order to pull in the Zephyr SDK 0.14.2 and other minor enhancements
and bug fixes detailed in the docker-image release notes.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Github summary is rendered using GH markdown engine, so hopefully
documentation preview link will be clickable. This change should improve
user experience, as one had to manually select and copy+paste the URL.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Now that we have partially oerhauled twister in the tree, modify actions
with new options:
- not reporting filtered tests is now default
- output is json, not csv
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
This reverts commit e4ebba8025.
This is still not ready. We have lots of usages of old include paths.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Make sure all tests are run with the legacy include path option
disabled. This should prevent code not using includes with the
<zephyr/...> prefix to pass tests and so getting merged.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Doxygen only serves the latest couple of releases from their website.
However, all releases (including the old ones) can be downloaded from
Sourceforge.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
This commit updates the CI workflows to use the Zephyr SDK 0.14.1 for
building and testing Zephyr in the CI.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit updates the CI workflows to pull the CI image from the
GitHub Container Registry (GHCR) instead of the DockerHub, as part of
the effort to move away from using the DockerHub.
The rationale is as follows:
1. DockerHub imposes an impractical pull rate limit (200 pulls per
6-hour period) that can easily be exceeded in a high volume CI like
that of the Zephyr Project.
2. GitHub Container Registry is provided by the GitHub and offers
better integration with the GitHub Actions (e.g. access permissions
and tokens).
3. DockerHub offers very limited features for free accounts compared to
the GitHub Container Registry.
Note that the CI image is still available on both GitHub Container
Registry and DockerHub, and third-party users are free to choose
whichever they prefer.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
The owner UID of the GITHUB_WORKSPACE directory may not match the
container user UID because of the way GitHub Actions runner is
implemented, and this can cause the Git operations to fail unless the
workspace directory is explicitly listed as a "safe directory."
For more details, refer to the following GitHub issue:
actions/checkout#760
Remove this workaround when GitHub comes up with a fundamental fix for
this problem.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit removes the GitPython package installation step from the CI
workflows since this package is now installed by default since the CI
image 0.23.0.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit updates the CI workflows to use the CI image 0.23.0.
Note that the CI image 0.23.0 has had a major internal overhaul and
comes with higher risks than the normal updates.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit updates the Twister workflow to trigger on all pushes and
pull requests to the release branches.
Note that this change in itself does not make the Twister workflow run
on the existing release branches -- what this does is to prepare for
the future release branches to run the Twister workflow in them.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit fixes the broken 'TSC Project Roles' link URL, which has
been recently changed with the documentation structure overhaul.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit updates the backport workflow to use the backport action
v1.1.1-3, which introduces the following enhancements:
1. Cherry-pick backport commits with the `-x` option to improve
traceability.
2. Disable incorrect warning when "rebase merge" method is enabled.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Prep work for the west release now that the first alpha is up.
This will allow the docs to be built and reviewed.
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
This reverts commit 4bb3039560, which is
no longer necessary because the manifest action now has the required
permissions to trigger another workflow.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit updates the CI manifest workflow to run the manifest action
as the 'zephyrbot' user instead of the 'github-actions' user.
The 'github-actions' user does not have the permissions required to
trigger another workflow and fails to trigger the "Do Not Merge"
workflow when it (un)labels a pull request with the "DNM" label.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
For some reason when the manifest action runs and removes the DNM label,
the Do Not Merge workflow doesn't run automatically. Force it running
whenever the Manifest workflow completes to fix this.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
This commit updates the CI documentation build workflow to upload the
HTML pull request documentation builds to the S3 builds.zephyrproject.io
bucket so that they are directly accessible from the web.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
This commit updates the license check workflow to use the v4 release
of the scancode action, which uses a more recent scancode version.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Pull in the CI docker image v0.22.0, which contains the Zephyr SDK
0.14.0 release, and use the Zephyr SDK 0.14.0 for building and testing
Zephyr in the CI.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
The twister workflow was invoking `west config`, which requires a west
workspace to be set up, prior to initialising the workspace via
`west init`.
This commit relocates the `west config` to be run after the workspace
initialisation.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
The filter in the testcase.yaml made it impossible for these to run.
Also, the Kconfig names for the options didn't really make much sense
so they were renamed to avoid conflict.
This fixes an issue found by #36433.
Signed-off-by: Yuval Peress <peress@google.com>
ZEPHYR_SDK_INSTALL_DIR is a required environment variable, otherwise the
script fails.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
This commit updates the Bluetooth test workflow to fetch all branches
during checkout by specifying the fetch depth of 0, in order to allow
rebasing onto the latest main branch before running the workflow.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
The 'bluetooth-tests' workflow is currently written such that it
only triggers on the pull requests that make changes to the files under
specific paths, which do not include the workflow itself.
This allows the workflow changes to be merged without being tested in
the CI and may lead to CI breakages when such changes contain errors.
This commit adds the workflow itself to the list of trigger paths so
that any changes made to the 'bluetooth-tests.yaml' and
'bluetooth-tests-publish.yaml' workflows are tested in the CI before
merging.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Like in most other actions, rebase the branch on to of the latest main
branch in order to ensure that we pick up any hotfixes.
Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
With this setting enabled, Git credentials are not kept after checkout.
Credentials are not necessary after the checkout step since we do not
do any further manual push/pull operations.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Split Bluetooth tests workflow into 2 steps:
- One that runs the actual tests and stored results
- A second one that fecthes and uploads tests results
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Make sure sources are up-to-date before installing any package. This is
causing failures on some workflows.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
The -q flag supresses all wget output, even when there is a failure.
This makes it difficult to diagnose CI failures when the download fails.
The --no-verbose flag is a better choice: it is silent enough but it
always shows the outcome.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
The documentation supports a special target named "html-fast" that skips
generation of all Kconfig pages. Instead, it creates a single dummy page
where a reference to all existing Kconfig options is placed. This means
that references are resolved, but content is not rendered. Since Kconfig
help is rendered as a literal, chances of breaking documentation
build due to Kconfig changes should be low. The change proposed in this
patch should speed up documentation build on pull requests while a
proper solution is found for the Kconfig docs.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Add the documentation build jobs to a concurrency group so that branch
force pushes will automatically cancel in progress jobs.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
When an error happens during the Sphinx build (e.g. due to a broken
reference), the process hangs on CI when run with both `-j auto`
(parallel build) and `-W` (warnings as errors) options. The root cause
of the issue is unknown, and does not seem to happen locally. Parallel
builds are experimental on Sphinx, so they have been disabled on CI for
now. Because CI runner is a single core machine, the build time should
remain equal or similar. The option is still left as default, so local
builds will continue to benefit from parallelization.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
We are reusing already checked out trees that might be in the middle of
a rebase or conflict. Remove files preventing us from doing another
rebase after the tree was reset.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Merge all results from all nodes and generate an HTML report and upload
it as an artifact for review of failures offline.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
If variable exit is not defined, the test is not properly executed.
Note that in case of an actual error the var would be defined and the
test executed properly.
Signed-off-by: Nicolas VINCENT <nicolas.vincent@vossloh.com>
Improve calculation of matrix and move calculations from workflow to the
testplan script. We now generate a file that can be parsed by the action
with the data needed to start twister with the right number of nodes.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
When the number of tests is smaller, but not too small, we still run on
10 builders, if the test is small enough however, we will determine the
number of builders automatically.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Pull in the CI docker image v0.21.0, which contains the Zephyr SDK
0.13.2 release, and use the Zephyr SDK 0.13.2 for building and testing
Zephyr in the CI.
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
Merged 3 files used to generate the test plan per PR based on the
changes. 2 python scripts and a shell script are now all merged into 1
python script that generates the input file for twister based on a list
of changed files by the PR.
This remove lots of old and obsolete code and simplifies things a bit,
no need anymore for an intermediate script to call twister, we call it
directly in the workflow and use the new test_plan script to generate
the test plan.
This also reenables the recently disabled tag based filtering which had
a bug, bug is resolved in this new implementation.
On push events, we now run twister without the --integration option to
catch any issues in the main branch that were not caught in PRs. PRs
continue to run with --integration enabled. This event (push) is now run
on 15 builders due to the increased size.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Give documentation build up to 30 minutes to finish. This should improve
the user experience when Sphinx hangs due to broken references, a
problem that needs some investigation.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
This action replaces current buildkite workflow and uses github actions
to build and run tests in the zephyr tree using twister. The main
differences to current builtkite workflow:
- the action handles all 3 events: pull requests, push and schedule
- the action determines size of matrix (number of build hosts) based on
the change with a minimum of 1 builder. If more tests are built/run
due to changes to boards or tests/samples, the matrix size is
increased. This will avoid timeouts when running over capacity due to
board/test changes.
- We use ccache and store cache files on amazon S3 for more flexibility
- Results are collected per build host and merged in the final step and
failures are posted into github action check runs.
- It runs on more powerful instances that can handle more load.
Currently we have 10 build hosts per run (that can increase depending
on number of tests run) and can deliver results within 1 hour.
- the action can deal with non code changes and will not allocate more
than required to deal with changes to documentation and other files
that do not require running twister
The goal long-term is better integrate this workflow with other actions
and not run unncessarily if other workflows have failed, for example, if
commit message is bogus, we should stop at that check, to avoid wasting
resources given that the commit message will have to be fixed anyways
which would later trigger another run on the same code.
Currently there is 1 open issue with this action related to a github
workflow bug where the final results are not posted to the same workflow
and might appear under other workflows. Github is working on this bug.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Process issues are tracked and do not need to be automatically made
stale.
Suggested-by: Anas Nashif <anas.nashif@intel.com>
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
Avoid rebasing and instead use the commit range. This avoids issues with
trees having intermediate rebase data after a reboot (due to
cancellation).
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Misc fixes including:
- unique job names
- Change description to mention Bluetooth
- Retry west update
- Use latest unit test publication action
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
- use zephyr runner
- reduce number of builders and adapt matrix to be platform based
- check for changed files and optimize run accordingly, should reduce
build times depending on what has changed
- If no source has changed, skip twister completely.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Add a code coverage collection action that triggers based on a schedule
on the main branch and posts results to
https://app.codecov.io/gh/zephyrproject-rtos/zephyr
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
Set the artifact run_id to the one from the doc-build workflow. This way
the downloaded artifact should always match the one from the build
action that triggered publish.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
To restrict the job to the upstream repository a new `if` entry was
added, however, another `if` was already present (violates yaml).
Combined the conditions into a single expression.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Add a new toctree with reference material, including:
- API docs (Doxygen)
- Kconfig options
- Devicetree bindings
Note that the toctree is rendered manually due to the limitations Sphinx
has when it comes to including relative URLs. Hardcoding absolute URLs
in toctrees is possible, but that means we'd need to update the toctree
on every release (to point to /version/ URL), and downstream users of
the documentation would have to manually patch the toctree with their
own URL. In order to make local builds work, version prefix is only
added if publish tag is provided.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Create a template for nominating GitHub users for an elevated
permission levels. Update the TSC Project Roles page to reference the
nomination template and add clarity to the GitHub permissions allowed at
each level.
Signed-off-by: Keith Short <keithshort@google.com>
Upgrade to Doxygen version 1.9.1. Package is downloaded directly from
the Doxygen official site, since it is not yet part of the latest Ubuntu
LTS. Note that libclang1-9 and libclang-cpp9 are runtime dependencies
required by Doxygen.
NOTE: Documentation can still be built with older Doxygen versions (e.g.
1.8.17 shipped with latest Ubuntu LTS), however, the template used in
upcoming patches claims to work better with Doxygen 1.9.1 or 1.9.2.
Using 1.9.1 as theme v1.6.0 has some issues on mobile view when using
Doxygen 1.9.2, see
https://github.com/jothepro/doxygen-awesome-css/issues/47.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Now that SDK 0.13.1 is released bump buildkite & github workflows
to use this SDK version and the docker image that has it.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Use 0.11.1 to build the docs. The docstrings are the same as 0.11.1a1,
so it doesn't make a difference in the output, but let's keep things
clean now that the final release is up.
Fix typos in the release notes.
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
With CMake minimum required as 3.20.0 we update CI to use docker image
v0.18.2, which contains CMake 3.20.5.
For doc builds we fetch the same CMake v3.20.5 but using pip as the doc
build doesn't use the docker image.
The main reason for increasing CMake version is better toolchain
support.
The decision to bump the CMake version was taken by the Toolchain WG.
Better toolchain support is added in the following CMake versions:
- armclang, CMake 3.15
- Intel oneAPI, CMake 3.20
- IAR, CMake 3.15 and 3.20
Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
To get confirmation this will work before I cut the release. That
pre-release is already available on PyPI.
Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
This reverts commit 40a5cf6016. Debug
information is no longer necessary as doc-publish workflow is now
working correctly.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Enable debug mode and disable quiet option. It should help diagnosing
AWS S3 problems. Some prints have also been added to spot potential
problems.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
`github.event.workflow_run.head_branch` contains the actual release tag
on releases, so it is required. It does not affect the publication of
"latest".
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Publish action has been refactored into a workflow_run based action.
The action is now triggered after a successful doc-build workflow run
(only on main/release branches). The artifacts are downloaded from the
build run and published accordingly. Publish code has been simplified a
bit and PDF upload has been added.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Artifacts will be required for the publish workflow, so do not let the
build workflow succeed without them being uploaded correctly.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
Storing west version in a single place avoids keeping duplicates in each
job. Also added a note on why pinning version is important: west
docstrings are extracted from the installed version.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
The pip cache should be discarded if any of the required dependencies
changes, so use the hash of the requirements file as a key source.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
xz compression reduces the html archive sice from ~350MB to ~90MB (at
the cost of more compression time). Compression has been moved to a
separate step.
Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>