Commit Graph

64 Commits

Author SHA1 Message Date
Martin Weinelt
1f8c5d1c8f
actions: build targets conditionally 2021-08-10 22:16:08 +02:00
lemoer
d4dee692c6
contrib: add push_pkg.sh to enhance package development workflow (v2) (#2023)
v2: In contrast to the last patches, this is now built on top of ssh
    only, without using e.g. 9pfs. Furthermore it works also with
    arbitary remote hosts on any target/architecture. Also the
    scripts were renamed and moved to /scripts.

The aim of this commit is to allow fast rebuild cycles during the
development of gluon packages.

Currently the following workflow can be used:

	# start a local qemu instance
	scripts/run_qemu.sh output/images/factory/[...].img

	# do your changes in the file you want to patch
	vi package/gluon-ebtables/files/etc/init.d/gluon-ebtables

	# rebuild and update the package
	scripts/push_pkg.sh package/gluon-ebtables/

	# test your changes
	...

	# do more changes
	...

	# rebuild and update the package
	scripts/push_pkg.sh package/gluon-ebtables/

	# test your changes
	...

	(and so on...)

Implementation details:
- Currently this is based on ssh/scp.
- Opkg is used to install/update the packages in the remote machine.

Benefits:
- This works with compiled and non-compiled packages.
- This works with native OpenWrt and Gluon packages.
- This even performs the check_site.lua checks as they are integrated
  as post_install scripts into the openwrt package.
- It works for all architectures/targets.
2021-07-23 19:50:15 +02:00
David Bauer
2aa6f90bb3 docs contrib: add dependency on qemu-utils 2021-06-22 01:59:48 +02:00
Martin Weinelt
f4b0d007f3 contrib: Dockerfile: install rsync
The kernel build requires rsync.
2021-06-22 01:59:48 +02:00
Martin Weinelt
4d0b8ccca3 contrib: Dockerfile: add python3, drop python2 2021-06-22 01:59:48 +02:00
David Bauer
53b647f748 actions: build gluon for next sub-branches
Currently we do not perform CI firmware builds on the next-2102 branch.

Build Gluon for all branches starting with "next" to increase the
coverage of our build tests.

Signed-off-by: David Bauer <mail@david-bauer.net>
2021-05-01 13:35:36 +02:00
Vieno Hakkerinen
09d6f70b07
contrib/Dockerfile: use apt-get instead of apt
* apt is meant for user interactive usage. apt does not guarantee a stable CLI.
* set DEBIAN_FRONTEND=noninteractive to tell apt-get that no user interaction is wanted
2021-04-07 18:01:56 +02:00
Vieno Hakkerinen
ca7a8ff528
contrib/actions: use apt-get instead of apt
apt does not have a stable CLI interface. Don't use it in scripts.
2021-04-05 21:33:04 +02:00
Martin Weinelt
394bc8e6bd
contrib/actions: drop custom sources.list 2021-04-05 04:11:29 +02:00
Martin Weinelt
e6b996f0e1 Revert "actions: pin Ubuntu version"
This reverts commit d9621048ed.
2021-04-05 04:09:42 +02:00
David Bauer
d9621048ed actions: pin Ubuntu version
ubuntu-latest is now assigned to Ubuntu 20.04. As we use custom apt
sources for 18.04, pin to this version for now to fix the CI.
2021-02-15 01:38:51 +01:00
Martin Weinelt
bab05c8515
actions: run tasks based on set of modified paths 2021-01-02 17:25:51 +01:00
David Bauer
441fbf1283 actions: update generation script to use matrix 2021-01-02 15:06:16 +01:00
Tim Gates
6b9e3ce1df
docs: ci: fix simple typo (#2162) 2020-12-19 20:50:54 +01:00
David Bauer
0b1ee0cf69
github: remove GitHub actions cache (#2120)
The performance benefit the cache brought was due to a broken sources
CDN mirror handling in OpenWrt.

The cache brings no measurable performance benefit. Disable it to slim
down the pipeline steps.
2020-09-18 13:50:02 +02:00
David Bauer
de9d3a917e
actions: cache OpenWrt DL folder (#2084)
This adds the ability to cache OpenWrt dependencies on a per-target
base. Artifacts over 10MB are excluded, as GitHub imposes a limit of 5G
of available space per repository cache. This affects mostly
linux(-firmware) and gcc / gdb.

The goal is to reduce the total amount of requests necessary to fetch
dependencies.
2020-07-25 00:42:55 +02:00
Matthias Schiffer
6b3b5e706e jenkins-community-slave: use requests library to download slave.jar
Do not mix two different HTTP libraries in one script. This fixes a
warning:

/var/lib/jenkins/slave.py:82: DeprecationWarning: URLopener style of invoking requests is deprecated. Use newer urlopen functions/methods

This simple implementation has the disadvantage that it stores the whole
file in RAM, but this isn't an issue for the 1.5MB slave.jar.
2020-06-01 20:18:24 +02:00
Matthias Schiffer
5232428b19 jenkins-community-slave: verify HTTPS certificate in head() request
Fixes a warning:

/usr/local/lib/python3.7/dist-packages/urllib3/connectionpool.py:1004: InsecureRequestWarning: Unverified HTTPS request is being made to host 'build.ffh.zone'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
2020-06-01 20:18:24 +02:00
Martin Weinelt
7fdffcaa1c
Jenkinsfile: require gluon-vmx label for qemu testing
This allows us to make use of builders that can't run virtual machines.

Drop the TMUX environemnt variable, it's not needed anymore.
2020-06-01 19:54:22 +02:00
Matthias Schiffer
55c51f2a73 actions: script improvements
- Rely on shebang instead of setting shell in workflow
- Run whole install-dependencies.sh in sudo
- Use /bin/sh instead of bash
- set -e
2020-05-13 15:48:06 +02:00
Matthias Schiffer
2889904e5f actions: set BUILD_LOG=1 and store logs as artifacts
The new step is added with `if: ${{ !cancelled() }}`, so the logs are
stored even when the build fails.
2020-05-13 15:48:06 +02:00
Matthias Schiffer
ab6596115a build: introduce GLUON_AUTOREMOVE flag 2020-05-13 15:48:06 +02:00
David Bauer
0d341a76b3 actions: create per-target artifacts 2020-05-07 02:29:11 +02:00
Martin Weinelt
dd7d37b8e4 Jenkinsfile: add timeout to build and test steps
This will hopefully make CI runs more robust and recover stale workers.
2020-04-26 23:26:09 +02:00
Martin Weinelt
42650393b6
contrib/ci: document kvm permissions configuration 2020-04-26 00:25:11 +02:00
Martin Weinelt
5c8c479d21 Jenkinsfile: fix glob for test scripts 2020-04-17 20:00:57 +02:00
Martin Weinelt
777416a175
Jenkinsfile: require gluon-docker-v2 for build stage
This is required to build the next branch which requires rsync to be
available.
2020-04-15 23:05:57 +02:00
Martin Weinelt
358be325b2
contrib/ci: install rsync on jenkins-community-slaves
Rsync is a requirement for OpenWrt master and therefore our next
branch. Currently builds on x86-64 error out due to missing rsync:

/bin/sh: 1: rsync: not found
2020-04-15 17:56:38 +02:00
Martin Weinelt
d9ea281436 ci: identify runner in each stage 2020-04-15 15:20:45 +02:00
Martin Weinelt
772db95244 contrib/ci: add test stage 2020-04-15 15:20:45 +02:00
David Bauer
d3f5adcfa4 github: actions: only build certain branches
This enables build-testing only on master as well as next and release
branches.
2020-04-10 03:50:31 +02:00
Martin Weinelt
8aa30b7099 ci: add chown step to resolve permissions on openwrt dl cache 2020-04-07 19:26:26 +02:00
David Bauer
1b0288d539 contrib: actions: remove surplus package sources 2020-04-05 19:49:44 +02:00
David Bauer
366ba8ab99 contrib: actions: add custom sources.list 2020-04-05 19:43:57 +02:00
David Bauer
83b2c41cee contrib: actions: enable verbose output 2020-04-05 19:19:58 +02:00
David Bauer
bb905b3351 actions: move dependencies to dedicated step 2020-04-05 19:08:15 +02:00
David Bauer
ebac7e4459 contrib: add build-script for GitHub actions 2020-04-04 18:04:31 +02:00
David Bauer
a37098da6b contrib: add generation script for GitHub actions 2020-04-04 18:04:31 +02:00
Martin Weinelt
055a2337aa
contrib/ci: fix commenting in Jenkinsfile (#1919) 2020-01-18 19:52:50 +01:00
lemoer
b25a05eec4 contrib/ci: add build dependency versioning (#1915) 2020-01-18 19:32:00 +01:00
Matthias Schiffer
7302fbf5ab Jenkinsfile: fix parallel step declaration 2019-12-30 02:36:08 +01:00
Matthias Schiffer
4de6f3ff36 Jenkinsfile: fix indentation 2019-12-30 02:36:08 +01:00
Martin Weinelt
2c071657ac
contrib: Dockerfile: add shellcheck 2019-12-29 15:54:27 +01:00
Jan-Tarek Butt
600e67350a
CI Jenkinsfile: add parallel task for shellcheck lint 2019-12-29 15:19:05 +01:00
Jan-Tarek Butt
6024c7a22f
CI Jenkinsfile: use taps and fix fileformat 2019-12-29 15:19:05 +01:00
Jan-Tarek Butt
dd76e0898d
treewide: solve shellcheck warnings 2019-12-14 18:35:11 +01:00
lemoer
f90b673f14 contrib: fix inheritance of jenkins-community-slave dockerfile (#1831) 2019-09-28 00:56:53 +02:00
lemoer
174dd3146f contrib: Set up continuous integration through Jenkins 2019-09-26 16:12:09 +02:00
Martin Weinelt
372d9c372e Add minimal docker environment
This will be a useful precursor for continuous integration.
2019-06-20 01:19:28 +02:00
bobcanthelpyou
122e9e90cc contrib: update ECDSA utils link 2019-02-16 19:25:49 +01:00