Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
uboot-imx-kuk
Manage
Activity
Members
Labels
Code
Merge requests
6
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
SECO Northern Europe
3rd-party
KuK
uboot-imx-kuk
Commits
883834fa
Commit
883834fa
authored
3 years ago
by
Felix Gerking
Browse files
Options
Downloads
Patches
Plain Diff
CI: Replaced gitlab-ci for reproducible builds
BCS 746-000016
parent
3d0d1745
No related branches found
No related tags found
1 merge request
!13
CI: Replaced gitlab-ci for reproducible builds
Pipeline
#13089
passed with stage
in 21 seconds
Changes
4
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
.gitignore
+3
-0
3 additions, 0 deletions
.gitignore
.gitlab-ci
+1
-0
1 addition, 0 deletions
.gitlab-ci
.gitlab-ci.yml
+117
-343
117 additions, 343 deletions
.gitlab-ci.yml
.gitmodules
+3
-0
3 additions, 0 deletions
.gitmodules
with
124 additions
and
343 deletions
.gitignore
+
3
−
0
View file @
883834fa
...
...
@@ -50,6 +50,9 @@ fit-dtb.blob*
#
!.gitignore
!.mailmap
!.gitlab-ci
!.gitlab-ci.yml
!.gitmodules
#
# Generated files
...
...
This diff is collapsed.
Click to expand it.
.gitlab-ci
@
5847145f
Subproject commit 5847145fb42f00483a265f66c875e3066e4d4547
This diff is collapsed.
Click to expand it.
.gitlab-ci.yml
+
117
−
343
View file @
883834fa
# SPDX-License-Identifier: GPL-2.0+
# ---------------------------------------------------------------------------------------
# Global
# ---------------------------------------------------------------------------------------
image
:
"
${CI_IMAGES}/python/3.9:99e363bc5feaa27ff18dbe7731a76ff04d7d0deb"
# Grab our configured image. The source for this is found at:
# https://gitlab.denx.de/u-boot/gitlab-ci-runner
image
:
trini/u-boot-gitlab-ci-runner:bionic-20200112-21Feb2020
# We run some tests in different order, to catch some failures quicker.
stages
:
-
testsuites
-
test.py
-
world build
.buildman_and_testpy_template
:
&buildman_and_testpy_dfn
tags
:
[
'
all'
]
stage
:
test.py
before_script
:
# Clone uboot-test-hooks
-
git clone --depth=1 git://github.com/swarren/uboot-test-hooks.git /tmp/uboot-test-hooks
-
ln -s travis-ci /tmp/uboot-test-hooks/bin/`hostname`
-
ln -s travis-ci /tmp/uboot-test-hooks/py/`hostname`
-
grub-mkimage --prefix="" -o ~/grub_x86.efi -O i386-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd
-
grub-mkimage --prefix="" -o ~/grub_x64.efi -O x86_64-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd
-
cp /opt/grub/grubriscv64.efi ~/grub_riscv64.efi
-
cp /opt/grub/grubaa64.efi ~/grub_arm64.efi
-
cp /opt/grub/grubarm.efi ~/grub_arm.efi
after_script
:
-
rm -rf /tmp/uboot-test-hooks /tmp/venv
script
:
# From buildman, exit code 129 means warnings only. If we've been asked to
# use clang only do one configuration.
-
if [[ "${BUILDMAN}" != "" ]]; then
ret=0;
tools/buildman/buildman -o /tmp -P -E ${BUILDMAN} ${OVERRIDE}|| ret=$?;
if [[ $ret -ne 0 && $ret -ne 129 ]]; then
tools/buildman/buildman -o /tmp -sdeP ${BUILDMAN};
exit $ret;
fi;
fi
# "not a_test_which_does_not_exist" is a dummy -k parameter which will
# never prevent any test from running. That way, we can always pass
# "-k something" even when $TEST_PY_TEST_SPEC doesnt need a custom
# value.
-
virtualenv -p /usr/bin/python3 /tmp/venv
-
. /tmp/venv/bin/activate
-
pip install -r test/py/requirements.txt
-
export UBOOT_TRAVIS_BUILD_DIR=/tmp/.bm-work/${TEST_PY_BD};
export PATH=/opt/qemu/bin:/tmp/uboot-test-hooks/bin:${PATH};
export PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci;
if [[ "${TEST_PY_BD}" != "" ]]; then
./test/py/test.py --bd ${TEST_PY_BD} ${TEST_PY_ID}
-k "${TEST_PY_TEST_SPEC:-not a_test_which_does_not_exist}"
--build-dir "$UBOOT_TRAVIS_BUILD_DIR";
ret=$?;
if [[ $ret -ne 0 ]]; then
exit $ret;
fi;
fi;
build all 32bit ARM platforms
:
tags
:
[
'
all'
]
stage
:
world build
script
:
-
ret=0;
./tools/buildman/buildman -o /tmp -P -E arm -x aarch64 || ret=$?;
if [[ $ret -ne 0 && $ret -ne 129 ]]; then
./tools/buildman/buildman -o /tmp -sdeP;
exit $ret;
fi;
build all 64bit ARM platforms
:
tags
:
[
'
all'
]
stage
:
world build
script
:
-
virtualenv -p /usr/bin/python3 /tmp/venv
-
. /tmp/venv/bin/activate
-
pip install pyelftools
-
ret=0;
./tools/buildman/buildman -o /tmp -P -E aarch64 || ret=$?;
if [[ $ret -ne 0 && $ret -ne 129 ]]; then
./tools/buildman/buildman -o /tmp -sdeP;
exit $ret;
fi;
build all PowerPC platforms
:
tags
:
[
'
all'
]
stage
:
world build
script
:
-
ret=0;
./tools/buildman/buildman -o /tmp -P -E powerpc || ret=$?;
if [[ $ret -ne 0 && $ret -ne 129 ]]; then
./tools/buildman/buildman -o /tmp -sdeP;
exit $ret;
fi;
build all other platforms
:
tags
:
[
'
all'
]
stage
:
world build
script
:
-
ret=0;
./tools/buildman/buildman -o /tmp -P -E -x arm,powerpc || ret=$?;
if [[ $ret -ne 0 && $ret -ne 129 ]]; then
./tools/buildman/buildman -o /tmp -sdeP;
exit $ret;
fi;
# QA jobs for code analytics
# static code analysis with cppcheck (we can add --enable=all later)
cppcheck
:
tags
:
[
'
all'
]
stage
:
testsuites
script
:
-
cppcheck --force --quiet --inline-suppr .
# search for TODO within source tree
grep TODO/FIXME/HACK
:
tags
:
[
'
all'
]
stage
:
testsuites
script
:
-
grep -r TODO .
-
grep -r FIXME .
# search for HACK within source tree and ignore HACKKIT board
-
grep -r HACK . | grep -v HACKKIT
# build HTML documentation
htmldocs
:
tags
:
[
'
all'
]
stage
:
testsuites
script
:
-
make htmldocs
# some statistics about the code base
sloccount
:
tags
:
[
'
all'
]
stage
:
testsuites
script
:
-
sloccount .
# ensure all configs have MAINTAINERS entries
Check for configs without MAINTAINERS entry
:
tags
:
[
'
all'
]
stage
:
testsuites
script
:
-
if [ `./tools/genboardscfg.py -f 2>&1 | wc -l` -ne 0 ]; then exit 1; fi
# Ensure host tools build
Build tools-only
:
tags
:
[
'
all'
]
stage
:
testsuites
-
integrate
-
merge
-
build
-
check
variables
:
# CI_IMAGES_BASEPATH: Environment variable configure in gitlab
CI_IMAGES
:
${CI_IMAGES_BASEPATH}/ci-images
# Include git submodules
GIT_SUBMODULE_STRATEGY
:
recursive
# FIXME: due to a missing feature in GitLab we cannot use this variable
# in the build stage further down this file. If it ever changes, it has
# to be changed there too.
# (https://gitlab.com/gitlab-org/gitlab/-/issues/249583)
MANIFEST_PROJECT
:
${CI_PROJECT_ROOT_NAMESPACE}/yocto/manifest
MASTER_BRANCH_MANIFEST
:
dunfell
MASTER_BRANCH_PROJECT
:
guf_imx_v2020.04-trizeps8plus_2021_12_07
# We add the recipe name here to resolve the corresponding bitbake recipe.
# Otherwise a very strict repository <-> recipe naming would be required.
# The recipe name is used to modify the correct source version.
BB_RECIPE_NAME
:
u-boot-imx
workflow
:
rules
:
# Do not run pipelines on forked projects
-
if
:
$CI_PROJECT_PATH == "SECO-Northern-Europe/3rd-party/kuk/uboot-imx-kuk"
&& $CI_MERGE_REQUEST_SOURCE_PROJECT_ID == $CI_MERGE_REQUEST_PROJECT_ID
# ---------------------------------------------------------------------------------------
# Stage: integrate
# ---------------------------------------------------------------------------------------
integrate
:
stage
:
integrate
rules
:
# We have to make sure that the pipeline runs for the current manifest
# master at the time a merge request is created. Otherwise we cannot
# guarantee a green master after merging.
-
if
:
$CI_MERGE_REQUEST_IID
tags
:
-
infrastructure
timeout
:
2m
cache
:
policy
:
push
script
:
-
make tools-only_config tools-only -j$(nproc)
# Ensure env tools build
Build envtools
:
tags
:
[
'
all'
]
stage
:
testsuites
-
cd ${CI_PROJECT_DIR}
-
.gitlab-ci/integrate_into_manifest.py
--gitlab-url=${CI_SERVER_URL}
--token=${GITBOT_TOKEN}
--manifest-project=${MANIFEST_PROJECT}
--integration-base=${MASTER_BRANCH_MANIFEST}
--project=${CI_PROJECT_PATH}
--merge-request=${CI_MERGE_REQUEST_IID}
--save-revision-to=manifest_revision
--recipe-name=${BB_RECIPE_NAME}
artifacts
:
paths
:
-
manifest_revision
# ---------------------------------------------------------------------------------------
# Stage: merge
# ---------------------------------------------------------------------------------------
merge
:
stage
:
merge
rules
:
-
if
:
$CI_COMMIT_BRANCH == $MASTER_BRANCH_PROJECT
tags
:
-
infrastructure
timeout
:
3m
script
:
-
make tools-only_config envtools -j$(nproc)
Run binman, buildman, dtoc and patman testsuites
:
tags
:
[
'
all'
]
stage
:
testsuites
-
cd ${CI_PROJECT_DIR}
-
.gitlab-ci/merge_into_manifest.py
--gitlab-url=${CI_SERVER_URL}
--token=${GITBOT_TOKEN}
--manifest-project=${MANIFEST_PROJECT}
--master-branch=${MASTER_BRANCH_MANIFEST}
--project=${CI_PROJECT_PATH}
--master-branch-project=${MASTER_BRANCH_PROJECT}
--commit=${CI_COMMIT_SHA}
--save-revision-to=manifest_revision
--recipe-name=${BB_RECIPE_NAME}
artifacts
:
paths
:
-
manifest_revision
# ---------------------------------------------------------------------------------------
# Stage: build
# ---------------------------------------------------------------------------------------
build
:
stage
:
build
rules
:
-
if
:
$CI_MERGE_REQUEST_IID
trigger
:
project
:
SECO-Northern-Europe/yocto/manifest
branch
:
"
integrate/${CI_PROJECT_NAME}/${CI_COMMIT_REF_NAME}"
strategy
:
depend
# ---------------------------------------------------------------------------------------
# Stage: check
# ---------------------------------------------------------------------------------------
check
:
stage
:
check
rules
:
-
if
:
$CI_MERGE_REQUEST_IID
needs
:
[
"
integrate"
]
tags
:
-
infrastructure
timeout
:
2m
script
:
-
git config --global user.name "GitLab CI Runner";
git config --global user.email trini@konsulko.com;
export USER=gitlab;
virtualenv -p /usr/bin/python3 /tmp/venv;
. /tmp/venv/bin/activate;
pip install pyelftools;
export UBOOT_TRAVIS_BUILD_DIR=/tmp/.bm-work/sandbox_spl;
export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt";
export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}";
./tools/buildman/buildman -o /tmp -P sandbox_spl;
./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test;
./tools/buildman/buildman -t;
./tools/dtoc/dtoc -t;
./tools/patman/patman --test
# Test sandbox with test.py
sandbox test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
sandbox"
BUILDMAN
:
"
^sandbox$"
<<
:
*buildman_and_testpy_dfn
sandbox with clang test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
sandbox"
BUILDMAN
:
"
^sandbox$"
OVERRIDE
:
"
-O
clang-7"
<<
:
*buildman_and_testpy_dfn
sandbox_spl test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
sandbox_spl"
BUILDMAN
:
"
^sandbox_spl$"
TEST_PY_TEST_SPEC
:
"
test_ofplatdata"
<<
:
*buildman_and_testpy_dfn
evb-ast2500 test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
evb-ast2500"
TEST_PY_ID
:
"
--id
qemu"
BUILDMAN
:
"
^evb-ast2500$"
<<
:
*buildman_and_testpy_dfn
sandbox_flattree test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
sandbox_flattree"
BUILDMAN
:
"
^sandbox_flattree$"
<<
:
*buildman_and_testpy_dfn
vexpress_ca15_tc2 test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
vexpress_ca15_tc2"
TEST_PY_ID
:
"
--id
qemu"
BUILDMAN
:
"
^vexpress_ca15_tc2$"
<<
:
*buildman_and_testpy_dfn
vexpress_ca9x4 test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
vexpress_ca9x4"
TEST_PY_ID
:
"
--id
qemu"
BUILDMAN
:
"
^vexpress_ca9x4$"
<<
:
*buildman_and_testpy_dfn
integratorcp_cm926ejs test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
integratorcp_cm926ejs"
TEST_PY_TEST_SPEC
:
"
not
sleep"
TEST_PY_ID
:
"
--id
qemu"
BUILDMAN
:
"
^integratorcp_cm926ejs$"
<<
:
*buildman_and_testpy_dfn
qemu_arm test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
qemu_arm"
TEST_PY_TEST_SPEC
:
"
not
sleep"
BUILDMAN
:
"
^qemu_arm$"
<<
:
*buildman_and_testpy_dfn
qemu_arm64 test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
qemu_arm64"
TEST_PY_TEST_SPEC
:
"
not
sleep"
BUILDMAN
:
"
^qemu_arm64$"
<<
:
*buildman_and_testpy_dfn
qemu_mips test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
qemu_mips"
TEST_PY_TEST_SPEC
:
"
not
sleep"
BUILDMAN
:
"
^qemu_mips$"
<<
:
*buildman_and_testpy_dfn
qemu_mipsel test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
qemu_mipsel"
TEST_PY_TEST_SPEC
:
"
not
sleep"
BUILDMAN
:
"
^qemu_mipsel$"
<<
:
*buildman_and_testpy_dfn
qemu_mips64 test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
qemu_mips64"
TEST_PY_TEST_SPEC
:
"
not
sleep"
BUILDMAN
:
"
^qemu_mips64$"
<<
:
*buildman_and_testpy_dfn
qemu_mips64el test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
qemu_mips64el"
TEST_PY_TEST_SPEC
:
"
not
sleep"
BUILDMAN
:
"
^qemu_mips64el$"
<<
:
*buildman_and_testpy_dfn
qemu-ppce500 test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
qemu-ppce500"
TEST_PY_TEST_SPEC
:
"
not
sleep"
BUILDMAN
:
"
^qemu-ppce500$"
<<
:
*buildman_and_testpy_dfn
qemu-riscv64 test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
qemu-riscv64"
TEST_PY_TEST_SPEC
:
"
not
sleep"
BUILDMAN
:
"
^qemu-riscv64$"
<<
:
*buildman_and_testpy_dfn
qemu-x86 test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
qemu-x86"
TEST_PY_TEST_SPEC
:
"
not
sleep"
BUILDMAN
:
"
^qemu-x86$"
<<
:
*buildman_and_testpy_dfn
qemu-x86_64 test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
qemu-x86_64"
TEST_PY_TEST_SPEC
:
"
not
sleep"
BUILDMAN
:
"
^qemu-x86_64$"
<<
:
*buildman_and_testpy_dfn
zynq_zc702 test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
zynq_zc702"
TEST_PY_TEST_SPEC
:
"
not
sleep"
TEST_PY_ID
:
"
--id
qemu"
BUILDMAN
:
"
^zynq_zc702$"
<<
:
*buildman_and_testpy_dfn
xilinx_versal_virt test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
xilinx_versal_virt"
TEST_PY_TEST_SPEC
:
"
not
sleep"
TEST_PY_ID
:
"
--id
qemu"
BUILDMAN
:
"
^xilinx_versal_virt$"
<<
:
*buildman_and_testpy_dfn
xtfpga test.py
:
tags
:
[
'
all'
]
variables
:
TEST_PY_BD
:
"
xtfpga"
TEST_PY_TEST_SPEC
:
"
not
sleep"
TEST_PY_ID
:
"
--id
qemu"
BUILDMAN
:
"
^xtfpga$"
<<
:
*buildman_and_testpy_dfn
-
cd ${CI_PROJECT_DIR}
-
.gitlab-ci/check_if_integration_branch_is_up_to_date.py
--gitlab-url=${CI_SERVER_URL}
--token=${GITBOT_TOKEN}
--manifest-project=${MANIFEST_PROJECT}
--integration-base=${MASTER_BRANCH_MANIFEST}
--project=${CI_PROJECT_PATH}
--merge-request=${CI_MERGE_REQUEST_IID}
This diff is collapsed.
Click to expand it.
.gitmodules
0 → 100644
+
3
−
0
View file @
883834fa
[submodule ".gitlab-ci"]
path = .gitlab-ci
url = ../../../yocto/infrastructure/gitlab-ci
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment