From 878fd194d835553f4af3a73ad82d6d8303878940 Mon Sep 17 00:00:00 2001 From: 童宗振 Date: Wed, 13 Nov 2024 06:20:05 +0000 Subject: adapter aarch64 --- .gitlab-ci.yml | 139 +++++++++++++++++++++++++++++++++++++------------ ci/env_setup.sh | 18 +++++++ support/CMakeLists.txt | 23 +++++++- 3 files changed, 145 insertions(+), 35 deletions(-) create mode 100644 ci/env_setup.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 41460e8..c5aee58 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,69 +1,142 @@ variables: GIT_STRATEGY: "clone" - BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/marsio-build-env:dpdk-21-11-mlx5-el8" + BUILD_IMAGE_CENTOS8_X86_64: "git.mesalab.cn:7443/mesa_platform/marsio-build-env:dpdk-21-11-mlx5-el8" + BUILD_IMAGE_CENTOS9_AARCH64: "git.mesalab.cn:7443/mesa_platform/marsio-build-env:rocky9-aarch64" ROOT_DIR: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/$CI_PROJECT_PATH stages: - build - deploy -.build_before_script: +default: before_script: - - mkdir -p ~/.ssh - - eval $(ssh-agent -s) - - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config - - chmod 644 ~/.ssh/config - - ssh-add <(echo "$MARSIO_PRIVATE_KEY") - - cp $CI_PROJECT_DIR/ci/el8.repo.internal.geedge.net.repo /etc/yum.repos.d - - yum install -y libmaatframe-devel libMESA_prof_load-devel - - yum install -y libuuid-devel librdkafka-devel - - pip3 install msgpack + - bash $CI_PROJECT_DIR/ci/env_setup.sh - mkdir -p /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX/$CI_PROJECT_NAMESPACE/ - ln -s $CI_PROJECT_DIR $ROOT_DIR - cd $ROOT_DIR -.build: - extends: .build_before_script - image: ${BUILD_IMAGE_CENTOS8} +########################## x86_64 ############################ +build_x86_64: + stage: build + image: ${BUILD_IMAGE_CENTOS8_X86_64} tags: - share + parallel: + matrix: + - BUILD_TYPE: ["RelWithDebInfo"] script: - mkdir -p build - cd build - cmake3 .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} - make VERBOSE=1 - - if [[ "${ENABLE_PACKAGE}" == "True" ]]; then - make package VERBOSE=1; - cp ~/rpm_upload_tools.py ./; - python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm; - else - echo "no need to execute the deploy script"; - fi + rules: + - if: $CI_COMMIT_TAG + when: never + - if: $CI_COMMIT_BRANCH =~ /^dev.*$/ + when: never + - if: $CI_COMMIT_BRANCH + +deploy_testing_for_x86_64: + stage: deploy + image: ${BUILD_IMAGE_CENTOS8_X86_64} + tags: + - share + variables: + PULP3_REPO_NAME: "platform-testing-x86_64.el8" + PULP3_DIST_NAME: "platform-testing-x86_64.el8" + parallel: + matrix: + - BUILD_TYPE: ["RelWithDebInfo"] + script: + - mkdir -p build + - cd build + - cmake3 .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} + - make package VERBOSE=1; + - cp ~/rpm_upload_tools.py ./; + - python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm; + rules: + - if: $CI_COMMIT_BRANCH =~ /^dev.*$/ + +deploy_stable_for_x86_64: + stage: deploy + image: ${BUILD_IMAGE_CENTOS8_X86_64} + tags: + - share + variables: + PULP3_REPO_NAME: "platform-stable-x86_64.el8" + PULP3_DIST_NAME: "platform-stable-x86_64.el8" + parallel: + matrix: + - BUILD_TYPE: ["RelWithDebInfo"] + script: + - mkdir -p build + - cd build + - cmake3 .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} + - make package VERBOSE=1; + - cp ~/rpm_upload_tools.py ./; + - python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm; + rules: + - if: $CI_COMMIT_TAG -build: +########################## aarch64 ############################ +build_aarch64: stage: build - extends: .build + image: ${BUILD_IMAGE_CENTOS9_AARCH64} + tags: + - tsg-os-builder-aarch64 parallel: matrix: - BUILD_TYPE: ["RelWithDebInfo"] + script: + - mkdir -p build + - cd build + - cmake3 .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} + - make VERBOSE=1 rules: - if: $CI_COMMIT_TAG when: never + - if: $CI_COMMIT_BRANCH =~ /^dev.*$/ + when: never - if: $CI_COMMIT_BRANCH -deploy: +deploy_testing_for_aarch64: stage: deploy - extends: .build + image: ${BUILD_IMAGE_CENTOS9_AARCH64} + tags: + - tsg-os-builder-aarch64 variables: - ENABLE_PACKAGE: "True" - PULP3_REPO_NAME: "platform-stable-x86_64.el8" - PULP3_DIST_NAME: "platform-stable-x86_64.el8" + PULP3_REPO_NAME: "platform-testing-aarch64.el9" + PULP3_DIST_NAME: "platform-testing-aarch64.el9" parallel: matrix: - BUILD_TYPE: ["RelWithDebInfo"] - artifacts: - name: "dp_trace_telemetry-$BUILD_TYPE-$CI_COMMIT_REF_NAME" - paths: - - build/*.rpm + script: + - mkdir -p build + - cd build + - cmake3 .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} + - make package VERBOSE=1; + - cp ~/rpm_upload_tools.py ./; + - python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm; rules: - - if: $CI_COMMIT_TAG + - if: $CI_COMMIT_BRANCH =~ /^dev.*$/ + +deploy_stable_for_aarch64: + stage: deploy + image: ${BUILD_IMAGE_CENTOS9_AARCH64} + tags: + - tsg-os-builder-aarch64 + variables: + PULP3_REPO_NAME: "platform-stable-aarch64.el9" + PULP3_DIST_NAME: "platform-stable-aarch64.el9" + parallel: + matrix: + - BUILD_TYPE: ["RelWithDebInfo"] + script: + - mkdir -p build + - cd build + - cmake3 .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} + - make package VERBOSE=1; + - cp ~/rpm_upload_tools.py ./; + - python3 rpm_upload_tools.py ${PULP3_REPO_NAME} ${PULP3_DIST_NAME} *.rpm; + rules: + - if: $CI_COMMIT_TAG \ No newline at end of file diff --git a/ci/env_setup.sh b/ci/env_setup.sh new file mode 100644 index 0000000..7c85264 --- /dev/null +++ b/ci/env_setup.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +set -evx + +ARCH=$(uname -m) + +env | sort + +if [[ "${ARCH}" == "x86_64" ]]; then + cp $CI_PROJECT_DIR/ci/el8.repo.internal.geedge.net.repo /etc/yum.repos.d + yum install -y libmaatframe-devel libMESA_prof_load-devel + yum install -y libuuid-devel librdkafka-devel +else + yum install -y libmaatframe-devel libMESA_prof_load-devel + yum install -y libuuid-devel librdkafka-devel +fi + +pip3 install msgpack \ No newline at end of file diff --git a/support/CMakeLists.txt b/support/CMakeLists.txt index e6e3881..6d7ff7a 100644 --- a/support/CMakeLists.txt +++ b/support/CMakeLists.txt @@ -44,12 +44,31 @@ set_property(TARGET libevent-static-pthreads PROPERTY INTERFACE_INCLUDE_DIRECTOR ##### marsio +set(COREI7 "corei7") +set(AARCH64 "aarch64") +if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64|amd64") + set(MACHINE ${COREI7}) +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|ARM64|arm64") + set(MACHINE ${AARCH64}) +else() + message(FATAL_ERROR "${CMAKE_SYSTEM_PROCESSOR} processor is not currently supported") +endif() + +if($ENV{CI} STREQUAL "true") + set(CI_GITLAB_USER $ENV{CI_GITLAB_USER}) + set(CI_GITLAB_PASSWORD $ENV{CI_GITLAB_PASSWORD}) + set(GIT_REPOSITORY https://${CI_GITLAB_USER}:${CI_GITLAB_PASSWORD}@git.mesalab.cn/MESA_Platform/marsio.git) + message(STATUS "Currently in the gitlab ci environment.") +else() + set(GIT_REPOSITORY git@git.mesalab.cn:MESA_Platform/marsio.git) +endif() + ExternalProject_Add(marsio PREFIX marsio - GIT_REPOSITORY git@git.mesalab.cn:MESA_Platform/marsio.git + GIT_REPOSITORY ${GIT_REPOSITORY} GIT_TAG dev-4.8 CONFIGURE_COMMAND COMMAND mkdir -p build - COMMAND ${CMAKE_COMMAND} -E chdir /build ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} .. + COMMAND ${CMAKE_COMMAND} -E chdir /build ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DMACHINE=${MACHINE} .. BUILD_COMMAND COMMAND ${CMAKE_COMMAND} -E chdir /build make INSTALL_COMMAND "" -- cgit v1.2.3