Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • eclipse/oniro-core/oniro
  • landgraf/oniro
  • zyga/oniro
  • mrybczyn/oniro
  • agherzan/oniro
  • pcoval/oniro
  • tony3oo3/oniro
  • stefanschmidt/oniro
  • waykovalenko/oniro
  • bero/oniro
  • esben/oniro
  • robertd/oniro
  • pidge/oniro
  • shettygururaj/oniro
  • thierrye/oniro
  • sradakovi/oniro
  • dricci783/oniro
  • ektor5/oniro
  • fldn/oniro
  • lucafavaretto/oniro
  • lucazizolfi/oniro
  • artemkondratiuk/oniro
  • lucaseri/oniro
  • gwozdzcfs/oniro
  • kristis/oniro
  • brgl/oniro
  • heurtemattes/oniro
  • idlethread/oniro
  • lquach/oniro
  • ghassaneben/oniro
  • heurtemattes/oniro-bitbake
  • kzarka/oniro
  • heurtemattes/oniro-migration
  • pastanki/oniro
  • malowe/oniro
  • chaseqi/oniro
  • mrfrank/oniro
37 results
Show changes
Commits on Source (35)
Showing
with 409 additions and 52 deletions
......@@ -250,16 +250,28 @@ lava-seco-intel-b68:
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/seco-intel-b68.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-seco-c61:
lava-seco-c61-4gb:
needs: [linux-seco-imx8mm-c61-4gb-gcc]
stage: test
extends: .lava-test-scheduled
variables:
MACHINE: seco-imx8mm-c61-4gb
BOARD_RAM_SIZE: 4gb
CI_BUILD_JOB_NAME: linux-seco-imx8mm-c61-4gb-gcc
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/seco-c61.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-seco-c61-2gb:
needs: [linux-seco-imx8mm-c61-2gb-gcc]
stage: test
extends: .lava-test-scheduled
variables:
MACHINE: seco-imx8mm-c61-2gb
BOARD_RAM_SIZE: 2gb
CI_BUILD_JOB_NAME: linux-seco-imx8mm-c61-2gb-gcc
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/seco-c61.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-qemu-x86-ltp:
needs: [linux-qemu-x86-gcc]
stage: test
......@@ -300,16 +312,28 @@ lava-seco-intel-b68-ltp:
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/seco-intel-b68-ltp.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-seco-c61-ltp:
lava-seco-c61-4gb-ltp:
needs: [linux-seco-imx8mm-c61-4gb-gcc]
stage: test
extends: .lava-test-scheduled
variables:
MACHINE: seco-imx8mm-c61-4gb
BOARD_RAM_SIZE: 4gb
CI_BUILD_JOB_NAME: linux-seco-imx8mm-c61-4gb-gcc
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/seco-c61-ltp.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-seco-c61-2gb-ltp:
needs: [linux-seco-imx8mm-c61-2gb-gcc]
stage: test
extends: .lava-test-scheduled
variables:
MACHINE: seco-imx8mm-c61-2gb
BOARD_RAM_SIZE: 2gb
CI_BUILD_JOB_NAME: linux-seco-imx8mm-c61-2gb-gcc
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/seco-c61-ltp.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-qemu-x86_64-kselftest:
needs: [linux-qemu-x86_64-gcc]
stage: test
......@@ -330,16 +354,28 @@ lava-raspberrypi4-64-kselftest:
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/raspberrypi4-64-kselftest.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-seco-c61-kselftest:
lava-seco-c61-4gb-kselftest:
needs: [linux-seco-imx8mm-c61-4gb-gcc]
stage: test
extends: .lava-test-scheduled
variables:
MACHINE: seco-imx8mm-c61-4gb
BOARD_RAM_SIZE: 4gb
CI_BUILD_JOB_NAME: linux-seco-imx8mm-c61-4gb-gcc
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/seco-c61-kselftest.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-seco-c61-2gb-kselftest:
needs: [linux-seco-imx8mm-c61-2gb-gcc]
stage: test
extends: .lava-test-scheduled
variables:
MACHINE: seco-imx8mm-c61-2gb
BOARD_RAM_SIZE: 2gb
CI_BUILD_JOB_NAME: linux-seco-imx8mm-c61-2gb-gcc
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/seco-c61-kselftest.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-zephyr-96b-nitrogen-twister:
needs: [zephyr-96b-nitrogen-twister-gcc]
stage: test
......@@ -390,16 +426,28 @@ lava-seco-intel-b68-perf:
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/seco-intel-b68-perf.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-seco-c61-perf:
lava-seco-c61-4gb-perf:
needs: [linux-seco-imx8mm-c61-4gb-gcc]
stage: test
extends: .lava-test-scheduled
variables:
MACHINE: seco-imx8mm-c61-4gb
BOARD_RAM_SIZE: 4gb
CI_BUILD_JOB_NAME: linux-seco-imx8mm-c61-4gb-gcc
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/seco-c61-perf.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-seco-c61-2gb-perf:
needs: [linux-seco-imx8mm-c61-2gb-gcc]
stage: test
extends: .lava-test-scheduled
variables:
MACHINE: seco-imx8mm-c61-2gb
BOARD_RAM_SIZE: 2gb
CI_BUILD_JOB_NAME: linux-seco-imx8mm-c61-2gb-gcc
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/seco-c61-perf.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-zephyr-qemu-cortex-m3:
needs: [zephyr-qemu-cortex-m3-gcc]
stage: test
......@@ -420,6 +468,26 @@ lava-zephyr-qemu-x86:
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/qemu-zephyr-x86.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-qemu-x86-sysota:
needs: [bundle-qemu-x86]
stage: test
extends: .lava-test
variables:
MACHINE: qemux86
CI_BUILD_JOB_NAME: linux-qemu-x86
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/qemu-x86-sysota.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-qemu-x86_64-sysota:
needs: [bundle-qemu-x86_64]
stage: test
extends: .lava-test
variables:
MACHINE: qemux86-64
CI_BUILD_JOB_NAME: linux-qemu-x86_64
CI_LAVA_JOB_DEFINITION: "https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-config/-/raw/master/lava.ostc-eu.org/job-definitions/ci/qemu-x86_64-sysota.yaml"
CI_REPORT_JOB_NAME: lava-report
lava-report:
extends: .lava-report
needs:
......@@ -529,3 +597,92 @@ build-npm-cspell:
extends: .build-with-kaniko
variables:
CONTAINER_PATH: npm-cspell
.oe-selftest-rules:
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $OE_SELFTEST == "gcc"
oe-selftest-gcc-qemu-linux-user:
extends: [.oe-selftest, .oe-selftest-rules]
variables:
# Set the variable to 'gcc' will run all tests defined in the gcc.py file.
# https://github.com/openembedded/openembedded-core/blob/master/meta/lib/oeqa/selftest/cases/gcc.py#L79
CI_ONIRO_OE_SELFTESTS:
gcc.GccCrossSelfTest
gcc.GccLibAtomicSelfTest
gcc.GccLibGompSelfTest
gcc.GccLibItmSelfTest
gcc.GccLibSspSelfTest
gcc.GccLibStdCxxSelfTest
gcc.GxxCrossSelfTest
.oe-selftest-gcc-system-emulated:
timeout: 8h
extends: [.oe-selftest, .oe-selftest-rules]
variables:
MACHINE: qemux86-64
CI_ONIRO_OE_SELFTESTS:
gcc.GccCrossSelfTestSystemEmulated
gcc.GccLibAtomicSelfTestSystemEmulated
gcc.GccLibGompSelfTestSystemEmulated
gcc.GccLibItmSelfTestSystemEmulated
gcc.GccLibStdCxxSelfTestSystemEmulated
gcc.GccLibSspSelfTestSystemEmulated
gcc.GxxCrossSelfTestSystemEmulated
oe-selftest-gcc-system-emulated-qemux86-64:
extends: .oe-selftest-gcc-system-emulated
variables:
MACHINE: qemux86-64
oe-selftest-gcc-system-emulated-qemuarm64:
extends: .oe-selftest-gcc-system-emulated
variables:
MACHINE: qemuarm64
oe-selftest-report:
timeout: 6h
extends: .oe-selftest-rules
image:
name: registry.ostc-eu.org/ostc/oniro/bitbake-builder:latest
stage: report
dependencies:
- oe-selftest-gcc-qemu-linux-user
- oe-selftest-gcc-system-emulated-qemux86-64
- oe-selftest-gcc-system-emulated-qemuarm64
needs:
- oe-selftest-gcc-qemu-linux-user
- oe-selftest-gcc-system-emulated-qemux86-64
- oe-selftest-gcc-system-emulated-qemuarm64
script:
- |
set -x
curl https://git.ostc-eu.org/OSTC/infrastructure/lava/lava-test-definitions/-/raw/gcc-test/automated/utils/gcc-result-parser.py \
> gcc-result-parser.py
for job_path in $(find artifacts/ -type d -name oe-selftest-gcc*); do
(
job=$(basename $job_path)
test_env="$(echo $job | cut -d'-' -f4-)"
cd $job_path
xz -d *.xz
# Parse sum file.
for sum_file in $(ls *.sum); do
python3 $CI_PROJECT_DIR/gcc-result-parser.py $sum_file
done
# Upload result to squad.
for result_file in $(ls result_*.json); do
component="$(basename $result_file .json | cut -d'_' -f2-)"
job_id="$job-$component"
time curl \
--header "Auth-Token: $CI_SQUAD_TOKEN" \
https://squadp.svc.ostc-eu.dev/api/submit/oniro-core/gcc-test/$CI_PIPELINE_ID/$test_env \
--form tests=@$result_file \
--form metadata='{"job_id": "'$job_id'"}'
done
)
done
set +x
artifacts:
paths:
- artifacts/oe-selftest-gcc*/*.json
- artifacts/oe-selftest-gcc*/*.txt
......@@ -35,8 +35,8 @@
echo "CI_ONIRO_MANIFEST_URL: $CI_ONIRO_MANIFEST_URL"
echo "CI_ONIRO_MANIFEST_NAME: $CI_ONIRO_MANIFEST_NAME"
echo "CI_ONIRO_MANIFEST_BRANCH: $CI_ONIRO_MANIFEST_BRANCH"
repo init --reference \
"$CI_ONIRO_RUNNER_PERSISTENT_STORAGE"/pub/git-repo-mirrors/"$CI_ONIRO_MANIFEST_MIRROR" \
repo init \
$(test -n "${CI_ONIRO_RUNNER_PERSISTENT_STORAGE:-}" && echo --reference "$CI_ONIRO_RUNNER_PERSISTENT_STORAGE"/pub/git-repo-mirrors/"$CI_ONIRO_MANIFEST_MIRROR") \
--manifest-url "$CI_ONIRO_MANIFEST_URL" \
--manifest-name "$CI_ONIRO_MANIFEST_NAME" \
--manifest-branch "$CI_ONIRO_MANIFEST_BRANCH"
......@@ -162,6 +162,17 @@
| sed -e 's/^CI_ONIRO_BB_LOCAL_CONF_plus_equals_//g' -e 's/"/\\"/g' -e 's/=/ += "/g' -e 's/$/"/g' \
| sort \
| tee -a conf/local.conf )
# Variables in the form of '^CI_ONIRO_BB_BBLAYERS_CONF_plus_equals_attr' are
# converted to 'attr += "value"' and appended to bblayers.conf
# this is useful if layer has to be added but bitbake add-layer command cannot be used
# (for example this layer's class is inherited via local.conf already)
- |
( set +o pipefail;
env \
| grep -E '^CI_ONIRO_BB_BBLAYERS_CONF_plus_equals_[A-Z_0-9]+=' \
| sed -e 's/^CI_ONIRO_BB_BBLAYERS_CONF_plus_equals_//g' -e 's/"/\\"/g' -e 's/=/ += "/g' -e 's/$/"/g' \
| sort \
| tee -a conf/bblayers.conf )
# Sanity check: disallow using public build cache with a specific setting
# in local.conf. The list of settings may grow over time.
......@@ -254,27 +265,33 @@
# subdirectories.
- mkdir -p "$CI_PROJECT_DIR"/artifacts
- rm -rf "$CI_PROJECT_DIR"/artifacts/*
# The name of the build-specific tmp directory may vary. Ask bitbake
# instead of hard-coding it. This is currently only relevant for Zephyr,
# which uses tmp-newlib.
- eval "$(bitbake -e | grep ^TMPDIR= | sed -e 's/^TMPDIR/BITBAKE_TMPDIR/g')"
# The name of the build-specific deploy dir may vary. Ask bitbake instead
# of hard-coding it.
- eval "$(bitbake -e | grep ^DEPLOY_DIR= | sed -e 's/^DEPLOY_DIR/BITBAKE_DEPLOY_DIR/g')"
# Top level of bitbake working directory.
# The name is build specific ask bitbake instead of hard-coding.
- eval "$(bitbake -e | grep ^TOPDIR= | sed -e 's/^TOPDIR/BITBAKE_TOPDIR/g')"
# Uncompressed wic image is not needed in CI. We cannot remove it from
# meta-oniro-core/classes/oniro-image.bbclass as runqemu needs it for local
# build and boot.
- find "$BITBAKE_TMPDIR"/deploy/images/ -name *.wic -exec rm -rf {} \;
- cp -a "$BITBAKE_TMPDIR"/deploy/licenses/ "$CI_PROJECT_DIR"/artifacts || true
- find "$BITBAKE_DEPLOY_DIR"/images/ -name *.wic -exec rm -rf {} \;
- cp -a "$BITBAKE_DEPLOY_DIR"/licenses/ "$CI_PROJECT_DIR"/artifacts || true
# Only copy the files defined in the CI_ONIRO_JOB_ARTIFACTS variable. Most
# of the remaining files are redundant and quite large.
- |
set -x
if test -n "$CI_ONIRO_JOB_ARTIFACTS" && test -d "$BITBAKE_TMPDIR"/deploy/; then
if test -n "$CI_ONIRO_JOB_ARTIFACTS" && test -d "$BITBAKE_DEPLOY_DIR"; then
(
cd "$BITBAKE_TMPDIR"/deploy/
cd "$BITBAKE_DEPLOY_DIR"
for artifact in $CI_ONIRO_JOB_ARTIFACTS; do
find ./ \( -type f -o -type l \) -name "$artifact" -exec cp --verbose --archive --parents {} "$CI_PROJECT_DIR"/artifacts \;
done
)
fi
# Compress and copy artifacts of do_abicheck task (if any)
if test -n "$CI_ONIRO_ABICHECK_TOPDIR" && test -d "$BITBAKE_TOPDIR"/"$CI_ONIRO_ABICHECK_TOPDIR"; then
tar -cJf "$CI_PROJECT_DIR"/artifacts/abicheck-"$CI_COMMIT_SHA"-"$CI_JOB_NAME".tar.xz "$BITBAKE_TOPDIR"/"$CI_ONIRO_ABICHECK_TOPDIR"/*/*/binaryaudit
fi
set +x
artifacts:
paths:
......@@ -399,6 +416,14 @@
.build:
extends: .build-recipe
.check-abi:
variables:
CI_ONIRO_BB_LOCAL_CONF_plus_equals_INHERIT: abicheck
CI_ONIRO_BB_LOCAL_CONF_BINARY_AUDIT_WARN_ONLY: "1"
CI_ONIRO_MANIFEST_NAME: manifests/ci.xml
CI_ONIRO_BB_BBLAYERS_CONF_plus_equals_BBLAYERS: "../meta-binaryaudit"
CI_ONIRO_ABICHECK_TOPDIR: "./buildhistory/packages"
# This job is documented in docs/ci/hidden-jobs/build-docs.rst
.build-docs:
interruptible: true
......@@ -443,3 +468,43 @@
# Run this job in case the pipeline changes.
- .oniro-ci/*.yml
- .gitlab-ci.yml
# This job is documented in docs/ci/hidden-jobs/oe-selftest.rst
.oe-selftest:
image:
name: registry.ostc-eu.org/ostc/oniro/bitbake-builder:latest
tags: [qemu-friendly, large-disk, $CI_ONIRO_RUNNER_TAG, $CI_ONIRO_INSTANCE_SIZE]
stage: test
dependencies: []
extends: .bitbake-workspace
variables:
MACHINE: qemux86-64
CI_ONIRO_BUILD_FLAVOUR: linux
CI_ONIRO_BB_LOCAL_CONF_SANITY_TESTED_DISTROS: ""
CI_ONIRO_BB_LOCAL_CONF_TOOLCHAIN: "gcc"
CI_ONIRO_BB_LOCAL_CONF_RUNTIME: "gnu"
CI_ONIRO_OE_SELFTESTS: ""
CI_ONIRO_OE_SEFLTEST_SKIPS: ""
# The USER variable is required by oe-selftest but missing in env.
USER: "builder"
ARTIFACTS_DIR: "$CI_PROJECT_DIR/artifacts/$CI_JOB_NAME"
script:
- test -n "$CI_ONIRO_OE_SELFTESTS" || (
echo "nothing to test - CI_ONIRO_OE_SELFTESTS is empty"
&& exit 1 )
- !reference [.bitbake-workspace, script]
# oe-selftest inherits the current 'build/conf/local.conf' to create
# '../build-st/conf/local.conf' for qemu image building. Adding the
# MACHINE variable to the current local conf allows test job to customize
# the qemu image arch for testing.
- echo "MACHINE = \"$MACHINE\"" >> conf/local.conf
- echo "Running specific tests $CI_ONIRO_OE_SELFTESTS ..."
- time oe-selftest -vvv -r $CI_ONIRO_OE_SELFTESTS -K
- rm -rf "$ARTIFACTS_DIR" & mkdir -p "$ARTIFACTS_DIR"
- find ../build-st \( -name "*.sum" -o -name "*.log" \) \( -path "*/gcc-runtime/*testsuite*" \)
-exec cp --verbose {} "$ARTIFACTS_DIR" \;
- for file in $(find "$ARTIFACTS_DIR" -type f); do xz $file; done
- rm -rf ../build-st
artifacts:
paths:
- $ARTIFACTS_DIR
......@@ -2,5 +2,5 @@
# SPDX-License-Identifier: Apache-2.0
[user]
name = Oniro Project CI
email = oniro-dev@eclipse.org
name = Oniro Core Project Bot
email = oniro-core-bot@eclipse.org
......@@ -26,8 +26,8 @@ RUN apt-get update -qq \
bash git-repo git-lfs apt-utils build-essential chrpath cpio diffstat \
gawk git sudo wget language-pack-en-base time locales python-is-python3 \
python3-distutils python3-pip libssl-dev iproute2 iputils-ping curl jq \
lz4 zstd \
&& eatmydata apt-get install -qq -y 'ca-certificates=20210119~20.04.2' \
lz4 zstd iptables\
&& eatmydata apt-get install -qq -y 'ca-certificates=20211016~20.04.1' \
&& eatmydata apt-get clean && rm -rf /var/lib/apt/lists/*
RUN locale-gen
RUN pip3 install anybadge
......@@ -36,7 +36,12 @@ RUN pip3 install anybadge
RUN echo "dash dash/sh boolean false" | debconf-set-selections \
&& DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash
RUN useradd --create-home --uid 1000 --shell /usr/bin/bash builder
# runqemu command needs sudo permission to create tun device for the
# communication between host and vm for gcc testing.
RUN useradd --create-home --uid 1000 --shell /usr/bin/bash builder \
&& usermod -aG sudo builder\
&& echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
COPY --chown=builder:builder .gitconfig /home/builder/.gitconfig
USER builder
WORKDIR /home/builder
# SPDX-FileCopyrightText: 2021 Huawei Inc.
#
# SPDX-License-Identifier: Apache-2.0
[user]
name = Oniro Project CI
email = oniro-dev@eclipse.org
name = Oniro Core Project Bot
email = oniro-core-bot@eclipse.org
# SPDX-FileCopyrightText: Huawei Inc.
# SPDX-License-Identifier: Apache-2.0
FROM ubuntu:21.10
FROM ubuntu:20.04
COPY --chown=root:root ppa/zyga-ubuntu-oh-tools-impish.list /etc/apt/sources.list.d/
COPY --chown=root:root ppa/zyga-ubuntu-oh-tools-focal.list /etc/apt/sources.list.d/
COPY --chown=root:root ppa/zyga-ubuntu-oh-tools.gpg /etc/apt/trusted.gpg.d/
ARG DEBIAN_FRONTEND="noninteractive"
......@@ -11,7 +11,12 @@ RUN apt-get update -qq \
&& apt-get install -y eatmydata \
&& eatmydata apt-get install -qq -y \
git-repo git git-lfs \
python3-sphinx python3-sphinx-rtd-theme python3-recommonmark python3-sphinx-tabs \
python3-pip python3-sphinx python3-sphinx-rtd-theme python3-recommonmark \
python3-sphinxcontrib.plantuml \
&& eatmydata apt-get install -qq -y 'ca-certificates=20210119ubuntu1' \
&& eatmydata apt-get install -qq -y 'ca-certificates=20211016~20.04.1' \
&& eatmydata apt-get clean && rm -rf /var/lib/apt/lists/*
# We need to fix the version here to avoid pulling docutils 0.18 which is
# incompatible with the sphinx version from Ubuntu focal. See more here:
# https://github.com/sphinx-doc/sphinx/issues/9841
RUN pip3 install sphinx-tabs==3.4.0
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: 2020 Huawei Inc.
deb http://ppa.launchpad.net/zyga/oh-tools/ubuntu/ impish main
# deb-src http://ppa.launchpad.net/zyga/oh-tools/ubuntu/ impish main
deb http://ppa.launchpad.net/zyga/oh-tools/ubuntu/ focal main
# deb-src http://ppa.launchpad.net/zyga/oh-tools/ubuntu/ focal main
# SPDX-FileCopyrightText: 2021 Huawei Inc.
# SPDX-License-Identifier: Apache-2.0
[user]
name = Oniro Project CI
email = oniro-dev@eclipse.org
FROM ubuntu:20.04
ARG DEBIAN_FRONTEND="noninteractive"
RUN sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
RUN apt-get update -qq \
&& apt-get install -y software-properties-common \
&& add-apt-repository -y ppa:hardware-certification/public \
&& apt-get install -y checkbox-ng plainbox-provider-resource-generic plainbox-provider-certification-client plainbox-provider-checkbox canonical-certification-client jq
......@@ -32,7 +32,7 @@
allow_failure: true
.linux-qemu-x86:
extends: .build-wic-image
extends: [.build-wic-image, .check-abi]
variables:
MACHINE: qemux86
CI_ONIRO_BUILD_FLAVOUR: linux
......@@ -51,7 +51,7 @@ linux-qemu-x86-clang:
extends: [.linux-qemu-x86, .toolchain-clang]
.linux-qemu-x86_64:
extends: .build-wic-image
extends: [.build-wic-image, .check-abi]
variables:
MACHINE: qemux86-64
CI_ONIRO_BUILD_FLAVOUR: linux
......@@ -88,12 +88,15 @@ linux-seco-intel-b68-extra-clang:
extends: [.linux-seco-intel-b68-extra, .toolchain-clang]
.linux-seco-imx8mm-c61-2gb:
extends: .build-linux-matrix
extends: .build-wic-image
variables:
CI_ONIRO_BUILD_FLAVOUR: linux
CI_ONIRO_RECIPE_NAME: oniro-image-base-tests
MACHINE: seco-imx8mm-c61-2gb
# This platform requires proprietary resources to boot.
# See build-generic.yaml for explanation of CI_ONIRO_BB_LOCAL_CONF_ variables.
CI_ONIRO_BB_LOCAL_CONF_ACCEPT_FSL_EULA: 1
CI_ONIRO_JOB_ARTIFACTS: "*.wic.* *.bmap flash.bin-seco-imx8mm-c61-2gb*"
linux-seco-imx8mm-c61-2gb-gcc:
extends: [.linux-seco-imx8mm-c61-2gb, .toolchain-gcc]
linux-seco-imx8mm-c61-2gb-clang:
......@@ -108,7 +111,7 @@ linux-seco-imx8mm-c61-2gb-clang:
# This platform requires proprietary resources to boot.
# See build-generic.yaml for explanation of CI_ONIRO_BB_LOCAL_CONF_ variables.
CI_ONIRO_BB_LOCAL_CONF_ACCEPT_FSL_EULA: 1
CI_ONIRO_JOB_ARTIFACTS: "*.wic.* *.bmap flash.bin-seco-imx8mm-c61*"
CI_ONIRO_JOB_ARTIFACTS: "*.wic.* *.bmap flash.bin-seco-imx8mm-c61-4gb*"
linux-seco-imx8mm-c61-4gb-gcc:
extends: [.linux-seco-imx8mm-c61-4gb, .toolchain-gcc]
linux-seco-imx8mm-c61-4gb-clang:
......@@ -129,7 +132,7 @@ linux-seco-imx8mm-c61-4gb-extra-clang:
extends: [.linux-seco-imx8mm-c61-4gb-extra, .toolchain-clang, .broken]
.linux-raspberrypi4-64:
extends: .build-wic-image
extends: [.build-wic-image, .check-abi]
variables:
MACHINE: raspberrypi4-64
CI_ONIRO_BUILD_FLAVOUR: linux
......
......@@ -47,7 +47,7 @@ After successful bootup, you will be dropped into a login shell:
qemux86-64 login:
Default login is *root* without a password.
The default login name is **oniro** with **oniro** as a password.
After login you will see the shell prompt:
......
......@@ -29,3 +29,4 @@ implementation details.
lava-report
aggregate-docs
publish-rauc-bundle-to-hawkbit
oe-selftest
.. SPDX-FileCopyrightText: Huawei Inc.
..
.. SPDX-License-Identifier: CC-BY-4.0
============
.oe-selftest
============
The ``.oe-selftest`` job extends the :doc:`bitbake-workspace` job to configure
OpenEmbedded Self test environment. The job does not run any tests by itself,
actual tests should be run in the downstream test jobs.
Job Variables
=============
Oe-selftest is based on Python unitest. Tests are organized by module, class
and method. The ``.oe-selftest`` job defines two variables as a way to
customize what tests to run.
CI_ONIRO_OE_SELFTESTS
---------------------
The specific tests to run. The default value is empty. The order the tests are
running is alphabetical.
CI_ONIRO_OE_SEFLTEST_SKIPS
--------------------------
The specific tests to skip. The default value is empty.
.. SPDX-FileCopyrightText: Huawei Inc.
..
.. SPDX-License-Identifier: CC-BY-4.0
.. include:: definitions.rst
.. _DebugMode:
Debug Mode
##########
In some situations, you may want to compile an image with some additional tools
and features for easier debugging. For this reason, |main_project_name|
offers the debug mode.
Images built with the `debug mode` enabled contain additional tools and allow
to log in as root (which is disabled in the default images).
To enable the `debug mode`, edit your ``local.conf`` and add:
.. code-block:: console
INHERIT += "oniro-debug-linux"
For convenience, the section is already present commented-out in the template
and you may uncoment it.
When done, rebuild your image as usual. To go back to the production mode,
comment the line out again and rebuild your image.
.. Note::
Debug mode images are unsupported by the project and do not take part
of the release. They are provided for convenience only.
......@@ -74,6 +74,12 @@ sample application, *blinky*. In order to do so issue the following:
3. After the build completes, the ``zephyr-philosophers.bin`` and the ``zephyr-blinky.bin``
file can be found in ``build-oniro-zephyr/tmp-newlib/deploy/images/arduino-nano-33-ble/``.
.. note::
By default, both zephyr-blinky and zephyr-philosophers applications will start once the board
is powered on without waiting for a serial console connection.
To start an application only when serial console is connected, specify ONIRO_ENABLE_ACM0 = "1".
This option may be useful in automated testing environment.
Flashing an Application
=======================
......
......@@ -84,7 +84,7 @@ Linux image
can be found in
``build-oniro-linux-raspberrypi4-64/tmp/deploy/images/$MACHINE/``.
The key file which is needed to flash into the SD card is
``oniro-image-base-raspberrypi4-64.wic.bz2``.
``oniro-image-base-raspberrypi4-64.wic.gz``.
Flashing |main_project_name| Linux image
****************************************
......@@ -104,7 +104,7 @@ describes booting the board with an SD card option.
.. code-block:: console
$ cd tmp/deploy/images/raspberrypi4-64
$ bmaptool copy oniro-image-base-raspberrypi4-64.wic.bz2 $DEVNODE
$ bmaptool copy oniro-image-base-raspberrypi4-64.wic.gz $DEVNODE
2. Put the card to the board and turn it on.
......
......@@ -86,7 +86,7 @@ steps:
.. code-block:: console
$ cd tmp/deploy/images/seco-intel-b68
$ bmaptool copy oniro-image-base-seco-intel-b68.wic.bz2 $DEVNODE
$ bmaptool copy oniro-image-base-seco-intel-b68.wic.gz $DEVNODE
3. Put the card to the board and turn it on.
......
......@@ -40,4 +40,5 @@ Build System Guide
:caption: Troubleshoot
:maxdepth: 2
fallback-devices-support
fallback-devices-support
debug-mode
......@@ -57,8 +57,8 @@ Initialize a repo workspace and clone all required repositories:
.. _Building an Oniro image:
Building an Oniro image
***********************
Building and Running an Oniro image
***********************************
The following steps will build a ``oniro-image-base``. The process will
build all its components, including the toolchain, from source.
......@@ -72,21 +72,44 @@ cloned using the repo tool. See above.
could use around 100GB of disk space for downloads, temporary files, and
build artifacts combined.
Initialize the build directory and run a build:
Initialize the build directory:
.. code-block:: console
$ TEMPLATECONF=../oniro/flavours/linux . ./oe-core/oe-init-build-env build-oniro-linux
Now that the build is initialized, you have the choice of building a standard
Oniro image or an OpenHarmony compatible one.
A. Standard Oniro image
-----------------------
As the build directory is now initialized, you can proceed to running the build
process:
.. code-block:: console
$ MACHINE=qemux86-64 bitbake oniro-image-base
Once the image is built, you can run a Qemu instance using the provided
script wrapper as follows:
.. code-block:: console
$ MACHINE=qemux86-64 runqemu oniro-image-base wic ovmf slirp
If the host has a VT-capable CPU, you can pass the ``kvm`` argument for better
performance. Check ``runqemu``'s help message for all available arguments.
.. _Building with OpenHarmony:
Building with OpenHarmony compatibility
***************************************
B. Building with OpenHarmony compatibility
------------------------------------------
To enable OpenHarmony compatibility, before running the last `bitbake` command
in the section above, you have to add the following to
`build-oniro-linux/conf/local.conf` file:
To enable OpenHarmony compatibility features, you need to tweak the
`local.conf` file before running the build process. You will find this
configuration in `build-oniro-linux/conf/local.conf` where you'll need to add
the following:
.. code-block:: sh
......@@ -98,17 +121,25 @@ in the section above, you have to add the following to
This will enable OpenHarmony features and add OpenHarmony Standard System
features to the `oniro-image-base` image.
With that in place, the image can be built with the instructions in the
:ref:`Building an Oniro image <Building an Oniro image>` section above.
As the build directory is now initialized, you can proceed to run the build
process:
Booting a Qemu X86-64 Target with a |main_project_name| image
*************************************************************
.. code-block:: console
$ MACHINE=qemuarm bitbake oniro-image-base
Once the image is built, you can run a Qemu X86-64 instance using the provided script wrapper as follows:
Once the image is built, you can run a Qemu instance using the provided
script wrapper as follows:
.. code-block:: console
$ MACHINE=qemux86-64 runqemu oniro-image-base wic ovmf slirp
$ MACHINE=qemuarm runqemu oniro-image-base serialstdio nographic slirp
If the host has a VT-capable CPU, you can pass the ``kvm`` argument for better
performance. Check ``runqemu``'s help message for all available arguments.
Runtime Login
*************
Once the target has booted, a login shell will prompt for a user/password
combination. By default, the OS uses the following:
- user name: **oniro**
- password: **oniro**
......@@ -4,7 +4,7 @@
.. include:: definitions.rst
Supported images
Supported Images
################
To create a custom Linux distribution to match the product requirements,
......