aboutsummaryrefslogtreecommitdiffstats
path: root/.github
Commit message (Collapse)AuthorAgeFilesLines
* CI: remove pcre from macOSRosen Penev2023-01-111-2/+1
| | | | | | | ff02e1561f2073b39814f2d73205a5209471b115 added a host version of pcre for packages that need it. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* CI: remove already installed packagesRosen Penev2023-01-111-11/+1
| | | | | | The GitHub image already includes these. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* CI: remove various tools from macOSRosen Penev2023-01-111-7/+1
| | | | | | | | | zstd, openssl, and quilt are already built in tools/. No need to install them. The rest are unused. Signed-off-by: Rosen Penev <rosenp@gmail.com>
* CI: kernel: test each target with additional changes than target/linuxChristian Marangi2023-01-111-12/+10
| | | | | | | | | | | | Test each target if there are additional changes than target/linux. This is needed to do wide test with changes to kmods, include/kernel and changes to the workflow files. While at it also cleanup and rework the code to drop duplication. Also drop since_last_remote_commit to better track changes. Fixes: 04ada8bc4118 ("CI: kernel: build only changed targets") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: add concurrency limits for pr testChristian Marangi2023-01-114-0/+16
| | | | | | | | | | | Add concurrency limits for pull request test so that on pull request refresh old jobs are cancelled. The group is created based on the github ref + workflow name and the workflow is cancelled only it it comes from a pull_request event. Push events are not affected by this limit. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: kernel: build only changed targetsChristian Marangi2023-01-111-13/+46
| | | | | | | | | | Detect changes in commit and build only changed targets. If a change is related to the generic target, build test each target. The matrix json is split. For target check patch only the first subtarget is selected, for build test each target subtarget is built. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: build: fallback to compile toolchain if external toolchain failChristian Marangi2023-01-111-3/+5
| | | | | | | | | | If for whatever reason external toolchain can't be found or downloaded, fallback to internal toolchain build. This can be useful when new target are introduced and external toolchain are not present in openwrt fileserver. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* ci: show_build_failures: fix missing output for configure failuresPetr Štetiar2023-01-091-2/+2
| | | | | | | | | | | We're currently missing log output in cases where `configure` fails which returns 77 as its error code: make[3]: *** [Makefile:118: elfutils-0.188/.configured_889556d2f423f99e091beece9c8d870a] Error 77 So lets adjust the regexps so they can handle multiple digits. Signed-off-by: Petr Štetiar <ynezz@true.cz>
* github: add command for deviceChristian Schmidbauer2023-01-061-1/+3
| | | | | | This adds a command to the issue template to simplify the "device" name reporting. Signed-off-by: Christian Schmidbauer <github@grische.xyz>
* CI: build: fix external toolchain use with release tag testsChristian Marangi2023-01-041-1/+1
| | | | | | | | | | | | | | When a new tag for a release is created, the just checkout repo from github actions will already have such tag locally created. This will result in git fetch --tags failing with error rejecting the remote tag with (would clobber existing tag). Add -f option to overwrite any local tags and always fetch them from remote. Fixes: e24a1e6f6d7f ("CI: build: add support for external toolchains from stable branch") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: labeler: Add target label to target packagesHauke Mehrtens2022-12-301-0/+29
| | | | | | | | This adds the target label also to changes in packages which are target specific like the boot loader of a target or some drivers which are only use on one target. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* CI: tools: reogranize and split workflowChristian Marangi2022-12-243-128/+163
| | | | | | | | | | | Generilize tools workflow for future usage in shared workflow for tools build. Split tools workflow to tools and push-containers: - tools just execute build test - push-containers build and push prebuilt containers Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* github: point to forum feature request categoryStijn Tintel2022-12-211-1/+1
| | | | | | | This should have been amended in the previous commit. Fixes: 65e72f8e380e ("github: add issue template") Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
* github: add issue templateStijn Tintel2022-12-212-0/+94
| | | | | | | | | Add an issue template with required fields, instructions how to easily get some of that required data from the device. Aside from that, also add some links to the OpenWrt contact page, and for feature requests, link to the forum. Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
* CI: introduce target toolchain testChristian Marangi2022-12-161-0/+64
| | | | | | Add test to build test toolchain for each target. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: build: make kernel build configurableChristian Marangi2022-12-163-0/+6
| | | | | | Make kernel build configurable to permit to introduce toolchain testing. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: improve build naming for shared workflowChristian Marangi2022-12-162-2/+3
| | | | | | | Impove build naming for build shared workflow to better understand what is being test. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: kernel: don't checkout and install feedsChristian Marangi2022-12-071-1/+0
| | | | | | | We don't need to checkout feed and install feeds for kernel tests. This saves up to 2 minutes for each target kernel build test. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: build: skip sdk adapt to external toolchain on cache hitChristian Marangi2022-12-071-1/+1
| | | | | | | | | | | | On cache hit, skip sdk adapt to external toolchain. This is needed because we cache the already extracted sdk and that is already adapted to be used as external toolchain. Rerunning the adap step will result in the test to fail for missing file as the file are already got wrapped to the external toolchain format. Fixes: 42f0ab028e2e ("CI: build: fix use of sdk as toolchain") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: build: fix use of sdk as toolchainChristian Marangi2022-12-061-0/+28
| | | | | | | | | | | | | | | | | | | | | | The toolchain included in a sdk have a different format than an external toolchain tar. Since sdk is a more integrated setup doesn't use and include wrapper bin that use the external toolchain config and use an alternative and more standard way to include all the toolchain headers. External toolchain use wrapper.sh to append the configured include header when each tool is called. Fix the sdk toolchain by reverting their own sdk wrapper scripts and to simulate an external toolchain build copying what is done in the toolchain target makefile. This handle compilation error and warning caused by not using fortify header on building packages. Fixes: 006e52545d14 ("CI: build: add support to fallback to sdk for external toolchain") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: trigger check also on build and check-kernel-patches workflow changeChristian Marangi2022-12-042-0/+6
| | | | | | | | | Since kernel and packages workflow now use a shared build workflow, they also need to react on changes on these shared workflow. Fix this and add these shared workflow to the event paths to check. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: build: fix matching for openwrt release branch for toolchain parsingChristian Marangi2022-12-041-6/+8
| | | | | | | | | | | | | The current match logic doesn't handle test for push events related to stable release (example openwrt-22.03) but only fork with the related prefix (example openwrt-22.03-fixup) Fix wrong matching and while at it also add extra checks to other matching (check if the branch name actually start with the requested prefix) Fixes: e24a1e6f6d7f ("CI: build: add support for external toolchains from stable branch") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: fix matching for openwrt release branch for container selectionChristian Marangi2022-12-042-8/+12
| | | | | | | | | | | | | The current match logic doesn't handle test for push events related to stable release (example openwrt-22.03) but only fork with the related prefix (example openwrt-22.03-fixup) Fix wrong matching and while at it also add extra checks to other matching (check if the branch name actually start with the requested prefix) Fixes: abe8a4824210 ("CI: build: add support for per branch tools container") Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: build: add support to fallback to sdk for external toolchainChristian Marangi2022-12-041-8/+33
| | | | | | | Add support to use sdk as external toolchain if the packaged external toolchain tar is not found on openwrt servers for build shared workflow. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: build: add support for external toolchains from stable branchChristian Marangi2022-12-041-2/+27
| | | | | | | | | | | | | Add support to use external toolchains from stable branch if we are testing commit targeting stable openwrt branch in kernel and packages workflow. With pr the target branch is parsed and the right toolchain is used. To use the stable toolchain for local testing the branch needs to have the prefix openwrt-[0-9][0-9].[0-9][0-9]- (example openwrt-21.02-fixup) Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: build: add support for per branch tools containerChristian Marangi2022-12-042-2/+56
| | | | | | | | | | | Add support in build shared workflow for per branch tools container. With pr the target branch is parsed and the right container is used. To use the stable container for local testing the branch needs to have the prefix openwrt-[0-9][0-9].[0-9][0-9]- (example openwrt-21.02-fixup) Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: tools: support per branch tools containerChristian Marangi2022-12-041-1/+26
| | | | | | | | | | | | | | | | | | | Add support to push per branch container tools. For anything not official stick to latest tag that correspond to test run from master. If we are testing something for one of the openwrt stable branch, parse the branch name or the tag and push dedicated tools containers. To use the stable container for local testing the branch needs to have the prefix openwrt-[0-9][0-9].[0-9][0-9] (example openwrt-21.02-fixup) Any branch that will match this pattern openwrt-[0-9][0-9].[0-9][0-9] will refresh the tools container with the matching tag. (example branch openwrt-22.03 -> tools:openwrt-22.03) (example branch openwrt-22.03-test -> tools:openwrt-22.03) Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: Build all boards and testing kernelHauke Mehrtens2022-12-032-0/+29
| | | | | | | | This adds options to build all boards of a selected target and an additional option to build the testing kernel instead of the normal kernel. This can be used by other trigger work flows. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* CI: Allow building with internal toolchainHauke Mehrtens2022-12-031-1/+20
| | | | | | | | | | | This adds an option to build with internal toolchain. This can be used to build targets which are currently not build by the OpenWrt build bots and which needs their own toolchain build for every build. Building the toolchain takes about 30 minutes compared to using the external toolchain which takes some seconds. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* CI: Extract the OpenWrt building to own sub workflowHauke Mehrtens2022-12-034-341/+331
| | | | | | | | Extract the building of OpenWrt into an own workflow which is then triggered by the kernel.yml and packages.yml workflow with different inputs. This allows us to share much of the code of the workflow. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* CI: Simplify if conditionsHauke Mehrtens2022-12-032-2/+2
| | | | | | There is no need to put a ${{ }} around the if conditions. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* CI: labeler: fix wrong label for pr targeting stable branchChristian Marangi2022-12-011-3/+3
| | | | | | | | | The label used for stable branch is in the form of release/[0-9][0-9].[0-9][0-9] Currently we apply the name of the target branch as the label, fix this and correctly use the current label. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: add support to tag pr targeting stable branchChristian Marangi2022-12-011-0/+14
| | | | | | | | Add support to tag pr targeting stable branch matching the simple regex of openwrt-[0-9][0-9].[0-9][0-9]. The tag that will be added will match the pr target branch. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: packages.yml: Fix usage of pre-build toolsHauke Mehrtens2022-11-061-0/+2
| | | | | | | | | | Activate CONFIG_AUTOREMOVE to match the settings used to build the pre-build tools. This has to match the pre-build tools to not rebuild them. This prevents the tools being rebuild in packages.yml. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* CI: packages: Add github CI job to build all packagesHauke Mehrtens2022-10-311-0/+151
| | | | | | | | | | | | | | | | | | | | This will build OpenWrt for MIPS malta BE and x86 64 Bit with all packages and kernel modules activated. It is triggered when something changes in the build system or when a package definition is changed. This task probably needs 90 minutes to execute, but I hope that it will find build problems in pull requests early. This intentionally does not activate the feeds, because building them too would take too long. We only build x86/64 and malta/be to save resources. I would like to detect build problems when a package is changed. We often had build breaks when a package version was increased sometime even in other packages which used it as a dependency. This is based on the .github/workflows/packages.yml workflow. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* CI: kernel: fix deprecation of set-outputChristian Marangi2022-10-211-3/+3
| | | | | | | | | From [0], github deprecated set-output with a better approach of appending variables to $GITHUB_OUTPUT [0] https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* ci: kernel: trigger build check on changes in kernel.mk as wellPetr Štetiar2022-10-201-2/+2
| | | | | | So we can QA more parts of kernel build process. Signed-off-by: Petr Štetiar <ynezz@true.cz>
* CI: kernel: check if patch are refreshed for each targetChristian Marangi2022-10-171-0/+71
| | | | | | Enforce refreshed patch for each target with kernel pr tests. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: labeler: target major version of labeler actionChristian Marangi2022-10-121-1/+1
| | | | | | | Target major version of labeler to include minor fixes and use always the latest major version with included fixes. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: bump actions/download,upload-artifact action to v3Christian Marangi2022-10-122-7/+7
| | | | | | | Bump actions/download,upload-artifact action to v3 on every workflow to mute node deprecation warning. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: bump actions/checkout action to v3Christian Marangi2022-10-123-10/+10
| | | | | | | Bump actions/checkout action to v3 on every workflow to mute node deprecation warning. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: kernel: generate ccache cache on kernel pushChristian Marangi2022-10-111-0/+6
| | | | | | | | | | | To actually use ccache cache on kernel test from pr, the kernel workflow has to be run first from a push action. This will permit as a side effect to test merged commits and catch commit that may cause regression in kernel compilation even outside the github system. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: kernel: use ccache to speedup workflowChristian Marangi2022-10-061-0/+17
| | | | | | | | | | Use ccache to speedup kernel compilation. Ccache dir is cached across each build test. To refresh ccache directory we generate an hash of the kernel include files, that includes the kernel versions of every kernel supported and the kernel compile includes. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: tools: compile tools with ccache support for tools containerChristian Marangi2022-10-061-1/+2
| | | | | | | Enable ccache support for tools container, useful to speedup other workflow even more. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: Add workaround for github uppercase usernamesEdward Chow2022-10-032-2/+16
| | | | | | | | | | | | The workflow defined in tools.yml and kernel.yml used to fail on forked repositories of contributers whose github username contains uppercase letters. A workaround mentioned in https://github.com/orgs/community/discussions/27086 and https://stackoverflow.com/questions/70326569/ is applied. Signed-off-by: Edward Chow <equu@openmail.cc>
* CI: use tools:latest container to speedup kernel workflowChristian Marangi2022-10-011-3/+12
| | | | | | | Use tools:latest container with prebuilt host tools to speedup kernel compilation in kernel workflow. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: create Docker container containing compiled toolsPaul Spooren2022-09-302-0/+67
| | | | | | | | | | | | | | Currently each Kernel compilation takes about 30 minutes of which 20 minutes are used to compile our tools. While the toolchain is downloaded and instantly ready the tools are missing. This commit starts uploading a Docker container including compiled tools which are ready to use. It is automatically updated whenever any tools are changed. Signed-off-by: Paul Spooren <mail@aparcar.org> Co-Developed-by: Christian Marangi <ansuelsmth@gmail.com> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* CI: use buildbot container for buildingPaul Spooren2022-09-301-67/+50
| | | | | | | | | | | | Instead of using a fresh Linux installation which is setup every time use the Buildbot container which is used for our own Buildbot infrastructure, too. While at it also tidy up the workflow to make it more consistent with other workflow. Signed-off-by: Paul Spooren <mail@aparcar.org> Co-Developed-by: Christian Marangi <ansuelsmth@gmail.com> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
* ci: show build failures directly in job log outputPetr Štetiar2022-09-203-5/+20
| | | | | | | | | | | | | | | | | | | | | Instead of waiting for complete workflow finish, then downloading the artifacts, unpacking them and inspecting them, lets try to make the build failure immediately visible in the log output: ====== Make errors from logs/target/linux/compile.txt ====== * Legacy (non-UHI/non-FIT) Boards * Support MIPS SEAD-3 boards (LEGACY_BOARD_SEAD3) [N/y/?] (NEW) Error in reading or end of file. make[6]: *** [scripts/kconfig/Makefile:77: syncconfig] Error 1 make[5]: *** [Makefile:616: syncconfig] Error 2 make[4]: *** [Makefile:736: include/config/auto.conf.cmd] Error 2 make[3]: *** [Makefile:24: build_dir/target-mipsel-openwrt-linux-musl_musl/linux-ramips_mt7620/linux-5.15.62/.modules] Error 2 make[2]: *** [Makefile:11: compile] Error 2 time: target/linux/compile#30.09#11.30#37.92 Signed-off-by: Petr Štetiar <ynezz@true.cz>
* ci: move scripts into separate directoryPetr Štetiar2022-09-202-1/+1
| | | | | | So it's clean and tidy. Signed-off-by: Petr Štetiar <ynezz@true.cz>