Commit Graph

216 Commits (c0ddfae186b8bb658f8f11e30393a2b5bc9b82ca)

Author SHA1 Message Date
Petr Štetiar 54561b55a4 generate-targets: explicitly set container image to Debian 11
Otherwise it would use runner default, which might be unpredictable, as
for example GitLab provided public runners are using `ruby:2.5` as
default container image, but true.cz runners are using `debian:10`. So
lets fix it by using Debian 11 image by default.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2023-01-02 11:52:28 +01:00
Petr Štetiar ea92c4c361 generate-targets: fix missing make in base Debian container
Fixes following issue:

 + perl ./scripts/dump-target-info.pl architectures
 + read -r LINE
 sh: 1: make: not found

As apparently `make` got removed from the upstream base Debian containers.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2023-01-02 11:45:14 +01:00
Petr Štetiar 5341336522 generate-targets: fix missing git in base Debian container
Fixes following issue:

 + git clone --depth 1 --branch master https://github.com/openwrt/openwrt.git
 ./generate_targets.sh: line 7: git: command not found

As apparently `git` got removed from the upstream base Debian containers.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2023-01-02 10:36:34 +01:00
Paul Spooren 2ace880015 Dockerfile.base: switch to Debian 11
Signed-off-by: Paul Spooren <mail@aparcar.org>
2022-07-28 21:35:22 +02:00
Petr Štetiar 6d75cb142c docker-common: add 22.03 GnuPGP and usign keys
So we can somehow validate the source binaries.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2022-03-26 22:35:54 +01:00
Paul Spooren f4689b15d7 gitlab: attach $CI_PIPELINE_ID to created containers
GitLab schedules use `master` as CI_COMMIT_REF_SLUG which causes
unpredictable behaviour when scheduling multiple releases at the same
time. Recently the 19.07 schedule would use 21.02 images for testing,
which succeeded even though it would fail on actual 19.07 containers.

A simple workaround is to attach the $CI_PIPELINE_ID to the test
containers. This issue won't happen to PRs since the CI_COMMIT_REF_SLUG
would then be set to the PRs branch name.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2022-02-23 10:12:55 +00:00
Paul Spooren 4afdd248d6 rootfs: add mvebu/cortexa9/arm_cortex-a9_vfpv3-d16
Add another rootfs

Signed-off-by: Paul Spooren <mail@aparcar.org>
2022-02-22 17:16:33 +01:00
Paul Spooren c5a9777c76 rootfs: add $ARCH-$BRANCH tag
The tag allows the CI to test runtime behaviour not only for snapshot
builds but also for branches like 21.02.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2022-01-14 11:48:33 +01:00
Nick Hainke 54849510d7 docker: install g++-multilib
Node fails to compile with:
  In file included from /usr/include/c++/8/memory:62,
  from ../deps/v8/src/libplatform/default-foreground-task-runner.h:8,
  from ../deps/v8/src/libplatform/default-foreground-task-runner.cc:5:
  /usr/include/c++/8/bits/stl_algobase.h:59:10: fatal error: bits/c++config.h:
    No such file or directory
  #include <bits/c++config.h>
          ^~~~~~~~~~~~~~~~~~
  compilation terminated.

Add g++-multilib to fix this.

Fixes: https://github.com/openwrt/packages/issues/17074

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-12-13 08:50:41 +01:00
Paul Spooren 11452bebf7 Dockerfile.base: add packages installed in buildbots
Packages like `python3-pip` are installed within the buildbot containers
but not inside this base container. Add them to allow the CI compilation
of more packages.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-08-22 22:17:12 -10:00
Paul Spooren 21a3b9284c build: tag missing imagebuilder branch
The $BRANCH is used in CIs, tag it or images are not updated.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-03-20 18:49:37 -10:00
Paul Spooren 53846dccff use `base` container for SDKs/IBs
This way not every SDK/IB build installs all dependencies via `apt` but
rather pulls in a container.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-03-18 09:54:04 -10:00
Paul Spooren ba196c53ad rootfs: tag via ARCH as well
This was missing and caused CI jobs in packages.git to run on an old
snapshot.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-03-17 20:31:05 -10:00
Paul Spooren 7b11b13eee fixup SDK/x86-64/snapshot
That special case tries to tag a sdk container with `x86/64` where th
`/` is not allowed in a name. Replace it via `tr`.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-03-11 19:23:35 -10:00
Paul Spooren f7a375b9dc switch $TYPE logic to work during tests
THe recent changes were a bit short-sighted, not putting into
consideration all labels and different behaviour during testing. This
final commit should fix building for all versions, be it snapshot, a
release snapshot or a regular point release.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-02-27 23:26:59 -10:00
Paul Spooren 9d87aec468 fixup non snapshot tests
The test should work for versions other than `snapshot`.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-02-27 18:45:18 -10:00
Paul Spooren 93cf40e2d1 use build job names again for TARGET/ARCH
GitLab CI seem to lose some variables when creating downstream jobs,
revert the changes back to use the job name for target/arch and apply
the rule to SDK testing.

