Skip to content
Snippets Groups Projects
Commit b097a253 authored by Jonas Höppner's avatar Jonas Höppner
Browse files

CI: Generate .gitlab-ci.yml with include commands in deploy step

This change should be reverted after once used.
It is needed to initially add the include .gitlab-ci.yml in
all subprojects.
parent 4f194e21
No related branches found
No related tags found
No related merge requests found
...@@ -12,11 +12,77 @@ from get_merge_requests import get_merge_requests ...@@ -12,11 +12,77 @@ from get_merge_requests import get_merge_requests
from update_submodule import update_submodule from update_submodule import update_submodule
from update_gitlab_ci import update_gitlab_ci_include from update_gitlab_ci import update_gitlab_ci_include
from ruamel.yaml import YAML
def update_rev_in_gitlab_ci(repo, submodule_project, submodule_revision): def update_rev_in_gitlab_ci(repo, submodule_project, submodule_revision):
# Add changed revision also to .gitlab-ci.yml # Add changed revision also to .gitlab-ci.yml
gitlab_ci_yml = os.path.join(repo.working_tree_dir, ".gitlab-ci.yml") gitlab_ci_yml = os.path.join(repo.working_tree_dir, ".gitlab-ci.yml")
# ======================================
# Hack to deploy the .gitlab-ci.yml which does the include
# to the child project
logging.debug("Origin: %s", repo.remotes.origin.url)
# Contains the base file to be used in the subprojects
if "ci-test" in repo.remotes.origin.url:
if "manifest" in repo.remotes.origin.url:
include_file = "foobar-manifest.yml"
else:
include_file = "foobar-manifest-integration.yml"
else:
if "manifest" in repo.remotes.origin.url:
include_file = "manifest.yml"
else:
include_file = "manifest-integration.yml"
# -----------------------------------
# Adapt content in the include file
# -----------------------------------
# Read values from existing file
yaml = YAML()
with open(gitlab_ci_yml, "r", encoding="utf8") as fp:
data = yaml.load(fp)
logging.debug("Yaml: %s", data)
try:
masterbranch = data["variables"]["MASTER_BRANCH_PROJECT"]
logging.debug("Masterbranch %s", masterbranch)
except KeyError:
masterbranch = None
try:
recipe = data["variables"]["BB_RECIPE_NAME"]
logging.debug("Recipe %s", recipe)
except KeyError:
recipe = None
# -----------------------------------
with open(gitlab_ci_yml, "w", encoding="utf8") as fp:
fp.write(
"""---
# ---------------------------------------------------------------------------------------
# Include the default CI steps from the gitlab-ci repo
# ---------------------------------------------------------------------------------------
include:
- project: '${CI_PROJECT_ROOT_NAMESPACE}/yocto/infrastructure/gitlab-ci'
ref: 49cc4204323bca76190e5ffae1a7d5627157c073
"""
)
fp.write(" file: '{}'\n".format(include_file))
if masterbranch is not None or recipe is not None:
fp.write("\nvariables:\n")
if masterbranch is not None:
fp.write(" MASTER_BRANCH_PROJECT: {}\n".format(masterbranch))
if recipe is not None:
fp.write(" BB_RECIPE_NAME: {}\n".format(recipe))
# -----------------------------------
repo.git.add(gitlab_ci_yml)
# ======================================
if update_gitlab_ci_include( if update_gitlab_ci_include(
gitlab_ci_yml, gitlab_ci_yml,
submodule_project.web_url.split("//")[1].split("/", 1)[1], submodule_project.web_url.split("//")[1].split("/", 1)[1],
...@@ -24,6 +90,9 @@ def update_rev_in_gitlab_ci(repo, submodule_project, submodule_revision): ...@@ -24,6 +90,9 @@ def update_rev_in_gitlab_ci(repo, submodule_project, submodule_revision):
): ):
repo.git.add(gitlab_ci_yml) repo.git.add(gitlab_ci_yml)
with open(gitlab_ci_yml, "r", encoding="utf8") as fp:
logging.debug(fp.read())
def deploy_into(project, submodule, revision, branch, replace_existing_branch=False): def deploy_into(project, submodule, revision, branch, replace_existing_branch=False):
"""Update the submodule and include refs to the submodule in the given project. """Update the submodule and include refs to the submodule in the given project.
...@@ -190,7 +259,7 @@ def main(): ...@@ -190,7 +259,7 @@ def main():
sys.exit(0) sys.exit(0)
# The manifest needs to be merged at last # The manifest needs to be merged at last
merge_requests.append(merge_request_manifest) merge_requests.append(merge_request_manifest)
for mr in merge_requests: for mr in merge_requests:
logging.debug("Merge %s", mr) logging.debug("Merge %s", mr)
# Wait until GitLab has checked merge status # Wait until GitLab has checked merge status
......
---
variables:
BUILDPATH: "build-${CI_PARAM_DISTRO}-${CI_PARAM_MACHINE}"
IMAGEBASEPATH: "tmp/deploy/images/"
IMAGEPATH: "${IMAGEBASEPATH}/${CI_PARAM_MACHINE}"
LICENSESPATH: "tmp/deploy/licenses"
SDKPATH: "tmp/deploy/sdk/"
DEPLOYPATH_TEST: "/artifacts/${CI_JOB_ID}/"
GIT_BASE_URL: "git@${CI_SERVER_HOST}:${CI_PROJECT_ROOT_NAMESPACE}"
TESTS_GIT_URL: "${GIT_BASE_URL}/yocto/tests.git"
.setup_ssh: &setup_ssh
# setup ssh key to access private repos
# https://docs.gitlab.com/ee/ci/ssh_keys/#ssh-keys-when-using-the-docker-executor
- eval $(ssh-agent -s)
- echo "$JENKINSGUF_SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
# add content of variable SSH_KNOWN_HOSTS to known hosts
# https://docs.gitlab.com/ee/ci/ssh_keys/#verifying-the-ssh-host-keys
- echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
.repo_checkout: &repo_checkout
- cd ${CI_PROJECT_DIR}
- repo init --submodules -u ${CI_REPOSITORY_URL}
-b refs/pipelines/${CI_PIPELINE_ID}
- repo sync --detach --current-branch --no-tags --force-remove-dirty
--optimized-fetch --force-sync
.collect_srcrevs: &collect_srcrevs
# write all package AUTOREVS to file
- |-
SRCREVS_FILE="${CI_PROJECT_DIR}/${BUILDPATH}/${IMAGEPATH}/BUILD_SRCREVS.log"
if [ -d "$( dirname "${SRCREVS_FILE}" )" ];then
buildhistory-collect-srcrevs > ${SRCREVS_FILE}
cat ${SRCREVS_FILE}
fi
.dump_install_command: &dump_install_command
# print install instructions
- |-
for i in ${INSTALLSCRIPTS};do
SCRIPT="${CI_PROJECT_DIR}/${BUILDPATH}/${IMAGEPATH}/${i}"
if [[ -f "${SCRIPT}" ]]; then
cat <<-EOF
==============================
Install the image:
export GITLAB_TOKEN=<your_access_token>
FNG="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/artifacts/${BUILDPATH}/${IMAGEPATH}/${i}"
curl --location --header "PRIVATE-TOKEN: \$GITLAB_TOKEN" "\$FNG" \
| sh -s -- --url="\$(dirname "\$FNG")"
==============================
EOF
fi
done
.build_script: &build_script
# setup build environment
- echo "Build configuration MACHINE=${CI_PARAM_MACHINE}
DISTRO=${CI_PARAM_DISTRO} IMAGE=${CI_PARAM_IMAGE}"
- echo "BUILD_MACHINE=$CI_PARAM_MACHINE" > build.env
- echo "BUILD_IMAGE=$CI_PARAM_IMAGE" >> build.env
- echo "BUILD_DISTRO=$CI_PARAM_DISTRO" >> build.env
- echo "Using build dir ${BUILDPATH}"
- export MACHINE="${CI_PARAM_MACHINE}"
- export DISTRO="${CI_PARAM_DISTRO}"
- export EULA="1"
- source ./"${SETUPSCRIPT}" "${BUILDPATH}"
# start build
- echo -e "section_start:`date +%s`:bitbake_run\r\e[0KBitbake Log"
- echo "bitbake ${CI_PARAM_IMAGE} -c ${BITBAKE_TASK}"
- bitbake "${CI_PARAM_IMAGE}" -c "${BITBAKE_TASK}"
- echo -e "section_end:`date +%s`:bitbake_run\r\e[0K"
.build:
variables:
GIT_STRATEGY: none
SETUPSCRIPT: "setup-environment"
INSTALLSCRIPTS: "fng-install.sh fngsystem-self-update.sh"
BITBAKE_TASK: "build"
before_script:
- *setup_ssh
- *repo_checkout
script:
- *build_script
- *collect_srcrevs
- *dump_install_command
artifacts:
paths:
- "${BUILDPATH}/${IMAGEPATH}/*"
- "${BUILDPATH}/${LICENSESPATH}/**/license.manifest"
reports:
dotenv: build.env
.package:
variables:
CI_PARAM_PACKAGE_FTP: "false"
after_script:
- |-
# Package release files
[ -e build.env ] && source build.env
BUILDPATH="build-${BUILD_DISTRO}-${BUILD_MACHINE}"
[ -z "${ARTIFACTS_IMAGE_PATH}" ] && \
ARTIFACTS_IMAGE_PATH="${BUILDPATH}/${IMAGEBASEPATH}/${BUILD_MACHINE}"
[ -z "${ARTIFACTS_LICENSES_PATH}" ] && \
ARTIFACTS_LICENSES_PATH="${BUILDPATH}/${LICENSESPATH}"
[ -z "${ARTIFACTS_SDK_PATH}" ] && \
ARTIFACTS_SDK_PATH="${BUILDPATH}/${SDKPATH}"
if $CI_PARAM_PACKAGE_FTP; then
UPLOAD_PARAM="" # don't store as gitlab artifact
OUTDIR_BASE="/artifacts-ftp"
else
UPLOAD_PARAM="--outputdir-upload=release"
OUTDIR_BASE="/artifacts"
fi
# If we are on the master branch and a tag is set
# we tread it as release
if [ -n "$CI_COMMIT_TAG" ];then
outdir="${OUTDIR_BASE}-yocto/Releases"
[ "${BUILD_DISTRO}" = "guf-fngsystem" ] && \
outdir="${OUTDIR_BASE}-fngsystem"
else
outdir="${OUTDIR_BASE}-yocto/Interne_Releases"
[ "${BUILD_DISTRO}" = "guf-fngsystem" ] && \
outdir="${OUTDIR_BASE}-fngsystem/CI_Builds"
fi
# Generate AlphaPlan FWR articles if release tag is set
if [ -n "$CI_COMMIT_TAG" ] && \
[[ "${CI_PARAM_PACKAGE_FTP}" == "false" ]];then
UPLOAD_PARAM="${UPLOAD_PARAM} --generate-fwr-articles"
fi
script=".gitlab-ci/package_release.py"
[ ! -x "$script" ] && script=".repo/manifests/$script"
[ ! -x "$script" ] && echo "Failed to find package_release script"
# Image if available
if [ -d "${ARTIFACTS_IMAGE_PATH}" ];then
$script \
--images-dir="${ARTIFACTS_IMAGE_PATH}" \
--licenses-dir="${ARTIFACTS_LICENSES_PATH}" \
--doc-dir=. \
--outputdir-local=${outdir} \
$UPLOAD_PARAM
fi
# SDK if available
if [ -d "${ARTIFACTS_SDK_PATH}" ];then
$script \
--sdk-dir=${ARTIFACTS_SDK_PATH} \
--outputdir-local="${outdir}"
fi
.prepare_test:
before_script:
- *setup_ssh
- |-
# Copy artifacts to local server for automated tests
.gitlab-ci/package_release.py \
--images-dir="${BUILDPATH}/${IMAGEPATH}" \
--outputdir-local="${DEPLOYPATH_TEST}"
# --------------------------------------------------------------------------------------
# Global
# --------------------------------------------------------------------------------------
---
include:
- local: manifest-build.yml
stages:
- retrigger
- prepare
- build
- test
- deploy
- uploadftp
variables:
# CI_IMAGES_BASEPATH: Environment variable configure in gitlab
CI_IMAGES_PATH: ${CI_IMAGES_BASEPATH}/ci-images
CI_IMAGES_REV: 44965ccdd847f1e077670f49d546047f8ad0110c
CI_IMAGE_PYTHON: "${CI_IMAGES_PATH}/python/3.9:${CI_IMAGES_REV}"
CI_IMAGE_YOCTO: "${CI_IMAGES_PATH}/yocto-build/ubuntu-20.04:${CI_IMAGES_REV}"
# The master branch is hardcoded here, because it cannot be determined
# automatically. Has to be modified for new branches, e.g. new Yocto
# versions or fix releases.
MASTER_BRANCH: dunfell
# Default image and distro
CI_PARAM_IMAGE: guf-image
CI_PARAM_DISTRO: guf-wayland
workflow:
rules:
# Explicitly allow externally triggered pipelines in every case
- if: $CI_PIPELINE_SOURCE == "pipeline" || $CI_PIPELINE_SOURCE == "api"
# Do not run pipelines for merge requests
- if: $CI_MERGE_REQUEST_IID
when: never
# Do not run pipelines on forked projects
# (use id instead of name because of rename)
- if: $CI_PROJECT_ID != "17852514"
when: never
# Do not run pipelines on integration branches, except from gitlab-ci repo
- if: $CI_COMMIT_REF_NAME =~ /^integrate\/.*/ &&
$CI_COMMIT_REF_NAME !~ /^integrate\/gitlab-ci\/.*/
when: never
# In all other cases, run the pipeline automatically
- when: always
# --------------------------------------------------------------------------------------
# Common infrastructure settings
# --------------------------------------------------------------------------------------
.infrastructure:
tags:
- infrastructure
timeout: 10m
image: "${CI_IMAGE_PYTHON}"
needs: []
variables:
# Include git submodules
GIT_SUBMODULE_STRATEGY: recursive
# --------------------------------------------------------------------------------------
# Stage: retrigger
# --------------------------------------------------------------------------------------
retrigger:
extends: .infrastructure
stage: retrigger
rules:
- if: $CI_COMMIT_REF_NAME == $MASTER_BRANCH && $CI_PIPELINE_SOURCE != "api"
script:
- PROJECTS=$(
.gitlab-ci/get_manifest_projects.py
--manifest=default.xml
--remote=seco-north
--concat-namespaces
)
- echo -e "Projects:\n${PROJECTS}"
- for PROJECT in ${PROJECTS}; do
.gitlab-ci/retrigger_mr_pipeline_jobs.py
--gitlab-url=${CI_SERVER_URL}
--token=${GITBOT_TOKEN}
--project=${PROJECT}
--state=opened
--target-branch=${MASTER_BRANCH}
--job=check
;
done
# --------------------------------------------------------------------------------------
# Stage: prepare
# --------------------------------------------------------------------------------------
yamllint:
extends: .infrastructure
stage: prepare
rules:
- if: $CI_COMMIT_REF_NAME != $MASTER_BRANCH || $CI_PIPELINE_SOURCE == "api"
script:
- yamllint .*.yml
changelog:
stage: prepare
rules:
- if: $CI_COMMIT_REF_NAME != $MASTER_BRANCH || $CI_PIPELINE_SOURCE == "api"
tags:
- infrastructure
variables:
IMAGE_PATH: ${CI_IMAGES_BASEPATH}/changelog-generator
IMAGE_REVISION: 2fd56690a5dabde6eda101182e8359f1c3609664
image:
name: "${IMAGE_PATH}:${IMAGE_REVISION}"
# set entrypoint to noop to be able to run from script
entrypoint: [""]
script: "changelog_generator.py --branch ${MASTER_BRANCH} > changelog.md"
artifacts:
expire_in: 4 weeks
paths:
- "changelog.md"
# --------------------------------------------------------------------------------------
# Stage: build
# --------------------------------------------------------------------------------------
.buildbase:
tags:
- builds
timeout: 8h
interruptible: true
image:
name: "${CI_IMAGE_YOCTO}"
# Override entrypoint so we can pass --id to set the UID and GID for the
# user that is created in the container. This is a feature of the
# crops/poky images. See poky-entry.py for details.
entrypoint:
- "/usr/bin/distro-entry.sh"
- "/usr/bin/dumb-init"
- "--"
- "/usr/bin/poky-entry.py"
- "--id=118:998"
artifacts:
expire_in: 4 weeks
.buildimage:
extends:
- .buildbase
- .build
rules:
- if: $CI_COMMIT_REF_NAME != $MASTER_BRANCH || $CI_PIPELINE_SOURCE == "api"
needs: []
.buildfng:
extends:
- .buildimage
variables:
CI_PARAM_IMAGE: fngsystem-image
CI_PARAM_DISTRO: guf-fngsystem
build:merge_request:
extends: .infrastructure
stage: build
timeout: 1h
rules:
- if: $CI_COMMIT_REF_NAME == $MASTER_BRANCH && $CI_PIPELINE_SOURCE != "api"
script:
- cd ${CI_PROJECT_DIR}
# Get pipeline for merge request
- MR_PIPELINE=$(.gitlab-ci/get_pipelines.py
--gitlab-url=${CI_SERVER_URL}
--token=${GITBOT_TOKEN}
--project=${CI_PROJECT_PATH}
--commit=${CI_COMMIT_SHA}
--ref=^${MASTER_BRANCH} || true | head -1)
# If pipeline exists, mirror its result
- if [ ! -z "${MR_PIPELINE}" ]; then
.gitlab-ci/mirror_pipeline_result.py
--gitlab-url=${CI_SERVER_URL}
--token=${GITBOT_TOKEN}
--project=${CI_PROJECT_PATH}
--pipeline=${MR_PIPELINE}
# If no pipeline found, trigger a new one on the master
- else
.gitlab-ci/trigger_pipeline.py
--gitlab-url=${CI_SERVER_URL}
--token=${GITBOT_TOKEN}
--project=${CI_PROJECT_PATH}
--ref=${MASTER_BRANCH}
- fi
.buildsdk:
extends:
- .buildimage
- .package
stage: build
rules:
- if: $CI_COMMIT_REF_NAME != $MASTER_BRANCH || $CI_PIPELINE_SOURCE == "api"
when: manual
allow_failure: true
variables:
BITBAKE_TASK: "populate_sdk"
artifacts:
paths:
- "${BUILDPATH}/${SDKPATH}/*.manifest"
- "${BUILDPATH}/${SDKPATH}/*.json"
reports:
dotenv: package.env
# ---------------------------------------------------------------------------------------
# Stage: test
# ---------------------------------------------------------------------------------------
.test:
extends:
- .infrastructure
- .prepare_test
timeout: 1h
rules:
- if: $CI_COMMIT_REF_NAME != $MASTER_BRANCH || $CI_PIPELINE_SOURCE == "api"
when: manual
allow_failure: true
variables:
# Include git submodules
GIT_SUBMODULE_STRATEGY: recursive
CI_PARAM_TEST_SUITE: '{platform}.jinja2'
CI_PARAM_EXTRA: --nop
artifacts:
when: always
paths:
- "results/**"
reports:
junit: results/results-*.xml
after_script:
- rm -r "${DEPLOYPATH_TEST}"
script:
- |-
# Submit tests to lava server
RELEASE=$(ls ${DEPLOYPATH_TEST}/)
INSTALLSCRIPT_ABS="$DEPLOYPATH_TEST/$RELEASE/$CI_PARAM_MACHINE/fng-install.sh"
FNG_INSTALL_URL="${ARTIFACTS_HOST_URL}/${INSTALLSCRIPT_ABS#/*/}"
.gitlab-ci/submit_test.py \
--fng-install "${FNG_INSTALL_URL}" \
--name \
"Gitlab build test ${CI_PARAM_MACHINE} ${RELEASE} ${CI_PIPELINE_ID}" \
--results-path "results" \
--test-repo ${TESTS_GIT_URL} \
--test-repo-branch ${MASTER_BRANCH} \
--test-plan ${CI_PARAM_TEST_SUITE} \
${CI_PARAM_EXTRA} \
${CI_PARAM_PLATFORMS}
# --------------------------------------------------------------------------------------
# Stage: deploy
# --------------------------------------------------------------------------------------
.deployimage:
extends:
- .infrastructure
- .package
rules:
- if: $CI_COMMIT_REF_NAME != $MASTER_BRANCH || $CI_PIPELINE_SOURCE == "api"
when: manual
allow_failure: true
script:
- echo
artifacts:
paths:
- release/**/**/*
reports:
dotenv: package.env
# --------------------------------------------------------------------------------------
# Stage: uploadftp
# --------------------------------------------------------------------------------------
.uploadftp:
variables:
CI_PARAM_PACKAGE_FTP: "true"
extends:
- .infrastructure
- .package
rules:
- if: $CI_COMMIT_TAG
when: manual
allow_failure: true
script:
- echo
.uploadsdkftp:
variables:
ARTIFACTS_SDK_PATH: "$LOCALDIR/$BUILD_MACHINE/sdk"
# ---------------------------------------------------------------------------------------
# Actual jobs
# ---------------------------------------------------------------------------------------
build:imx6guf:
extends: .buildimage
stage: build
variables:
CI_PARAM_MACHINE: imx6guf
build:imx6ullguf:
extends: .buildimage
stage: build
variables:
CI_PARAM_MACHINE: imx6ullguf
build:imx8mguf:
extends: .buildimage
stage: build
variables:
CI_PARAM_MACHINE: imx8mguf
build:imx8mpguf:
extends: .buildimage
stage: build
variables:
CI_PARAM_MACHINE: imx8mpguf
build:imx6guf:fngsystem:
extends: .buildfng
stage: build
variables:
CI_PARAM_MACHINE: imx6guf
build:imx6ullguf:fngsystem:
extends: .buildfng
stage: build
variables:
CI_PARAM_MACHINE: imx6ullguf
build:imx8mguf:fngsystem:
extends: .buildfng
stage: build
variables:
CI_PARAM_MACHINE: imx8mguf
build:imx8mpguf:fngsystem:
extends: .buildfng
stage: build
variables:
CI_PARAM_MACHINE: imx8mpguf
# -------------------------------------------------------------------------------------
buildsdk:imx6guf:
extends: .buildsdk
stage: build
variables:
CI_PARAM_MACHINE: imx6guf
buildsdk:imx6ullguf:
extends: .buildsdk
stage: build
variables:
CI_PARAM_MACHINE: imx6ullguf
buildsdk:imx8mguf:
extends: .buildsdk
stage: build
variables:
CI_PARAM_MACHINE: imx8mguf
buildsdk:imx8mpguf:
extends: .buildsdk
stage: build
variables:
CI_PARAM_MACHINE: imx8mpguf
# -------------------------------------------------------------------------------------
deployimage:imx6guf:
extends: .deployimage
stage: deploy
needs: ["build:imx6guf", "changelog"]
deployimage:imx6ullguf:
extends: .deployimage
stage: deploy
needs: ["build:imx6ullguf", "changelog"]
deployimage:imx8mguf:
extends: .deployimage
stage: deploy
needs: ["build:imx8mguf", "changelog"]
deployimage:imx8mpguf:
extends: .deployimage
stage: deploy
needs: ["build:imx8mpguf", "changelog"]
deployimage:imx6guf:fngsystem:
extends: .deployimage
stage: deploy
needs: ["build:imx6guf:fngsystem", "changelog"]
deployimage:imx6ullguf:fngsystem:
extends: .deployimage
stage: deploy
needs: ["build:imx6ullguf:fngsystem", "changelog"]
deployimage:imx8mguf:fngsystem:
extends: .deployimage
stage: deploy
needs: ["build:imx8mguf:fngsystem", "changelog"]
deployimage:imx8mpguf:fngsystem:
extends: .deployimage
stage: deploy
needs: ["build:imx8mpguf:fngsystem", "changelog"]
# -------------------------------------------------------------------------------------
uploadftp:imx6guf:
extends:
- .uploadftp
- .uploadsdkftp
stage: uploadftp
needs: ["build:imx6guf", "buildsdk:imx6guf", "changelog"]
uploadftp:imx6ullguf:
extends:
- .uploadftp
- .uploadsdkftp
stage: uploadftp
needs: ["build:imx6ullguf", "buildsdk:imx6ullguf", "changelog"]
uploadftp:imx8mguf:
extends:
- .uploadftp
- .uploadsdkftp
stage: uploadftp
needs: ["build:imx8mguf", "buildsdk:imx8mguf", "changelog"]
uploadftp:imx8mpguf:
extends:
- .uploadftp
- .uploadsdkftp
stage: uploadftp
needs: ["build:imx8mpguf", "buildsdk:imx8mpguf", "changelog"]
uploadftp:imx6guf:fngsystem:
extends: .uploadftp
stage: uploadftp
needs: ["build:imx6guf:fngsystem", "changelog"]
uploadftp:imx6ullguf:fngsystem:
extends: .uploadftp
stage: uploadftp
needs: ["build:imx6ullguf:fngsystem", "changelog"]
uploadftp:imx8mguf:fngsystem:
extends: .uploadftp
stage: uploadftp
needs: ["build:imx8mguf:fngsystem", "changelog"]
uploadftp:imx8mpguf:fngsystem:
extends: .uploadftp
stage: uploadftp
needs: ["build:imx8mpguf:fngsystem", "changelog"]
# -------------------------------------------------------------------------------------
platformtest:imx6guf:
extends: .test
stage: test
needs:
- job: build:imx6guf
variables:
CI_PARAM_MACHINE: imx6guf
CI_PARAM_PLATFORMS: santaro santoka santino santino-lt
platformtest:imx6ullguf:
extends: .test
stage: test
needs:
- job: build:imx6ullguf
variables:
CI_PARAM_MACHINE: imx6ullguf
CI_PARAM_PLATFORMS: nallino
platformtest:imx8mguf:
extends: .test
stage: test
needs:
- job: build:imx6ullguf
variables:
CI_PARAM_MACHINE: imx8mguf
CI_PARAM_PLATFORMS: tanaro
smoketest:imx6guf:
extends: .test
stage: test
needs:
- job: build:imx6guf
variables:
CI_PARAM_MACHINE: imx6guf
CI_PARAM_PLATFORMS: imx6guf
CI_PARAM_TEST_SUITE: boot.jinja2
CI_PARAM_EXTRA: --all-devices
smoketest:imx6ullguf:
extends: .test
stage: test
needs:
- job: build:imx6ullguf
variables:
CI_PARAM_MACHINE: imx6ullguf
CI_PARAM_PLATFORMS: imx6ullguf
CI_PARAM_TEST_SUITE: boot.jinja2
CI_PARAM_EXTRA: --all-devices
smoketest:imx8mguf:
extends: .test
stage: test
needs:
- job: build:imx8mguf
variables:
CI_PARAM_MACHINE: imx8mguf
CI_PARAM_PLATFORMS: imx8mguf
CI_PARAM_TEST_SUITE: boot.jinja2
CI_PARAM_EXTRA: --all-devices
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment