diff --git a/build-pipeline-yocto.yml.jinja2 b/build-pipeline-yocto.yml.jinja2 index 41c88de51381c34686a46be8e3a5f2f6cbb7f1ba..11626f25a87a63bf12a1b1b2350c7d8abadff5b8 100644 --- a/build-pipeline-yocto.yml.jinja2 +++ b/build-pipeline-yocto.yml.jinja2 @@ -33,6 +33,12 @@ variables: changelog: extends: .changelog +build-version: + extends: .build_version + variables: + # We have to set a machine, even if it is not actually needed for what the job does, + # so we just choose the first. + MACHINE: {{ MACHINES.split(' ')[0] }} # -------------------------------------------------------------------------------------- # Generated jobs diff --git a/build-pipeline.yml b/build-pipeline.yml index 8931d9c79e681ea32f8d8652a763c542e94958f6..58688be04c17e4500ba7d4b3c4b64e0e6c085ec2 100644 --- a/build-pipeline.yml +++ b/build-pipeline.yml @@ -96,8 +96,7 @@ workflow: fi fi -.build_script: &build_script - # setup build environment +.setup_build: &setup_build - echo "Build configuration MACHINE=${MACHINE} DISTRO=${YOCTO_DISTRO} IMAGE=${YOCTO_IMAGE}" - echo "Using build dir ${BUILD_PATH}" @@ -105,7 +104,8 @@ workflow: - export DISTRO="${YOCTO_DISTRO}" - export EULA="1" - source ./"${SETUP_SCRIPT}" "${BUILD_PATH}" - # start build + +.run_build: &run_build - echo -e "section_start:`date +%s`:bitbake_run\r\e[0KBitbake Log" - echo "bitbake ${YOCTO_IMAGE} -c ${BITBAKE_TASK}" - bitbake "${YOCTO_IMAGE}" -c "${BITBAKE_TASK}" @@ -140,6 +140,32 @@ workflow: paths: - "changelog.md" +.build_version: + extends: + - .build_yocto + stage: Infrastructure + tags: + - infrastructure + needs: [] + variables: + BITBAKE_ENV_COMMAND: eval $(bitbake "${YOCTO_IMAGE}" -e) + # RELEASE_VERSION and RELEASE_NAME get eval'ed before saving them to version.env, + # so we can use deferred variable expansion or even command execution to construct + # their values. + RELEASE_VERSION: \${DISTRO_VERSION} + RELEASE_NAME: Yocto-${RELEASE_VERSION} + script: + - ${BITBAKE_ENV_COMMAND} + - RELEASE_VERSION=$(eval echo "${RELEASE_VERSION}") + - RELEASE_NAME=$(eval echo "${RELEASE_NAME}") + - echo "RELEASE_VERSION=${RELEASE_VERSION}" >> version.env + - echo "RELEASE_NAME=${RELEASE_NAME}" >> version.env + - cat version.env + artifacts: + expire_in: 1 week + reports: + dotenv: version.env + # -------------------------------------------------------------------------------------- # Stage: build # -------------------------------------------------------------------------------------- @@ -220,9 +246,10 @@ workflow: - *docker_check - *setup_ssh - *repo_checkout + - *setup_build script: + - *run_build - *save_build_env - - *build_script - *collect_srcrevs - *dump_install_command diff --git a/manifest-pipeline-ci-test.yml b/manifest-pipeline-ci-test.yml index 362c2b4a064dd250a95d030fc99d6e1fec1644c7..98206572692051c920fe3b83777a89b649744b71 100644 --- a/manifest-pipeline-ci-test.yml +++ b/manifest-pipeline-ci-test.yml @@ -68,6 +68,7 @@ yocto-simulation-pipeline: - .build-pipeline - .yocto-deploy variables: + BITBAKE_ENV_COMMAND: "DISTRO_VERSION=kirkstone-7.0" BUILD_ARTIFACTS_PREFIX: >- https://git.seco.com/seco-ne/yocto/manifest/-/jobs/artifacts/kirkstone/7.0/download?job=build YOCTO_IMAGE: seconorth-image diff --git a/manifest-pipeline-yocto.yml b/manifest-pipeline-yocto.yml index 7dd54297409e12210fe5a3fc1c9a1cee5ebf1427..83590e8b7b7af8ea76dbb34df9ceefa6c7f0b3a0 100644 --- a/manifest-pipeline-yocto.yml +++ b/manifest-pipeline-yocto.yml @@ -96,6 +96,8 @@ fngsystem-pipeline: YOCTO_IMAGE: fngsystem-image YOCTO_DISTRO: guf-fngsystem INSTALL_SCRIPT: fngsystem-self-update.sh + RELEASE_VERSION: \$(echo \$DISTRO_VERSION | sed "s/fngsystem//") + RELEASE_NAME: FNGSystem-\${RELEASE_VERSION} ARTIFACTS_PATH: build-*/tmp/deploy/images/**/* PACKAGE_TYPE: image ALPHAPLAN_STAGE: "true"