Files
iopsyswrt/.gitlab-ci.yml
2022-10-13 15:19:54 +02:00

195 lines
4.1 KiB
YAML

variables:
SKIP_TEST: "false"
stages:
- Update docker image
- IOWRT
.nightly:
stage: IOWRT
variables:
IOPSYSWRT_BRANCH_OR_TAG: $CI_COMMIT_REF_NAME
BOARD_NAME: $CI_JOB_NAME
BUILD_TYPE: $BUILD_TYPE
SKIP_TEST: $SKIP_TEST
trigger:
project: devops/iopsyswrt
strategy: depend
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
.continuous:
stage: IOWRT
trigger:
project: devops/iopsyswrt
strategy: depend
rules:
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
changes:
- feeds.conf
Update Docker Image:
stage: Update docker image
image:
name: gcr.io/kaniko-project/executor:v1.9.0-debug
entrypoint: [""]
script:
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"${REGISTRY_URL}\":{\"auth\":\"${REGISTRY_AUTH}\"}}}" > /kaniko/.docker/config.json
- if [ "${CI_COMMIT_REF_NAME:-}" = "${CI_DEFAULT_BRANCH}" ]; then IS_DEFAULT_BRANCH=1; fi
- |
/kaniko/executor \
--context ${CI_PROJECT_DIR} \
--dockerfile ${CI_PROJECT_DIR}/Dockerfile \
--destination ${REGISTRY_REPOSITORY}:"${CI_COMMIT_SHORT_SHA}" \
--destination ${REGISTRY_REPOSITORY}:"${CI_COMMIT_REF_NAME}" \
${IS_DEFAULT_BRANCH:+--destination ${REGISTRY_REPOSITORY}:latest}
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
when: never
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /^release-\d+\.\d+$/'
changes:
- Dockerfile
- docker/**
- iop
- if: '$CI_COMMIT_TAG'
interruptible: true
# For devices participating in automated testing
.variables_autotest:
variables:
CUSTOMER_PROFILE: "EVAL"
CUSTOMER_PROFILE_EXTRA: "ANALYTICS"
# For select devices that support the EVAL profile
.variables_eval:
variables:
CUSTOMER_PROFILE: "EVAL"
SKIP_TEST: "true"
# For all other devices
.variables_default:
variables:
SKIP_TEST: "true"
# Continuous Build
SMARTHUB3_continuous:
extends:
- .continuous
- .variables_eval
variables:
BOARD_NAME: "SMARTHUB3"
# Nightly
# Boards are added so that autotest boards come first (to provide maximum test time), then ones with EVAL profile,
# finally the remaining ones with default configuration.
# Please maintain the order above, as well as order boards alphabetically for each configuration type.
MTK_PANTHER:
extends:
- .nightly
- .variables_autotest
NVG678:
extends:
- .nightly
- .variables_autotest
RODIMUS:
extends:
- .nightly
- .variables_autotest
ARCEE:
extends:
- .nightly
- .variables_eval
DISC:
extends:
- .nightly
- .variables_eval
EAGLE:
extends:
- .nightly
- .variables_eval
KOALA:
extends:
- .nightly
- .variables_eval
NVG578:
extends:
- .nightly
- .variables_eval
SMARTHUB3:
extends:
- .nightly
- .variables_eval
CW3:
extends:
- .nightly
- .variables_default
EX400:
extends:
- .nightly
- .variables_default
PANDA:
extends:
- .nightly
- .variables_default
PANTHER:
extends:
- .nightly
- .variables_default
TIGER:
extends:
- .nightly
- .variables_default
INCA:
extends:
- .nightly
- .variables_default
X86:
stage: IOWRT
variables:
IOWRT_COMMIT_REF_NAME: $CI_COMMIT_REF_NAME
IOWRT_COMMIT_SHA: $CI_COMMIT_SHA
trigger:
project: devops/iowrt-docker
strategy: depend
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
MTK_PANTHER_OPEN:
stage: IOWRT
tags:
- external
image: ${REGISTRY_REPOSITORY}:latest
variables:
# Ensure work directory matches default user of the container
FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR: 'true'
# Full clone is needed to get the correct tag/version of the build
GIT_STRATEGY: clone
# Disable user/pass prompts for git operations with feeds - build as public user
GIT_TERMINAL_PROMPT: '0'
rules:
- if: '$CI_PIPELINE_SOURCE == "schedule"'
script:
- ./iop bootstrap
- ./iop feeds_update
- ./iop genconfig mtk_panther
- make -j8 download || make -j1 V=s download
- make -j$(nproc) || make -j1 V=s