prplos/.gitlab/docker.yml
Petr Štetiar f44a974110
ci: docker: sdk: fix build test issue with OpenWrt 22.03
Currently SDK container build test fails:

 tmp/.config-package.in:7:warning: ignoring type redefinition of 'PACKAGE_busybox' from 'bool' to 'tristate'
 feeds/base/package/utils/busybox/config/Config.in:697: syntax error

Fix it by using proper base container and prplOS base feed, also use
urngd for build testing as it seems, that busybox can't be currently
build:

 include/libbb.h:83:11: fatal error: selinux/selinux.h: No such file or directory
   83 | # include <selinux/selinux.h>
      |           ^~~~~~~~~~~~~~~~~~~

Signed-off-by: Petr Štetiar <ynezz@true.cz>
2025-07-31 10:31:26 +00:00

58 lines
2.3 KiB
YAML

.docker in docker:
tags:
- gce
image: docker:19.03.7
services:
- docker:19.03.7-dind
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: never
- if: '$CI_COMMIT_BRANCH == $CI_DESIGNATED_BRANCH'
- when: manual
allow_failure: true
variables:
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: "/certs"
.build Docker image:
stage: docker
extends: .docker in docker
script:
- export IMAGE_NAME="$(echo $CI_JOB_NAME | sed 's/build Docker image \(.*\)/\1/')"
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- docker build -t "$IMAGE_NAME" $DOCKER_BUILD_EXTRA_ARGS $DOCKER_DOCKERFILE_PATH
- docker tag "$IMAGE_NAME" "$CI_REGISTRY_IMAGE/$CI_DESIGNATED_BRANCH/$IMAGE_NAME:$CI_COMMIT_REF_SLUG"
- docker push "$CI_REGISTRY_IMAGE/$CI_DESIGNATED_BRANCH/$IMAGE_NAME:$CI_COMMIT_REF_SLUG"
.test Docker SDK image:
stage: docker SDK test
extends: .docker in docker
script:
- export IMAGE_NAME="$(echo $CI_JOB_NAME | sed 's/test Docker image \(.*\)/\1/')"
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- docker pull "$CI_REGISTRY_IMAGE/$CI_DESIGNATED_BRANCH/$IMAGE_NAME:$CI_COMMIT_REF_SLUG"
- >
docker run "$CI_REGISTRY_IMAGE/$CI_DESIGNATED_BRANCH/$IMAGE_NAME:$CI_COMMIT_REF_SLUG" sh -c "
cd /home/builder &&
make defconfig &&
./scripts/feeds update base &&
./scripts/feeds install urngd &&
sync && sleep 1 &&
make -j $(nproc) package/urngd/compile V=s &&
sync && sleep 1 &&
find ./bin/packages -name urngd*.ipk | grep ^./bin/packages/.*urngd
"
.deploy Docker image:
extends: .docker in docker
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: never
- if: '$CI_COMMIT_BRANCH == $CI_DESIGNATED_BRANCH'
script:
- export IMAGE_NAME="$(echo $CI_JOB_NAME | sed 's/deploy Docker image \(.*\)/\1/')"
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- docker pull "$CI_REGISTRY_IMAGE/$CI_DESIGNATED_BRANCH/$IMAGE_NAME:$CI_COMMIT_REF_SLUG"
- docker tag "$CI_REGISTRY_IMAGE/$CI_DESIGNATED_BRANCH/$IMAGE_NAME:$CI_COMMIT_REF_SLUG" "$CI_REGISTRY_IMAGE/$CI_DESIGNATED_BRANCH/$IMAGE_NAME:latest"
- docker push "$CI_REGISTRY_IMAGE/$CI_DESIGNATED_BRANCH/$IMAGE_NAME:latest"