Commit Graph

126 Commits

Author SHA1 Message Date
Guennadi Liakhovetski a4c8d4ef79 Intel: remove XTOS support
XTOS isn't supported any more for Intel platforms, remove support for
it.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-05-11 19:17:17 +03:00
Marc Herbert 45c3f13215 .github/fuzzer: add IPC matrix and IPC4 to new fuzzer
Hot on the heels of PR #7531.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-05-11 11:43:07 +03:00
Marc Herbert 1f9c58af6f .github/fuzzer: fix comment indentation, applies to only one fuzzer
Fix the comment indentation to show it applies only to the older fuzzer.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-05-11 11:43:07 +03:00
Marc Herbert de6690f104 .github: upgrade most runners to latest Ubuntu 22.04
Let's not fall behind.

Ubuntu 22.04 is the latest runner offered by Github:
https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-05-08 12:21:55 +03:00
Marc Herbert 65a68b7c31 .github: upgrade all checkout actions to v3
Search and replace checkout@v2 with checkout@v3.

This finally gets rid of all warnings "Node.js 12 actions are
deprecated".

We've been using v3 in a few other places and never met any backwards
compatibility issue.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-05-04 16:46:43 +03:00
Marc Herbert 6f9f2ee28e .github/zephyr: build with the debug overlay and CONFIG_ASSERT
This makes sure Zephyr's -fmacro-prefix-map is working and keeps the
builds reproducible when using a recent enough toolchain.

As found in the CONFIG_ASSERT PR
https://github.com/thesofproject/sof/pull/6530#issuecomment-1482330214
this is not true for old Xtensa toolchains.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-04-25 13:22:41 +03:00
Marc Herbert 4286bb3ee1 .github/zephyr: west update with new, faster git --filter-tree:0
Twice faster than shallow clones without any of the git describe or
other hassle. More info in
https://github.com/zephyrproject-rtos/west/issues/638

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-04-25 13:22:41 +03:00
Greg Galloway f7a1d2aaf8 Update pull-request.yml
A small typo, but irrelevant as this PR doesn't need to be merged.

Signed-off-by: Greg Galloway <greg.galloway@intel.com>
2023-04-24 22:22:16 +01:00
Marc Herbert 9cd7090345 .github/zephyr: add -Werror to AFLAGS, not just CFLAGS
Past Zephyr experience showed that CFLAGS is not enough to cover all
cases: https://github.com/zephyrproject-rtos/zephyr/commit/8a603da6cde63

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-04-24 22:08:27 +01:00
Guennadi Liakhovetski f772b39e4d sparse: use CONFIG_LOG_USE_VLA=n
Sparse output is spammed with "Variable length array" warnings from
Zephyr logging system. The use of VLAs there can be disabled via
Kconfig. Do that to avoid exceeding sparse's warning maximum and
losing important warnings.

Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2023-04-19 14:57:55 +03:00
Marc Herbert 4311da195d .github/zephyr: move zephyr revision in first results matrix position
Recent experience has shown that upstream Zephyr regressions are much
more common than platform-specific failures. So move the Zephyr version
in first position, so this will group zephyr regressions and make them
much more obvious.

