From 3c3fd6e0f28c699c963f98c832cac265b34deb5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20H=C3=B6ppner?= <jonas.hoeppner@garz-fricke.com> Date: Fri, 6 Aug 2021 13:58:37 +0200 Subject: [PATCH] CI: Add manual job for deploy and sdk, pull gitlab-ci for local deployment The deploy job creates the release folder and local copy of images and docs. The sdk job build the sdk per platform and uses the local deployment only. BCS 746-000262 Change-Id: Icce94627aabd229a3777229b1e4c486f832ef6f8 --- .gitlab-ci | 2 +- .gitlab-ci-build.yml | 80 ++++++++++++++++++++++++++++---------------- .gitlab-ci.yml | 57 +++++++++++++++++++++++++++---- 3 files changed, 103 insertions(+), 36 deletions(-) diff --git a/.gitlab-ci b/.gitlab-ci index 09eb4bcf..de38c9f0 160000 --- a/.gitlab-ci +++ b/.gitlab-ci @@ -1 +1 @@ -Subproject commit 09eb4bcfa363e2674a6986cebaf5d6eba7c8fdd7 +Subproject commit de38c9f02270f276cdead60b4704d10482d38ebd diff --git a/.gitlab-ci-build.yml b/.gitlab-ci-build.yml index d37a7ec4..4a153d8a 100644 --- a/.gitlab-ci-build.yml +++ b/.gitlab-ci-build.yml @@ -1,6 +1,8 @@ variables: BUILDPATH: "build-${CI_PARAM_DISTRO}-${CI_PARAM_MACHINE}" - IMAGEPATH: "tmp/deploy/images/${CI_PARAM_MACHINE}" + IMAGEBASEPATH: "tmp/deploy/images/" + IMAGEPATH: "${IMAGEBASEPATH}/${CI_PARAM_MACHINE}" + SDKPATH: "tmp/deploy/sdk/" .setup_ssh: &setup_ssh # setup ssh key to access private repos @@ -21,19 +23,12 @@ variables: .collect_srcrevs: &collect_srcrevs # write all package AUTOREVS to file - - SRCREVS_FILE="${CI_PROJECT_DIR}/${BUILDPATH}/${IMAGEPATH}/BUILD_SRCREVS.log" - - buildhistory-collect-srcrevs > ${SRCREVS_FILE} - - cat ${SRCREVS_FILE} - -.package: &package - # checkout .gitlab-ci folder of manifest (is not synced automatically by repo) - - cd ${CI_PROJECT_DIR}/.repo/manifests - - git submodule update --init - # package release - - cd ${CI_PROJECT_DIR} - - .repo/manifests/.gitlab-ci/package_release.py - --images-dir=${BUILDPATH}/${IMAGEPATH} - --release-dir=release + - |- + 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 @@ -46,38 +41,65 @@ variables: export GITLAB_TOKEN=<your_access_token> FNG="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${CI_JOB_ID}/artifacts/${BUILDPATH}/${IMAGEPATH}/${i}" - export TFTP="\$(dirname "\$FNG")" - curl --location --header "PRIVATE-TOKEN: \$GITLAB_TOKEN" "\$FNG" | sh -s + 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 "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: - # setup build environment - - echo "Build configuration MACHINE=${CI_PARAM_MACHINE} DISTRO=${CI_PARAM_DISTRO} IMAGE=${CI_PARAM_IMAGE}" - - 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" - - bitbake "${CI_PARAM_IMAGE}" - - echo -e "section_end:`date +%s`:bitbake_run\r\e[0K" + - *build_script - *collect_srcrevs - - *package - *dump_install_command + artifacts: paths: - "${BUILDPATH}/${IMAGEPATH}/*" - - release/**/**/* + +.package: + after_script: + - |- + # in deploy job there is a changed directory structure + for p in build-guf-*; + do + machine="${p##*-}" + .gitlab-ci/package_release.py \ + --images-dir="${p}/${IMAGEBASEPATH}/${machine}" \ + --doc-dir=. \ + --release-dir=release + done + +.package_sdk: + after_script: + - |- + ls -la + cd ${CI_PROJECT_DIR}/.repo/manifests + git submodule update --init + cd ${CI_PROJECT_DIR} + .repo/manifests/.gitlab-ci/package_release.py \ + --sdk-dir=${BUILDPATH}/${SDKPATH} \ + --release-dir=release diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8c4e388b..d8a7b74e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,9 @@ include: stages: - retrigger - documentation - - build + - image + - deploy + - sdk variables: CI_IMAGES_PATH: registry.gitlab.com/garz-fricke/yocto/infrastructure/ci-images @@ -60,10 +62,7 @@ retrigger: #--------------------------------------------------------------------------------------- # Stage: build #--------------------------------------------------------------------------------------- -build: - extends: .build - stage: build - needs: [] +.buildbase: tags: - builds timeout: 8h @@ -78,6 +77,18 @@ build: - "--" - "/usr/bin/poky-entry.py" - "--id=118:998" + artifacts: + expire_in: 4 weeks + +#--------------------------------------------------------------------------------------- +# Stage: build +#--------------------------------------------------------------------------------------- +buildimage: + extends: + - .buildbase + - .build + needs: [] + stage: image parallel: matrix: # Yocto OS @@ -88,8 +99,42 @@ build: - CI_PARAM_MACHINE: [imx6guf, imx6ullguf, imx8mguf] CI_PARAM_DISTRO: [guf-fngsystem] CI_PARAM_IMAGE: [fngsystem-image] + +#--------------------------------------------------------------------------------------- +# Stage: deploy +#--------------------------------------------------------------------------------------- +deployimage: + variables: + GIT_SUBMODULE_STRATEGY: normal + extends: + - .buildbase + - .package + stage: deploy + when: manual + script: + - echo artifacts: - expire_in: 4 weeks + paths: + - release/**/**/* + +#--------------------------------------------------------------------------------------- +# Stage: build sdk +#--------------------------------------------------------------------------------------- +buildsdk: + extends: + - .buildbase + - .build + - .package_sdk + needs: [] + stage: sdk + when: manual + variables: + BITBAKE_TASK: "populate_sdk" + parallel: + matrix: + - CI_PARAM_MACHINE: [imx6guf, imx6ullguf, imx8mguf] + CI_PARAM_DISTRO: [guf-wayland] + CI_PARAM_IMAGE: [guf-image-minimal] #--------------------------------------------------------------------------------------- # Stage: documentation -- GitLab