Remove leading `deploy` from build jobs so they are better readable in
the GitLab UI. Use the leading build name as TYPE variable, so that SDKs
are not labeled on target base and imagebuilder/rootfs is not labeled
based on arch.

For `generate_targets.sh`, instead of exporting BRANCH as env variable,
use functions.sh to set it automatically. Export the `VERSION` one
globally instead of for each downstream job. This works after removing
the `gitlab-ci.yml` variable which would previously overwrite
(strangely) the downstream job settings.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-02-26 21:47:49 -10:00
Paul Spooren 4549d070bc fixup tag logic
* SDKs get their target tags in a later step.
* If arch is x86_64 it becomes the branch default

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-02-24 19:16:24 -10:00
Paul Spooren d2efc132bf IB/rootfs fixup missing target variable
and reformat long lines

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-02-24 19:16:24 -10:00
Paul Spooren db58c36389 extend SDK testing
* Test x86/64 and ath79/generic compilation.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-02-24 19:16:24 -10:00
Paul Spooren ca13177b56 simplify ARCH/TARGET variables
Instead of extracting ARCH/TARGET from the build name explicitly export
the variables to simplify the code. If not, it requires extra handling
for tagging which nulls the "simplification".

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-02-24 11:56:25 -10:00
Paul Spooren 329e5ec69d fixup generate_targets.sh branch detections
Use the functions.sh branch detection which can handle `-SNAPSHOT`.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-02-23 20:52:20 -10:00
Paul Spooren fda9fd2cfd fixup push of multiple image names
it is not possible to define multiple images in a single `docker push`
command, therefore run a loop.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-02-23 20:10:50 -10:00
Paul Spooren baf01edb31 refactor build scripts
* add a functions.sh file containing functions used by all three
  container types, ImageBuilder, SDK and rootfs.
* allow SDK branch tags for other branches than `master`. This allows
  testing of release SDK versions
* Fix handling of special snapshot versions like `21.02-SNAPSHOT`

Future commits will move `docker-download.sh` and `docker-build.sh` do
`functions.sh`.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-02-23 19:53:22 -10:00
Paul Spooren 8fd1339b33 add 21.02 signing keys
Keys where added to the official keyring:
https://git.openwrt.org/?p=keyring.git;a=summary

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-02-21 10:26:54 -10:00
Paul Spooren 15ae22833e Merge branch 'openwrt' into 'master'
Add `openwrt` username in tags

See merge request openwrt/docker!39
2021-02-21 19:37:20 +00:00
Paul Spooren 0bf9acc0d7 Tag openwrt and openwrtorg images
We now own the `openwrt` username so use that and `openwrtorg`.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-02-21 00:24:47 -10:00
Paul Spooren b957aa4cee support multiple image names
This simplifies migration from one image name to another. In this case
we migrate from `openwrtorg` username to `openwrt`, so for a while both
should be available.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-02-21 00:24:47 -10:00
Nick Hainke ee86c78500 Dockerfile: install clang
Right now, XDP support for OpenWrt is on the rise. New packages and
xdp loaders are written. However, the current github workflows will
fail to crosscompile kernel xdp programms, since they do not support
clang. Clang is the main tool to cross-compile xdp kernel scripts.

Clang only needs the correct endianess of the target system. This can
just be added by checking in the Makefile

  ifeq ($(CONFIG_BIG_ENDIAN),y)
  BPF_TARGET=bpfeb
  else
  BPF_TARGET=bpfel
  endif

Missing clang support is one of the main reasons I currently not able
to port xdp-tools to OpenWrt. With introduction of 5.10er kernel the
XDP Support is also improved.

Signed-off-by: Nick Hainke <vincent@systemli.org>
2021-02-19 20:33:28 -10:00
Paul Spooren 594cbb3c26 Merge branch 'wget' into 'master'
Use wget for file downloads

