On 3/6/25 9:04 AM, Alan Maguire wrote: > libbpf and bpf kernel patch infrastructure have made great use > of github actions to provide continuous integration (CI) testing. > Here the libbpf CI is adapted to build pahole and run the associated > selftests. Examples of what the action workflows look like are > at [1] and [2]. > > Details about the workflows can be found in patch 1. > > Patch 2 fixes an issue exposed by the dwarves-build workflow - > a compilation error when building dwarves with clang. > > > [1] https://github.com/alan-maguire/dwarves/actions/runs/13588880188 > [2] https://github.com/alan-maguire/dwarves/actions/runs/13588880200 Hi Alan. This is great! Glad to see you're working on it. I haven't read through the changes yet, but I already see that most of the CI code was copied from libbpf. Just want to note that you might not want to reproduce all the workflows from there in dwarves. And also there are inconveniences with local actions and ci/managers etc. I think it's worth it to try and eliminate as much of that code as possible, given you're starting from a blank slate. If you haven't done so already, you might want to check out "pahole staging" job that I tried on BPF CI infrastructure some time ago: https://github.com/kernel-patches/vmtest/pull/330/files It's a bit different from libbpf, as it reuses BPF CI workflows. But you might get some ideas there about simplifying dwarves CI. Another question is: are you sure about merging CI code upstream? Both for libbpf and kernel-patches/bpf the CI code lives independently of upstream and is synced from time to time on github. My guess is, it's because .github code is unlikely to get merged into the main Linux tree (which also makes sense). > > Alan Maguire (2): > dwarves: Add github actions to build, test > dwarves: Fix clang warning about unused variable > > .github/actions/debian/action.yml | 16 ++++++ > .github/actions/setup/action.yml | 23 ++++++++ > .github/workflows/build.yml | 37 ++++++++++++ > .github/workflows/codeql.yml | 53 +++++++++++++++++ > .github/workflows/coverity.yml | 33 +++++++++++ > .github/workflows/lint.yml | 20 +++++++ > .github/workflows/ondemand.yml | 31 ++++++++++ > .github/workflows/test.yml | 36 ++++++++++++ > .github/workflows/vmtest.yml | 94 +++++++++++++++++++++++++++++++ > ci/managers/debian.sh | 88 +++++++++++++++++++++++++++++ > ci/managers/travis_wait.bash | 61 ++++++++++++++++++++ > dwarves_fprintf.c | 2 +- > 12 files changed, 493 insertions(+), 1 deletion(-) > create mode 100644 .github/actions/debian/action.yml > create mode 100644 .github/actions/setup/action.yml > create mode 100644 .github/workflows/build.yml > create mode 100644 .github/workflows/codeql.yml > create mode 100644 .github/workflows/coverity.yml > create mode 100644 .github/workflows/lint.yml > create mode 100644 .github/workflows/ondemand.yml > create mode 100644 .github/workflows/test.yml > create mode 100644 .github/workflows/vmtest.yml > create mode 100755 ci/managers/debian.sh > create mode 100644 ci/managers/travis_wait.bash >