Implement a nightly LLM review workflow that triggers
a reusable digest workflow from openwrt/actions-shared-workflows.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
While at it, we synchronized .github/formalities.json with the current
default settings of the webhook bot.
Since the bot is shared across all OpenWrt repositories, the stale PR
cleanup is disabled by default at the repository level. Because this
repository wants to use stale triage, we explicitly enable it here.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
- Change trigger back to pull_request to ensure it runs correctly on fork PRs
- Add a wait-for-formalities job that polls the GITHUB_TOKEN for FormalityCheck status
- Execute the feeds package test build only when the formalities check succeeds
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
- Change trigger from check_run to check_suite completed event
- Run feeds test build only when all checks in the suite succeed
Fixes: ef633e9 ("ci: replace GitHub actions (labeler, formalities) by webhook")
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
- Added file .github/formalities.json, which can be configured
in this repository, otherwise it uses defaults.
- Removed GitHub Action Labeler workflow as it was implemented
by webhook to be faster
- Updated multi-arch-test-build.yml to run builds when Formalities Check passes
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Refactor the PR labeler workflow to checkout the base repository ref
instead of the pull request head ref from forks, resolving checkout
errors inside the pull_request_target context.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
When a contributor pushes a new commit to an open PR, the previous
Test and Build run is no longer informative and only consumes a
runner slot that the new run could use. Add a concurrency group
keyed on the workflow name and ref so a fresh push cancels the
prior in-progress run for the same PR.
Since this workflow only triggers on pull_request, the ref is
always refs/pull/<num>/merge (unique per PR), so cancel-in-progress
can be set unconditionally.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add a recurring workflow that runs every day at 5:30 and marks all PRs
that have formality check failures (i.e. marked as 'not following
guidelines') that have not been active in the past 14 days as stale.
Close stale PRs after 14 more days.
Signed-off-by: George Sapkin <george@sapk.in>
Add 'Add package' label when a new Makefile is added or 'Drop package'
when a Makefile is deleted.
Label PRs to OpenWrt 25.12 branch.
Label CI-related PRs.
Signed-off-by: George Sapkin <george@sapk.in>
Disable posting formality check status comments and adding related
labels while the security token is being figured out.
Link: https://github.com/openwrt/packages/pull/28011
Fixes: 2c558a8 ("ci: label formality failures")
Fixes: 7658669 ("multi-arch-test-build: post formal summaries to PR")
Signed-off-by: George Sapkin <george@sapk.in>
Label based on target release branch. Labels must be manually defined to
avoid giving the action unnecessary permissions. Release labels must be
defined in the config after each release is forked.
Signed-off-by: George Sapkin <george@sapk.in>
Most of the time, when people contribute to the repository for the first time
(or after a longer break), the multi-arch-test-build passes, but the
formality check fails and requires the contributor to make some changes.
This creates unnecessary load on the CI/CD, since the multi-arch-test-build
runs again even though it already passed, while other PRs are waiting for a runner.
Hopefully, this change will help decrease the waiting time.
Proposed changes:
- Run the formality check first, and only trigger the package tests afterwards.
This can be done using needs: https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idneeds
- Merge formal.yml into multi-arch-test-build.yml so that needs can be used.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
This change follows the structure of GitHub workflow
folders from the main OpenWrt repository, where scripts
are in separate folder.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Lets switch to shared workflow in actions-shared-workflows instead of having
this separate file here. It will track and use the latest changes to avoid
being outdated.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Using -ne wasn't such a good idea since it would do a numeric compare.
Now use -n which checks if the length is non-zero. APK prints the
problematic version if - problematic - so this should now do the trick.
Signed-off-by: Paul Spooren <mail@aparcar.org>
This action was mostly based on the autorelease CI job and somehow there
is an error that if multiple packages are affected, the path is
concatenated instead of adding a space.
Secondly the APK return code 0 wasn't good enough for the if condition
and caused it to trigger even on valid versions.
Signed-off-by: Paul Spooren <mail@aparcar.org>
APK uses a deterministic version schema, have the CI check that changed
packages actually follow that version schema.
Signed-off-by: Paul Spooren <mail@aparcar.org>
With the commit 01e5cfc "CI: Add target/arch tags (no suffix) for
snapshot images"[1] the os/platform is set for all images, which is usually
different from what the GitHub action runner uses (x86). The Docker
deamon still tries to fetch the x86 version and fails.
This commit explicitly sets the fitting arch.
[1]: https://github.com/openwrt/docker/commit/01e5cfccd73a72ecab730496607c7c22b904f366
Signed-off-by: Paul Spooren <mail@aparcar.org>
Commit 18d3c529fa caused CI_HELPER to be
set to "''" (two single quotes), leading to an error when test.sh tries
to source $CI_HELPER.
CI_HELPER is not set anywhere else and not passed into the container
environment, so there is no need to test if it has a value.
This fixes the value of CI_HELPER.
Fixes: 18d3c529fa ("github-ci: error on any shell errors")
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
The updated version of gh-action-sdk will return compiled packages and
build logs for both build success and build errors.
This ensures these artifacts are always uploaded. This also sets the V
environment variable to enable verbose build output.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
Currently, the run-test code tries to find the package source directory
based on the directory name only. This fails for the Go compiler package
because there is more than one directory named "golang".
This uses the full path listed in the "Source:" line of the control file
to find the package source directory.
This also:
* Checks for the test script earlier, to avoid installing and removing
ipk files when there is no test script to be run
* Makes PKG_VERSION parsing more lenient, as the package may not have a
PKG_RELEASE, e.g. attendedsysupgrade-common
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
Add concurrency rules to skip redundant build to skip extra build test
on force push on pull request.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Currently, the package run-test phase will fail for PRs that only
add/update host-only packages, as no target packages (*.ipk) are built.
This checks if any target packages are built before attempting the
run-tests.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>
Some packages variants have conflicting dependencies with the
base packages and the CI test will fail to install before anything
can be done by the packages to setup the system for install.
This change adds a pre-test.sh that runs before the install so things
like the default libustream variant can be swapped out as shown in the
updated cache-domains.
Signed-off-by: Gerard Ryan <G.M0N3Y.2503@gmail.com>
To test each package, the CI-built target package (ipk) file is
installed, but currently the target package's dependencies are installed
from the standard opkg feeds.
There are cases when the CI-built target packages should be
installed/tested together:
* If a pull request contains several new packages that depend on each
other, the test step will fail as the new dependencies cannot be found
in the current packages feed.
* If a pull request upgrades a source package that builds several target
packages that depend on each other, the test step may fail due to the
version/ABI mismatch between a newer target package and the older
dependencies installed from the packages feed.
This sets up a local feed for the CI-built packages so that dependencies
are also installed from the same set of packages.
Signed-off-by: Jeffery To <jeffery.to@gmail.com>