The "changed package" logic triggers all packages changed since
`origin/master` while for releases branches all changes since e.g.
`origin/openwrt-21.02` should be considered.
First figure out the active branch, then find changed packages.
Signed-off-by: Paul Spooren <mail@aparcar.org>
The aarch64_cortex-a53 architecture is used by more targets and should
therefore be tested rather than the relatively rare _generic one.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Export PKG_NAME and PKG_VERSION to make test scripts better readable
and also export a path to the helper script providing colorful output.
Signed-off-by: Michal Hrusecky <michal.hrusecky@turris.com>
Add a shell script that can produce colorfull output to help to identify
problems during CI runs.
Signed-off-by: Michal Hrusecky <michal.hrusecky@turris.com>
This is the second ARM NEON target that is tested. It's unlikely that
one will fail and the other succeed.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
The PKG_NAME is the installable name of a package while PKG_SOURCE is
the folder containig both `Makefile` and possibliy `test.sh`
This approach previously worked for packages where both NAME and SOURCE
are the same, e.g. `vim`, however fore more complex packages like
`mariadb` (SOURCE) the NAMES are partly
*mariadb-server-plugin-handlersocket*, which is no existing folder.
With this commit the `PKG_SOURCE` is used to find the `test.sh` script.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Without this option, a package gets installed with its dependencies
but those do not get removed, causing issues later on with other
packages.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Currently the passed VERSION includes the release, which is usually not
part of the compiled binary. Removing it simplifies the `grep` command
to check for correct package output during runtime tests.
Signed-off-by: Paul Spooren <mail@aparcar.org>
The CI only tests packages if a Makefile changed, e.g. containing a
version or release bump. This covers package related files as at least
the package release must change whenever a file was touched.
The `test.sh` file is a runtime test used to verify working packages
within OpenWrt containers. This file can independently change and will
never be included in the package ipk files, therefore trigger the CI on
its changes as well.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Additional to manual runtime tests this CI addition runs a custom test
script per package. Ideally this lowers the errors of package bumps,
something which is time consuming when done manually for multiple
architectures.
This CI uses the official OpenWrt containers and tries to install and
run compiled packages. The run depends on the content of `test.sh`,
which is an `ash` script. It's called with the *packge name* and
*package version* as arguments. This allows different behaviour if
a single package generates multiple IPK files. The version is usable for
the most trivial runtime check, e.g. `tmux -V | grep "$2"`.
The current approach uses the qus project[1] which contains multiple
QEMU binaries to run various architectures.
[1]: https://github.com/dbhi/qus
Signed-off-by: Paul Spooren <mail@aparcar.org>
This commit adds a linter which checks most common filetypes, including
Shell and Lua. Ideally this improves the quality of especially `init`
scripts written in Shell.
Signed-off-by: Paul Spooren <mail@aparcar.org>
By using `feeds install -d y` the CI tries to install e.g. `libcxx`
which fails, unrelated to the tested packages. Now follow the approach
of the current CircleCI implementation.
Signed-off-by: Paul Spooren <mail@aparcar.org>
The CI adds the `packages.git` repository to the `feeds.conf`, which
makes the repository redundant. Once called `packages` including the
upstream status, once `packages_ci` (previously `action`) including the
PRs changes.
This commit changes the binary artifact folder from `packages` to
`packages_ci`, as the SDK choses packages from the modified PR branch
over the `packages` branch.
Also add additional targets to test, as each target only takes a few
minutes to test: aarch64_cortex-a53, arm_cortex-a15_neon-vfpv4 and
i386_pentium4.
Signed-off-by: Paul Spooren <mail@aparcar.org>
Test all GitHub pull requests for multiple architectures and store build
logs and created packages. This is the first commit of a series of
patches to simplify the life of maintainers.
Signed-off-by: Paul Spooren <mail@aparcar.org>