See merge request openwrt/docker!38
2021-02-13 00:34:06 +00:00
Paul Spooren 62692615da Use wget for file downloads
By changing the FILE_HOST variable it is possible to switch to different
hosts like the CDN. Overall it makes the script easier to use for other
project which don't offer the full rsync server setup.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2021-02-12 11:40:00 -10:00
Josef Schlehofer 713696a6a7 Dockerfile: install gcc-multilib on host
This is required for luajit, which is in packages feed.
While it works fine for ARMv8 (tested by using Github Actions: aarch64_cortex-a53) and x84_x64 (tested inside Docker container, it does not work for 32-bits target and because of that we need to install gcc-multilib.

Luajit fails with the following output:
(tested against target: arm_cortex-a9+vfpv3-d16_musl_eabi inside Docker
SDK image)

/usr/include/limits.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory
 #include <bits/libc-header-start.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~

And once gcc-multilib is installed, it works.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2021-01-01 16:13:48 -10:00
Paul Spooren 3a4dd66199 Merge branch 'ci-branch' into 'master'
add OpenWrt branch as tag

See merge request openwrt/docker!37
2020-12-28 20:50:57 +00:00
Paul Spooren bc917bfb33 add OpenWrt branch as tag
this simplifies the CI testing

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-12-28 10:29:44 -10:00
Paul Spooren a4d29eeb6d rootfs: use aarch64_cortex-a53 for armvirt/64
armvirt recently switched to aarch64_cortex-a53, reflect that in the
used and pushed tags.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-12-14 11:44:18 -10:00
Paul Spooren 3462ba9a09 chore: docker "latest" requires new flag
Using the "latest" tag in `Dockerfile.deploy` recently updated to Docker
20.x which changed the default behaviour of `docker push`. It now
requires `--all-tags` to push all tags, unlike before in 19.x.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-12-12 20:38:48 -10:00
Paul Spooren 01f6207518 rootfs: add x86/geode
This was requested for CI testing the i386_pentium-mmx architecture.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-12-11 19:00:53 -10:00
Josef Schlehofer d3408028f6 Update README with more tags in rootfs
On the website https://hub.docker.com/r/openwrtorg/rootfs/tags there are more
tags which we can use, let's mention them in README as well.

Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
2020-11-26 10:50:38 -10:00
Petr Štetiar 4d29ad9963 docker-sdk: print out SDK revision
This should provide useful information in the CI logs for bisect
purposes etc. Otherwise its not possible to find out which version was
used, just the CI job timestamp.

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2020-11-09 09:18:12 -10:00
Paul Spooren b8a7d3ed62 rootfs: add x86/generic as target
This allows testing of i386_pentium4 in CIs.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-09-14 22:16:14 -10:00
Paul Spooren e11d7fe91e rootfs: add malta/be as target
This allows testing of mips_24kc in CIs.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-09-14 22:16:14 -10:00
Paul Spooren b24eb19785 add downstream dependencie and quote version
The VERSION variable is still missing in downstream jobs even though the
documentation states it could be added like that. Add the VERSION to the
trigger job and also quote it, to avoid possible YAML parsing issues.

Adding a *depend* to the triggered job makes the CI report the
downstream success state instead of instantly marking the upstream job
as success. Meaning, if a downstream SDK or IB job fails, the upstream
job is marked as failed.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-09-13 10:20:58 -10:00
Paul Spooren 8fade93d39 fixup docker-sdk.sh TARGET usage
copy paste error in docker-sdk used TARGET rather than ARCH as Docker
container tag.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-09-11 09:04:41 -10:00
Paul Spooren 750df8e0ae add VERSION to individual jobs
Neither pipeline nor global variables are passed to downstream jobs, add
them individually per job even if it is always the same version.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-09-11 09:02:38 -10:00
Paul Spooren b16454f65b pass VERSION env to downstream jobs
GitLab calls dynamically created jobs "downstream". They don't seem to
inherit any env variables from the main CI job, therefore add the
VERSION variable specifically.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-09-10 23:03:59 -10:00
Paul Spooren 961306c0a0 remove minor release from version
The OpenWrt branches only contains the major number

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-09-10 22:01:09 -10:00
Paul Spooren c3b582b50e version fixup
BRANCH was missing in the generate_targets.sh script.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-09-10 21:04:49 -10:00
Paul Spooren 962d0fb6c0 replace BRANCH with VERSION
The generate_targets.sh script requires to run on a specific branch to
only generate jobs for existing targets. The BRANCH variable was however
used for VERSION rather than the branch running on.

This changes the behaviour by automatically selecting the correct branch
and only taking the new VERSION env variable into account.

By doing so new Docker container tags include `snapshot` rather than
`master`, however for compatibility with existing setups the `master`
tag is still added.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-09-11 08:06:37 +02:00
Paul Spooren 435653e3d5 remove obsolete TARGET env from rootfs
The TARGET variable is determined via the job name. DRY

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-09-07 08:20:31 +02:00
Paul Spooren 55df8c7cef support ARCH tagging
For the rootfs containers it can be of interest to run a root container
based on used architecture. Say a CI builds a specific architecture and
a container should run the specific packages. Instead of maintaining the
mapping upstream this should happen via container tags.

Signed-off-by: Paul Spooren <mail@aparcar.org>
2020-09-07 08:20:31 +02:00