Commit Graph

31 Commits

Author SHA1 Message Date
Benjamin Cabé
6df72bf56e Revert "ci: workflows: remove unsupported Python version from test matrices"
This reverts commit bb983d09bf.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-07-04 15:50:06 -05:00
Benjamin Cabé
bb983d09bf ci: workflows: remove unsupported Python version from test matrices
Python 3.10 and 3.11 are no longer supported so drop them from the
GitHub Actions test matrices.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-19 09:36:17 +02:00
dependabot[bot]
f59a054ad7 ci: github: bump the actions-deps group across 1 directory with 8 updates
Bumps the actions-deps group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/setup-python](https://github.com/actions/setup-python) | `5.4.0` | `5.6.0` |
| [EnricoMi/publish-unit-test-result-action](https://github.com/enricomi/publish-unit-test-result-action) | `2.18.0` | `2.19.0` |
| [tj-actions/changed-files](https://github.com/tj-actions/changed-files) | `46.0.3` | `46.0.5` |
| [actions/download-artifact](https://github.com/actions/download-artifact) | `4.2.1` | `4.3.0` |
| [codecov/codecov-action](https://github.com/codecov/codecov-action) | `5.4.0` | `5.4.2` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.28.13` | `3.28.17` |
| [carpentries/actions](https://github.com/carpentries/actions) | `0.14.0` | `0.15.0` |
| [zgosalvez/github-actions-ensure-sha-pinned-actions](https://github.com/zgosalvez/github-actions-ensure-sha-pinned-actions) | `3.0.23` | `3.0.24` |



Updates `actions/setup-python` from 5.4.0 to 5.6.0
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5.4.0...a26af69be951a213d495a4c3e4e4022e16d87065)

Updates `EnricoMi/publish-unit-test-result-action` from 2.18.0 to 2.19.0
- [Release notes](https://github.com/enricomi/publish-unit-test-result-action/releases)
- [Commits](170bf24d20...afb2984f4d)

Updates `tj-actions/changed-files` from 46.0.3 to 46.0.5
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](823fcebdb3...ed68ef82c0)

Updates `actions/download-artifact` from 4.2.1 to 4.3.0
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](95815c38cf...d3f86a106a)

Updates `codecov/codecov-action` from 5.4.0 to 5.4.2
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](0565863a31...ad3126e916)

Updates `github/codeql-action` from 3.28.13 to 3.28.17
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](1b549b9259...60168efe1c)

Updates `carpentries/actions` from 0.14.0 to 0.15.0
- [Release notes](https://github.com/carpentries/actions/releases)
- [Commits](e27aa6c531...2e20fd5ee5)

Updates `zgosalvez/github-actions-ensure-sha-pinned-actions` from 3.0.23 to 3.0.24
- [Release notes](https://github.com/zgosalvez/github-actions-ensure-sha-pinned-actions/releases)
- [Commits](4830be28ce...2d6823da40)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 5.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions-deps
- dependency-name: EnricoMi/publish-unit-test-result-action
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions-deps
- dependency-name: tj-actions/changed-files
  dependency-version: 46.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: actions/download-artifact
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions-deps
- dependency-name: codecov/codecov-action
  dependency-version: 5.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: github/codeql-action
  dependency-version: 3.28.17
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: carpentries/actions
  dependency-version: 0.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions-deps
- dependency-name: zgosalvez/github-actions-ensure-sha-pinned-actions
  dependency-version: 3.0.24
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-07 21:21:05 +02:00
Benjamin Cabé
6f4bb7ef62 ci: github: bump the actions-deps group across 1 directory with 8 updates
Bumps the actions-deps group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4.1.7` | `4.2.2` |
| [actions/setup-python](https://github.com/actions/setup-python) | `5.4.0` | `5.5.0` |
| [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) | `8` | `9` |
| [tj-actions/changed-files](https://github.com/tj-actions/changed-files) | `46.0.1` | `46.0.3` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.3.5` | `4.6.2` |
| [actions/download-artifact](https://github.com/actions/download-artifact) | `4.1.9` | `4.2.1` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.28.11` | `3.28.13` |
| [zgosalvez/github-actions-ensure-sha-pinned-actions](https://github.com/zgosalvez/github-actions-ensure-sha-pinned-actions) | `3.0.22` | `3.0.23` |

Updates `actions/checkout` from 4.1.7 to 4.2.2
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.1.7...11bd71901bbe5b1630ceea73d27597364c9af683)

Updates `actions/setup-python` from 5.4.0 to 5.5.0
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](42375524e2...8d9ed9ac5c)

Updates `dawidd6/action-download-artifact` from 8 to 9
- [Release notes](https://github.com/dawidd6/action-download-artifact/releases)
- [Commits](20319c5641...07ab29fd4a)

Updates `tj-actions/changed-files` from 46.0.1 to 46.0.3
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](2f7c5bfce2...823fcebdb3)

Updates `actions/upload-artifact` from 4.3.5 to 4.6.2
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.3.5...ea165f8d65b6e75b540449e92b4886f43607fa02)

Updates `actions/download-artifact` from 4.1.9 to 4.2.1
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](cc20338598...95815c38cf)

Updates `github/codeql-action` from 3.28.11 to 3.28.13
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3.28.11...1b549b9259bda1cb5ddde3b41741a82a2d15a841)

Updates `zgosalvez/github-actions-ensure-sha-pinned-actions` from 3.0.22
to 3.0.23
- [Release notes](https://github.com/zgosalvez/github-actions-ensure-sha-pinned-actions/releases)
- [Commits](25ed13d062...4830be28ce)

---

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-03-31 20:16:41 -04:00
Anas Nashif
11ece85d1b ci: workflows: pin python dependencies
Pin python dependencies to hashes and cleanup/unify python setup steps in
various workflows.

We now have one dependency file containing all requirements for github
actions that is managed centrally with hashes. No direct pip installs
are needed in workflow files and everything shall go via the
requirements file.

Pinning to specific version and hashes helps with preventing supply
chain attacks.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-03-29 07:44:46 -04:00
Benjamin Cabé
c9a149349a ci: Update GitHub Actions workflows to follow principle of least privilege
Default to `permissions: read-all` in all workflows and then add
additional permissions as needed at the job level

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-03-19 18:53:52 -04:00
Benjamin Cabé
078ac84db0 ci: pin "actions/" GitHub Actions to SHAs
This commit follows up on e808ccfxy and completes the pinning of *all*
GitHub Actions to SHAs, including GitHub-owned `actions/*` actions.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-03-19 08:53:00 -04:00
Fabio Baltieri
93cb20befd ci: general pip cleanup
Cleanup all pip commands in the various workflow
- drop the install/upgrade for setuptool pip and wheel, seems like this
  was introduced few years back to work around some old bug and it's not
  needed anymore
- use pip instead of pip3, that's probably been equivalent for quite a
  long time in the CI image

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2024-12-20 18:31:48 +01:00
Pieter De Gendt
d66d3170cf ci: github: Run CI for python 3.13
Python 3.13 has been released, add it to the CI matrix for python
workflows.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-10-15 13:52:49 +02:00
Fabio Baltieri
df77d10597 ci: drop unused python exclusions
Drop some exclusions for python 3.6, this version is not tested in the
first place anyway so these are redundant.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2024-09-12 12:59:07 -04:00
Henrik Brix Andersen
fa4537df8f ci: move github runners from macos-11 to macos-14
Move the GitHub runners currently on macos-11 to macos-14 as the former is
no longer supported by GitHub.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-07-01 18:12:21 +02:00
Benjamin Cabé
8b978ac1dc doc: ci: Zephyr now requires Python 3.10 or higher
Update getting started guide, release notes, and CI actions to
use Python 3.10 as minimum supported version.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2024-05-06 14:56:08 +01:00
Fabio Baltieri
053be02994 github: upgrade all setup-python actions to v5
The current version is generating a deprecation warning:

Node.js 16 actions are deprecated. Please update the following actions
to use Node.js 20: actions/setup-python@v4.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2024-03-07 14:33:06 +00:00
Jordan Yates
0dcb0518be ci: update Github actions versions
Update Github actions to their latest versions to fix the following
warnings on runs:
```
Node.js 16 actions are deprecated. Please update the following actions
to use Node.js 20: actions/checkout@v3, actions/cache@v3,
actions/upload-artifact@v3. For more information see:
https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
```

`actions/checkout` and `actions/cache` are straight Node version
upgrades, `actions/upload-artifact` and `actions/download-artifact` have
breaking changes, but don't appear to affect our usage.
https://github.com/actions/upload-artifact

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
2024-01-30 18:51:12 -05:00
Henrik Brix Andersen
9b851b2ab8 ci: test using Python 3.12 as well
Run CI tests against Python v3.12 as well.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2023-10-26 07:17:10 +02:00
Henrik Brix Andersen
9a7671e521 ci: test using Python 3.11 as well
Run CI tests against Python v3.11 as well.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2023-10-25 10:06:01 +02:00
Stephanos Ioannidis
b1e4116d40 ci: Use Ubuntu 22.04
This commit updates the CI workflows to use the GitHub Ubuntu 22.04
virtual environment for running jobs.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2023-04-14 02:39:47 +09:00
Fabio Baltieri
dd462028b3 yamllint: indentation: MAINTAINERS and workflows
Fix the indentation on the remaining YAML files.

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2023-01-04 14:23:53 +01:00
Stephanos Ioannidis
7272159c11 ci: Limit workflow scope branches
This commit updates the CI workflows that trigger on both push and pull
request events to limit their event trigger scope to the main and the
release branches.

This prevents these workflows from simultaneously triggering on both
push and pull request events when a pull request is created from an
upstream branch to another upstream branch (e.g. pull requests from
the backport branches to the release branches).

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-11-02 22:10:19 +09:00
Stephanos Ioannidis
dd6e1b9f5a ci: Use actions/cache@v3
This commit updates the CI workflows to use the latest "cache" action
v3, which is based on Node.js 16.

Note that Node.js 12-based actions are now deprecated by GitHub and may
stop working in the near future.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-10-14 12:03:07 +09:00
Stephanos Ioannidis
f86be3fe7e ci: Use actions/setup-python@v4
This commit updates the CI workflows to use the latest "setup-python"
action v4, which is based on Node.js 16.

Note that Node.js 12-based actions are now deprecated by GitHub and may
stop working in the near future.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-10-14 12:03:07 +09:00
Stephanos Ioannidis
216b0e6778 ci: Use actions/checkout@v3
This commit updates the CI workflows to use the latest "checkout"
action v3, which is based on Node.js 16.

Note that Node.js 12-based actions are now deprecated by GitHub and may
stop working in the near future.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-10-14 12:03:07 +09:00
Carles Cufi
5fd3cbf9a7 actions: Make Python 3.8 the minimum required version
Change the matrix so that we now start testing 3.8+. No need to exclude
any particular OS/Python version combinations.

Signed-off-by: Carles Cufi <carles.cufi@nordicsemi.no>
2022-08-24 18:35:57 +02:00
Stephanos Ioannidis
1a84bb5ba7 ci: devicetree_checks: Use specific version of runner image
This commit updates the "Devicetree script tests" workflow to use a
specific runner image version (ubuntu-20.04, macos-11, windows-2022)
instead of the latest version in order to prevent any potential
breakages due to the 'latest' version change by GitHub.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-08-23 03:10:29 +09:00
Anas Nashif
773242cbb7 actions: west/devicetree: exclude python 3.6 on windows
This version of python is not available anymore. Excluding for now to
unblock CI.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2022-02-08 16:10:46 -05:00
Henrik Brix Andersen
d198da7bb4 actions: exclude Python 3.6 tests on macos-latest
Python 3.6 support is no longer available on macos-latest. Exclude it.

Signed-off-by: Henrik Brix Andersen <henrik@brixandersen.dk>
2021-10-05 19:37:02 -04:00
Martí Bolívar
5332847644 dts: separate DT libraries from gen_defines.py
We are now in the process of extracting edtlib and dtlib into a
standalone source code library that we intend to share with other
projects.

Links related to the work making this standalone:

    https://pypi.org/project/devicetree/
    https://python-devicetree.readthedocs.io/en/latest/
    https://github.com/zephyrproject-rtos/python-devicetree

This standalone repo includes the same features as what we have in
Zephyr, but in its own 'devicetree' python package with PyPI
integration, etc.

To avoid making this a hard fork, move the code that's being made
standalone around in Zephyr into a new scripts/dts/python-devicetree
subdirectory, and handle the package and sys.path changes in the
various places in the tree that use it.

From now on, it will be possible to update the standalone repository
by just recursively copying scripts/dts/python-devicetree's contents
into it and committing the results.

This is an interim step; do NOT 'pip install devicetree' yet.
The code in the zephyr repository is still the canonical location.

(In the long term, people will get the devicetree package from PyPI
just like they do the 'yaml' package today, but that won't happen for
the foreseeable future.)

This commit is purely intended to avoid a hard fork for the standalone
code, and no functional changes besides the package structure and
location of the code itself are expected.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
2021-04-02 08:28:12 -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
Ø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
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