Use very short keys for the revisions because the left column in
Github's results "checks" tab is very narrow and cannot be resized.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-04-19 14:44:11 +03:00
Marc Herbert c47221f22b .github/ipc_fuzzer.yml: add new scripts/fuzz.sh
Should avoid future regressions like the one fixed by #7318

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-03-24 16:20:23 +00:00
Marc Herbert 1b95f4c7b3 .github/zephyr.yml: add a temporary submodules/west consistency check
Real-world experience has proved again that big READMEs are not enough,
not even when they're only a couple lines away as the one added in
commit 8fd351ea9a ("west.yml: add warning to keep git submodules in
sync"). Only some failure / red color stand a chance.

It also seems some people rarely use "git status". This was discovered
in commit d9eb16aa66 ("cmake: add warning when git submodule changes
are found") but is still surprising.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-03-23 19:04:38 +02:00
Marc Herbert 6838224286 .github/zephyr: test new fancy --filter=tree:0 cloning option
Test new, fancy and impressive looking git --filter optimization on
non-critical "manifest check". Extend it later to other checks if it
hasn't caused any issue.

https://github.blog/2020-12-21-get-up-to-speed-with-partial-clone-and-shallow-clone/
https://github.com/zephyrproject-rtos/west/issues/638#issuecomment-1478925589

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-03-23 19:04:38 +02:00
Marc Herbert 11441d8540 zephyr/docker-run.sh: hardcode zephyr-build img to Zephyr SDK 0.15.2
Windows has always been hardcoded to 0.15.2 in .github Actions.

Fixes the compare-linux-windows check that just started to fail in daily
build https://github.com/thesofproject/sof/actions/runs/4400264770

The ":latest" zephyr-build image was just upgraded to the Zephyr SDK
0.16.0-rc1
https://hub.docker.com/layers/zephyrprojectrtos/zephyr-build/latest/images/sha256-91ef9e556aa2a6b5ee5397536e6c441b87fbaef82b9dfc0d12287c39d884d0af?context=explore

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-03-13 21:59:42 +00:00
Marc Herbert 0a835bdb41 .github/sparse-zephyr: add missing workflow_call to fix daily tests
Fixes commit 98b4625a0d (".github/daily-tests.yml: add
sparse-zephyr.yml") and daily tests which just started failing as
found by @aborisovich in
https://github.com/thesofproject/sof/actions/runs/4333619550 and
others (thanks!).

Signed-off-by: Marc Herbert <marc.herbert@gmail.com>
2023-03-06 12:06:09 +00:00
Marc Herbert 98b4625a0d .github/daily-tests.yml: add sparse-zephyr.yml
Because why not.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-03-03 16:13:25 +00:00
Marc Herbert 1db950e078 .github/SPDX-README.md: clarify .c/.h difference and applicability
Explain when this file applies and why there is a .c/.h difference.

I still don't understand why .c file don't use /* SPDX */ but I think
it's still worth quoting a tiny bit from the official documentation
anyway.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-01-27 10:59:24 +00:00
Marc Herbert 35dda2ae27 .github/zephyr: compare Windows and Linux builds
The End.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-01-23 19:28:51 +02:00
Marc Herbert 1193203717 .github/zephyr: align git fetch and describe across Windows and Linux
Fetching different tags causes `git describe` output to be different.

Fixes commit 68b49c186e (".github/zephyr: switch Windows build to west
update --narrow")

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-01-23 19:28:51 +02:00
Marc Herbert 68b49c186e .github/zephyr: switch Windows build to west update --narrow
It is slightly faster and able to test any random SHA1.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-01-18 13:58:58 +00:00
Marc Herbert ab56445924 .github/zephyr: add new manifest-check
Other jobs typically use `west update --narrow` which is faster but also
able to fetch "wild" SHA1s from any random place!  It is useful for
testing unmerged Zephyr commits but risks accepting "invalid" zephyr
commits; this will not.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-01-18 13:58:58 +00:00
Marc Herbert 0929af4f8c .github/zephyr: replace "TODO: cache docker pull" comment with a link
Caching `docker pull` does not work for size and other reasons, add a
link to the failed experiment.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-01-18 13:58:58 +00:00
Marc Herbert 82220c823c github: add new SPDX-README.md and show it when checkpatch fails
Pleasing checkpatch is hard when adding new files.

This is tricky and comes up every time someone adds new files, examples
in #6284, #6796, #6931 , etc.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-01-11 17:10:43 +00:00
Marc Herbert 0658767b72 .github/sparse-zephyr: docker pull in a separate step
This saves a lot of scrolling in the next, most popular build step.

Missed in previous commit 52223eba2d (".github/zephyr: docker pull in
a separate step")

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-01-04 13:51:19 +02:00
Marc Herbert 8dd1fce6da .github/zephyr: fix uploads overwriting each other
From
https://github.com/actions/upload-artifact#uploading-to-the-same-artifact

> Warning: Be careful when uploading to the same artifact via multiple
> jobs as artifacts may become corrupted.

Fix bug where IPC3 and IPC4 builds were randomly overwriting each
other and the same bug with different Zephyr revisions.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-12-29 11:59:08 +02:00
Marc Herbert 52223eba2d .github/zephyr: docker pull in a separate step
This saves a lot of scrolling in the next, most popular build step.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-12-23 11:00:38 +00:00
Andrey Borisovich 7531094050 .github/workflows: zephyr workflow windows-build uploads artifacts
Github allows to store build artifacts for 90 days after the build.
Somebody might want to examine the output of the build, now can
easily download everything that job produces.
In example, compile_commands.json file contains all compilation
commands in verbose that are not visible in the build log
by default.

Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
2022-12-21 11:46:28 +00:00
Andrey Borisovich f51f296572 .github/workflows: added concurrency group to Zephyr workflow
Recently new feature had been introduced to Github actions
"concurrency" that allows to define a name for a group of workflows
that will cause old workflow to stop if the new one had been created
and the group name matches.
This improves usage of resources in SOF project by cancelling
running workflows when pushes to pull requests are done frequently
before old jobs are completed.

Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
2022-12-21 11:46:28 +00:00
Andrey Borisovich 30c43c6dff .github/workflows: renamed Zephyr workflow "build" job to "build-linux"
Zephyr workflow had been added new build-windows job.
It makes sense to rename old "build" job yo "build-linux"
for consistency.

Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
2022-12-21 11:46:28 +00:00
Andrey Borisovich df1ba22230 .github/workflows: added Windows CI job to Zephyr workflow
Added new job to Zephyr workflow running on windows-latest.

Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
2022-12-21 11:46:28 +00:00
Marc Herbert 2ea4bc0ec4 .github/pull-request.yml: upgrade checkout v2 -> v3
This upgrade was already performed for other jobs in commit
f71eb15818 (".github/workflows: upgrade actions/checkout@v2 -> v3")
and everything went fine. Finish the job and get rid of the last
warnings in the daily tests (example:
https://github.com/thesofproject/sof/actions/runs/3709176785)

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-12-19 16:44:36 +00:00
Marc Herbert d652d1cd16 .github/zephyr: re-add TGL IPC3 build for now
Partial revert of commit 687c6f305e (".github: workflow: removed
legacy RTOS platforms from Zephyr build") that was a bit too
"enthousiastic".

When someone breaks the Zephyr+IPC3 build we'd like to: 1. notice, 2.
tell whether it's Intel-specific, IMX-specific or not specific.

This is a one-line change and unlike testing, building is "free".
It can be removed in a second when/if that becomes a burden.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-12-16 15:44:00 +02:00
Marc Herbert 03c078935d .github/zephyr: use a single job for both tgl and tgl-h
The list is getting too long and the "checks" box in the Github User
Interface is small.

Fixes commit 543acc124d (".github/workflows: add tgl-h IPC4 build")

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-12-16 15:44:00 +02:00
Kai Vehmanen 543acc124d .github/workflows: add tgl-h IPC4 build
Add build check for Intel 'tgl-h' IPC4 build.

Link: https://github.com/thesofproject/sof/issues/6710
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2022-12-15 09:09:03 -08:00
Marc Herbert 6516f907aa sparse: pass platform argument to error filter script
So we can make adjust the warnings based on the platform.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-12-12 12:05:26 +00:00
Marc Herbert 2aa9527d0a .github/sparse: use --pristine
--pristine makes no difference for github but it's a good for anyone
trying to reproduce results and copying the command.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-12-12 12:05:26 +00:00
Marc Herbert 89ddee6961 .github/zephyr: git fetch more to fix version.h and reproducibility
We need the ability to reproduce CI builds easily.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-12-09 15:49:28 +00:00
Marc Herbert f71eb15818 .github/workflows: upgrade actions/checkout@v2 -> v3
This should get rid of most warnings in daily tests

```
Node.js 12 actions are deprecated. For more information see:

https://github.blog/changelog/
 2022-09-22-github-actions-all-actions-will-begin-running-on-node16...
Please update the following actions to use Node.js 16: actions/checkout@v2
```

Example at
 https://github.com/thesofproject/sof/actions/runs/3597808171

v3 seems backward compatible. Upgrade only the most used instances for
now (most used because of the `matrix` of platforms), upgrade everything
in a few days if no issue is spotted.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-12-07 11:53:47 +00:00
Andrey Borisovich 687c6f305e .github: workflow: removed legacy RTOS platforms from Zephyr build
Legacy platforms not meant to work with Zephyr were added
in commit ".github: compile-test multiple zephyr revisions + IPC4"
(8543f5c889).
Removed them from CI as they never should be built in the first place.

Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
2022-12-02 12:36:15 +00:00
Andrey Borisovich b426d288d4 workflow: added daily tests
Existing daily tests run "Main Action" workflow from
pull-request.yml at 00:00 UTC time.
Tests may also be executed manually from Github Action tab.

Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
2022-11-30 14:40:14 +00:00
Andrey Borisovich 98cbc7269d workflow: made "Main Actions" and "Zephry" workflows reusable
Reusable actions may be triggered by other actions in the
repository. Those two actions will be triggered by new
daily testy action at specified time of the day.

Signed-off-by: Andrey Borisovich <andrey.borisovich@intel.com>
2022-11-30 14:40:14 +00:00
Marc Herbert 606e3bed34 .github/checkpatch: rename --strict to --subjective
--subjective is strictly (pun intended) equivalent to --strict but it
makes it more obvious that "checkpatch is not always right" (c)
https://www.kernel.org/doc/html/latest/dev-tools/checkpatch.html

This should save some time in situations where some warnings conflict
with each other like for instance
https://github.com/thesofproject/sof/pull/6655#discussion_r1031572596

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-11-30 11:47:56 +00:00
Marc Herbert 04e63a90eb .github/sparse-zephyr: build and use our own sparse branch
We need urgent fixes like
`xtensa: switch to little endianness`
https://marc.info/?l=linux-sparse&m=166861736724543
and others.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-11-22 09:19:45 +00:00
Marc Herbert 14b2f89bd4 .github/sparse-zephyr: align Ubuntu version with zephyr-build
Safer to have nested containers identical to each other, will help share
binaries.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-11-22 09:19:45 +00:00
Marc Herbert 51310587f0 .github/sparse-zephyr: show full log first, then filtered sparse issues
Implement Guennadi's idea in #6590

Discarding all the output is too confusing.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-11-22 09:19:45 +00:00
Marc Herbert edb98071f8 .github: move sparse job to a separate workflow
Zero code change, pure move to a new file.

Similarity is not a very strong reason for the sparse job to be in the same
file as regular Zephyr compilation.

Unlike plain Zephyr compilation, the sparse job is very much a "work in
progress" which is currently failing all the time. Moving it to a
different file/workflow provides more configuration flexibility.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-11-18 10:49:20 +00:00
Marc Herbert b7708182fb .github: fail on errors and address space warnings in sparse output
sparse does not have a useful exit status so let's use 'grep' instead.

Fixes: #6317

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-11-01 10:55:58 +00:00
Marc Herbert de90f55657 .github: extract standalone testbench.yml from Main Actions
Divide and Conquer.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-10-24 12:20:11 +01:00
Marc Herbert 6adf9acbad .github/sparse: add MTL
Add the wrong compiler currently expected by the Zephyr build system,
very easy one-line change later, get sparse results for MTL NOW!

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2022-10-19 16:36:41 +03:00