Automated translation updates from Weblate and dependency bumps from
Dependabot do not trigger the formality webhook [1].
Consequently, the build workflow hangs indefinitely
on the 'Wait for FormalityCheck' step and
subsequently fails/times out.
- Let's skip it entirely for weblate PRs and do not build packages with
new translations as we discussed it and we don't need it currently
- Allow building packages for other bots as Dependabot, Copilot,
because sometimes they can introduce breaking changes and we
need to know, if it does not break CI/CD stuff.
[1] https://github.com/openwrt/openwrt-bot-worker/blob/31112ca8c0c60e64c002eef72137d6c085efa9f2/cloudflare-worker/src/index.js#L129
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Since the formality checks are now automated via the webhook, contributors
no longer need to manually go through a checklist. The bot will flag any
issues, request fixes, and apply a label indicating that requirements are
not met. Once all issues are resolved, the label is automatically removed.
This also benefits maintainers during review, as the previous manual
checklist could be skipped or filled with inaccurate information.
Remove the checklist items that are now automatically enforced and keep
only the ones that are not yet automated and still make sense to have.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Replace the external formality check GitHub Action with a lightweight
webhook managed by the openwrt-bot-worker engine.
Using a webhook instead of a heavy GitHub Action workflow is much more
suitable for quick formality checks. GitHub Actions are constrained by
concurrency limits across repositories, often causing long delays. In
contrast, the webhook validates commits near-instantly.
The validation rules are configured via `.github/formalities.json`. Since
verifying `PKG_VERSION`, `PKG_RELEASE`, and mandatory release notes are
not relevant for the LuCI repository (unlike packages), these checks are
disabled.
Additionally, the formality check is now a hard requirement. The build
workflow will only run once the formality check passes, saving runner
resources.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Replace the custom build job with the reusable workflow from
`actions-shared-workflows`. Pass a custom matrix to build only for
`x86_64` (target `x86-64`) as was previously defined to save GitHub
Actions resources.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Remove the redundant `check_source_branch_is_not_master.yml` workflow and
enable `check_branch` in HyperStickler formal workflow to check the source
branch name during pull request verification.
This saves GitHub Action runner resources by consolidating the check into
the existing HyperStickler job instead of spawning a separate workflow run.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Migrate the `jsdoc.yml` workflow from the legacy, branch-based Pages
deployment (using `peaceiris/actions-gh-pages`) to GitHub's native,
artifact-based Pages deployment.
This eliminates git commit pollution on the `gh-pages` branch and
uses the officially recommended Actions-based Pages deployment flow.
Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
Add a nightly LLM-driven PR review for the LuCI repo, calling the
reusable workflow in actions-shared-workflows. The extra_repos list
pre-clones LuCI's typical backends (rpcd, netifd, firewall4, ucode,
uhttpd, packages, openwrt) so the routine can verify cross-repo
references without re-cloning per PR.
Also add .github/llm-review-rules.md with two project-specific rules
the system prompt does not cover: redirecting PRs that touch
out-of-tree luci-app-* packages, and checking that new UCI options
have a backend consumer.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
For PR template, minor fix to 'please read'
section, as symbol spacing was different
on GitHub website than on GitHub Desktop.
Added HTML comment with example on how
to complete the checklist using [x]. Added
examples to the 'tested on' section.
Added abbreviation explanation for PR to
better understand terminology, similar to
using S.O.B. For CONTRIBUTING.md,
bumped up release branch example, and
minor capitalisation fixes for PR.
Signed-off-by: Joshua Criss <owlsy@outlook.com.au>
As a new person to contributing on GitHub,
I noticed the Pull Request template missing
some important information that I would not
have known until I tried my first Pull Request,
such as the character limits and email
requirements. I've seen others also get
tripped up by this too, as they also were not
aware until afterwards. So, I have tried to
include the common ones into the template.
I have also prepared a layout that would
ensure a more uniform experience when
looking through Pull Requests, with expected
headings and the ability to provide the
instruction of what to put under each heading.
Minor grammar and punctuation edits as well.
If the layout is preferred as a seperate Pull
Request, let me know and I will do so.
Will also update the CONTRIBUTING.md
file to achieve the same goal as well.
Signed-off-by: Joshua Criss <owlsy@outlook.com.au>
follow-up to 90836a0fac
until a proper 'github-pages' environment is configured,
go back to the older working method.
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
bump checkout to 6
Included is a selection of rules which flag common problems.
Lint
-JS ( ESlint )
-JSON ( https://github.com/eslint/json )
-JSDoc (comment matter) in the luci-base module
-Markdown ( https://github.com/eslint/markdown )
For JSON, mandate standard JSON (not JSONC or JSON5) format,
**/*.json checks across the whole repo.
For JS, mandate sourceType: 'script', otherwise the linter
errors out about return methods in modules which masks other
problems. There are a number of structural design changes
needed to bring this repo into compliance with standards.
Each JS file is an individual script, despite their module
like structure, so functions and classes offloaded to
'common' files (individual scripts and not modules) are
invisible to linters unless we define them under the 'globals'
key. Custom rules and parsers are also possible.
For JSDoc, mandate some common checks to ensure the repo
will generate consistent documentation which links and displays
well.
For MD, check also JS syntax inside MD, as well as MD itself.
JS checks inside MD are not strict.
Included also eslint-formatter-gha (-f gha) which comments
on PRs when problems are detected in code additions. Actions
show green when no errors are reported (warnings are a pass)
but the gha will comment about warnings.
Flag `--diff-filter=ACM` shows only additions, and not
deletions.
Signed-off-by: Paul Donald <newtwen+github@gmail.com>
Enable posting formality check comments and warn if 'Allow edits and
access to secrets by maintainers' is not checked.
Signed-off-by: George Sapkin <george@sapk.in>
With APK defaulted on openwrt:main, we should include packages with the
.apk file extension as artifacts. Also default the logging to V=s as
otherwise the APK version check won't be printed to stdout.
Signed-off-by: Daniel Nilsson <dannil+github@protonmail.com>
Code quality scanning (for JavaScript, JSON, HTML) for pushes and PRs
to master.
A repo scan takes roughly 4 minutes.
Signed-off-by: Paul Donald <newtwen@gmail.com>
this will prevent a large amount of
deploy: <sha>
to openwrt/gh-pages branches when nothing there has changed
Note: it may not be a bad idea to have docs compile at every commit,
since docs do not change *that* often, and some action or process that
breaks is likely noticed sooner if docs that compile continuously
trigger any broken processes or workflows.
While all LuCI packages should always build fine, this allows others to
directly install those packages within test setups.
Signed-off-by: Paul Spooren <mail@aparcar.org>
the overview README contains links for the client and server side API,
it's a markdown file and therefore requires jekyll to run.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Use a GitHub Action to keep the docs updated, the current onces are 14
month old and outdated.
Use latest jsdoc package
Add full URL to LuCI.html file in README.md
Ignore generated HTML files via .gitignore
Signed-off-by: Paul Spooren <mail@aparcar.org>