0 Star 1 Fork 2

fanxin/AutowareAuto

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
.gitlab-ci.yml 11.68 KB
一键复制 编辑 原始数据 按行查看 历史
stages:
- .pre
- ade
- build
- test
- deploy
.ade_base: &ade_base
stage: ade
image: docker
services:
- docker:dind
script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- apk add --update-cache git
- mv ros-deps tools/ade_image
- cp autoware.auto.foxy.repos tools/ade_image
- cd tools/ade_image
- export ADE_SHA=$(find . -type f | sort | xargs sha256sum | sha256sum | rev | cut -c 4- | rev)
- '
if [[ -n "$FORCE" ]]; then
chmod og-w . -R;
docker build
--build-arg ROS_DISTRO=${ROS_DISTRO}
--build-arg CODENAME=${UBUNTU_DISTRO}
--label ade_image_commit_sha="$CI_COMMIT_SHA"
--label ade_image_commit_tag="$CI_COMMIT_TAG"
-t image .;
else
(
docker pull $CI_REGISTRY_IMAGE/$ARCH/ade-$ROS_DISTRO:change-$ADE_SHA &&
docker tag $CI_REGISTRY_IMAGE/$ARCH/ade-$ROS_DISTRO:change-$ADE_SHA image
) || (
chmod og-w . -R;
docker build
--build-arg ROS_DISTRO=${ROS_DISTRO}
--build-arg CODENAME=${UBUNTU_DISTRO}
--label ade_image_commit_sha="$CI_COMMIT_SHA"
--label ade_image_commit_tag="$CI_COMMIT_TAG"
-t image .;
);
fi
'
- docker tag image $CI_REGISTRY_IMAGE/$ARCH/ade-$ROS_DISTRO:change-$ADE_SHA
- docker tag image $CI_REGISTRY_IMAGE/$ARCH/ade-$ROS_DISTRO:commit-$CI_COMMIT_SHA
- docker tag image $CI_REGISTRY_IMAGE/$ARCH/ade-$ROS_DISTRO:$CI_COMMIT_REF_NAME
- docker push $CI_REGISTRY_IMAGE/$ARCH/ade-$ROS_DISTRO:change-$ADE_SHA
- docker push $CI_REGISTRY_IMAGE/$ARCH/ade-$ROS_DISTRO:commit-$CI_COMMIT_SHA
- docker push $CI_REGISTRY_IMAGE/$ARCH/ade-$ROS_DISTRO:$CI_COMMIT_REF_NAME
after_script:
- docker container rm -f $(docker container ls --filter "status=exited" -q)
- docker image rm $(docker image ls -q)
.build_barebones_base: &build_barebones_base
stage: build
script:
- 'apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends
gnupg
keyboard-configuration
tzdata
'
- 'apt-get update && apt-get -y --no-install-recommends install
ca-certificates
curl
gnupg2
lsb-release
sudo
'
- 'curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add -'
- 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" | tee /etc/apt/sources.list.d/ros2-latest.list'
- 'apt-get update && apt-get -y --no-install-recommends install
build-essential
clang-tidy
cmake
git
python3-colcon-common-extensions
python3-rosdep
python3-vcstool
ros-$ROS_DISTRO-cyclonedds
ros-$ROS_DISTRO-rmw-cyclonedds-cpp
'
- 'source /opt/ros/$ROS_DISTRO/setup.bash'
- 'vcs import < autoware.auto.$ROS_DISTRO.repos'
# Temporary work-around for acado_vendor
- 'rm -rf src/external/acado_vendor'
- 'curl -L -o ros-foxy-acado-vendor_1.0.0-0focal_$ARCH.deb https://gitlab.com/autowarefoundation/autoware.auto/acado_vendor/-/jobs/artifacts/main/raw/ros-foxy-acado-vendor_1.0.0-0focal_$ARCH.deb?job=build_debian_$ARCH'
- 'dpkg -i ros-foxy-acado-vendor*.deb'
- 'rm ros-foxy-acado-vendor*.deb'
# End temporary work-around for acado_vendor
- 'rosdep init && rosdep update'
- 'rosdep install -y --from . --ignore-src --rosdistro $ROS_DISTRO'
- 'source /opt/ros/$ROS_DISTRO/setup.bash'
- 'colcon build
--merge-install
--install-base /opt/AutowareAuto
'
.build_base: &build_base
stage: build
image: $CI_REGISTRY_IMAGE/$ARCH/ade-$ROS_DISTRO:commit-$CI_COMMIT_SHA
script:
- 'apt-get update && apt-get -y --no-install-recommends install
clang-tidy
git
git-lfs
'
- 'git lfs install'
- 'git lfs pull --include="*" --exclude=""'
- 'vcs import < autoware.auto.$ROS_DISTRO.repos'
# Temporary work-around for acado_vendor
- 'rm -rf src/external/acado_vendor'
- 'curl -L -o ros-foxy-acado-vendor_1.0.0-0focal_${ARCH}.deb https://gitlab.com/autowarefoundation/autoware.auto/acado_vendor/-/jobs/artifacts/main/raw/ros-foxy-acado-vendor_1.0.0-0focal_${ARCH}.deb?job=build_debian_${ARCH}'
- 'dpkg -i ros-foxy-acado-vendor*.deb'
- 'rm ros-foxy-acado-vendor*.deb'
# End temporary work-around for acado_vendor
# build and test
- 'colcon build
--merge-install
--install-base /opt/AutowareAuto
--cmake-args -DCMAKE_BUILD_TYPE=Release
'
- chmod -R og-w /opt/AutowareAuto
- tar czf opt.tar.gz /opt/AutowareAuto
- grep -h -r -o -P "(?<=\<name\>).*(?=\<\/name\>)" $(find src/external -name package.xml) | sort >> external_deps.txt
artifacts:
name: "$CI_JOB_NAME"
paths:
- build/
- external_deps.txt
- opt.tar.gz
.gen_deps_base: &gen_deps_base
stage: .pre
script:
- apt-get update && apt-get install python3-vcstool
- vcs import < autoware.auto.$ROS_DISTRO.repos
- rosdep update
- rosdep install --as-root "apt:false pip:false" --simulate --reinstall --ignore-src -y --from-paths src | sort >> ros-deps
artifacts:
name: "$CI_JOB_NAME"
paths:
- ros-deps
.test_base: &test_base
stage: test
image: $CI_REGISTRY_IMAGE/$ARCH/ade-$ROS_DISTRO:commit-$CI_COMMIT_SHA
script:
- tar xzf opt.tar.gz -C /
- rm opt.tar.gz
- source /opt/AutowareAuto/setup.bash
- 'colcon test
--merge-install
--install-base /opt/AutowareAuto
--packages-skip $(cat external_deps.txt)
--return-code-on-test-failure
'
- 'colcon test-result --all |grep xml |cut -d":" -f1 |xargs .gitlab-ci/merge-test-results test-results.xml || true'
# Test package
- 'ros2 run autoware_auto_create_pkg main.py
--pkg-name my_cool_pkg
--destination /tmp/tmp_ws/src
--description "My cool package does cool stuff"
--maintainer "Jane Doe"
--email "jane.doe@awesome-company.com"
'
- cd /tmp/tmp_ws
- colcon build --packages-select my_cool_pkg
- colcon test --packages-select my_cool_pkg
- cd -
# prepare volume artifact
- mkdir /opt/AutowareAuto/src
- '(cd src && git archive --format=tar HEAD | (cd /opt/AutowareAuto/src && tar xf -))'
- cp -a LICENSE /opt/AutowareAuto
- chmod -R og-w /opt/AutowareAuto
- tar cfz opt.tar.gz /opt/AutowareAuto
after_script:
- colcon test-result --verbose
artifacts:
name: "$CI_JOB_NAME"
paths:
- log
- opt.tar.gz
reports:
junit: test-results.xml
.volume_base: &volume_base
stage: deploy
image: docker
services:
- docker:dind
script:
- 'echo -e "*\n!opt.tar.gz" > .dockerignore'
- |
cat >Dockerfile <<EOF
FROM alpine
ADD opt.tar.gz /
VOLUME /opt/AutowareAuto
CMD ["/bin/sh", "-c", "trap 'exit 147' TERM; tail -f /dev/null & wait ${!}"]
EOF
- 'docker build
--build-arg ROS_DISTRO=${ROS_DISTRO}
--build-arg CODENAME=${UBUNTU_DISTRO}
--label ade_image_commit_sha="$CI_COMMIT_SHA"
--label ade_image_commit_tag="$CI_COMMIT_TAG"
-t image .
'
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker tag image $CI_REGISTRY_IMAGE/$ARCH/binary-$ROS_DISTRO:commit-$CI_COMMIT_SHA
- docker tag image $CI_REGISTRY_IMAGE/$ARCH/binary-$ROS_DISTRO:$CI_COMMIT_REF_NAME
- docker push $CI_REGISTRY_IMAGE/$ARCH/binary-$ROS_DISTRO:commit-$CI_COMMIT_SHA
- docker push $CI_REGISTRY_IMAGE/$ARCH/binary-$ROS_DISTRO:$CI_COMMIT_REF_NAME
after_script:
- docker container rm -f $(docker container ls --filter "status=exited" -q)
- docker image rm $(docker image ls -q)
gen_ros_deps_foxy:
image: ros:foxy
<<: *gen_deps_base
ade_amd64_foxy:
variables:
ARCH: amd64
DOCKER_DRIVER: overlay2
ROS_DISTRO: foxy
UBUNTU_DISTRO: focal
<<: *ade_base
needs:
- gen_ros_deps_foxy
ade_arm64_foxy:
variables:
ARCH: arm64
DOCKER_DRIVER: overlay2
ROS_DISTRO: foxy
UBUNTU_DISTRO: focal
tags:
- arm64
<<: *ade_base
needs:
- gen_ros_deps_foxy
only:
- branches@autowarefoundation/autoware.auto/AutowareAuto
build_barebones_amd64_foxy:
image: ubuntu:focal
variables:
ARCH: amd64
RMW_IMPLEMENTATION: rmw_fastrtps_cpp
ROS_DISTRO: foxy
<<: *build_barebones_base
needs:
- gen_ros_deps_foxy
build_barebones_arm64_foxy:
image: ubuntu:focal
tags:
- arm64
variables:
ARCH: arm64
RMW_IMPLEMENTATION: rmw_fastrtps_cpp
ROS_DISTRO: foxy
<<: *build_barebones_base
needs:
- gen_ros_deps_foxy
only:
- branches@autowarefoundation/autoware.auto/AutowareAuto
build_amd64_foxy:
variables:
ARCH: amd64
RMW_IMPLEMENTATION: rmw_cyclonedds_cpp
ROS_DISTRO: foxy
<<: *build_base
needs:
- job: ade_amd64_foxy
build_arm64_foxy:
variables:
ARCH: arm64
RMW_IMPLEMENTATION: rmw_cyclonedds_cpp
ROS_DISTRO: foxy
tags:
- arm64
<<: *build_base
only:
- branches@autowarefoundation/autoware.auto/AutowareAuto
needs:
- job: ade_arm64_foxy
test_amd64_foxy:
variables:
ARCH: amd64
RMW_IMPLEMENTATION: rmw_cyclonedds_cpp
ROS_DISTRO: foxy
<<: *test_base
needs:
- build_amd64_foxy
test_arm64_foxy:
variables:
ARCH: arm64
RMW_IMPLEMENTATION: rmw_cyclonedds_cpp
ROS_DISTRO: foxy
tags:
- arm64
<<: *test_base
only:
- branches@autowarefoundation/autoware.auto/AutowareAuto
needs:
- build_arm64_foxy
coverage:
stage: test
image: $CI_REGISTRY_IMAGE/amd64/ade-foxy:commit-$CI_COMMIT_SHA
script:
- 'apt-get update && apt-get -y --no-install-recommends install
clang-tidy
git
git-lfs
'
- 'git lfs install'
- 'git lfs pull --include="*" --exclude=""'
- 'vcs import < autoware.auto.$ROS_DISTRO.repos'
# Temporary work-around for acado_vendor
- 'rm -rf src/external/acado_vendor'
- 'curl -L -o ros-foxy-acado-vendor_1.0.0-0focal_amd64.deb https://gitlab.com/autowarefoundation/autoware.auto/acado_vendor/-/jobs/artifacts/main/raw/ros-foxy-acado-vendor_1.0.0-0focal_amd64.deb?job=build_debian_amd64'
- 'dpkg -i ros-foxy-acado-vendor*.deb'
- 'rm ros-foxy-acado-vendor*.deb'
# End temporary work-around for acado_vendor
- './tools/coverage/coverage.sh -u'
after_script:
- colcon test-result --verbose
artifacts:
name: "$CI_JOB_NAME"
paths:
- coverage
- log
coverage: /\s*lines.*:\s(\d+\.\d+\%\s\(\d+\sof\s\d+.*\))/
needs:
- ade_amd64_foxy
docs:
stage: build
image: $CI_REGISTRY_IMAGE/amd64/ade-foxy:commit-$CI_COMMIT_SHA
script:
- docs/.doxygen/build.py
artifacts:
name: "$CI_JOB_NAME"
paths:
- docs/_build/html
needs:
- ade_amd64_foxy
pages:
stage: deploy
image: alpine
script:
- mv docs/_build/html public
- mv coverage public
artifacts:
name: "$CI_JOB_NAME"
paths:
- public
only:
- master
needs:
- coverage
- docs
volume_amd64_foxy:
stage: deploy
image: docker
services:
- docker:dind
variables:
ARCH: amd64
DOCKER_DRIVER: overlay2
RMW_IMPLEMENTATION: rmw_cyclonedds_cpp
ROS_DISTRO: foxy
UBUNTU_DISTRO: bionic
<<: *volume_base
needs:
- test_amd64_foxy
volume_arm64_foxy:
stage: deploy
image: docker
services:
- docker:dind
tags:
- arm64
variables:
ARCH: arm64
DOCKER_DRIVER: overlay2
RMW_IMPLEMENTATION: rmw_cyclonedds_cpp
ROS_DISTRO: foxy
UBUNTU_DISTRO: bionic
<<: *volume_base
only:
- branches@autowarefoundation/autoware.auto/AutowareAuto
needs:
- test_arm64_foxy
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/fanxinkeji_admin/AutowareAuto.git
git@gitee.com:fanxinkeji_admin/AutowareAuto.git
fanxinkeji_admin
AutowareAuto
AutowareAuto
master

搜索帮助

D67c1975 1850385 1daf7b77 1850385