variables: GIT_STRATEGY: "clone" BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/ BUILD_IMAGE_CENTOS7: "git.mesalab.cn:7443/mesa_platform/build-env:master" BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux" INSTALL_DEPENDENCY_LIBRARY: libunwind gperftools numactl-devel zlib-devel librdkafka-devel systemd-devel jemalloc jemalloc-devel vim-common libMESA_htable-devel libMESA_prof_load-devel libcjson-devel libMESA_field_stat2-devel framework_env libwiredcfg-devel libWiredLB-devel libMESA_handle_logger-devel libbreakpad_mini-devel mrzcpd libMESA_jump_layer-devel libMESA_jump_layer SYMBOL_TARGET: sapp INSTALL_PREFIX: "/home/mesasoft/sapp_run/" stages: - build - envelope - upload - test .build_before_script: before_script: - mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/ - ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH - cd $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH - chmod +x ./ci/travis.sh - yum makecache - yum install -y elfutils-libelf-devel .build_by_travis_for_centos7: stage: build image: $BUILD_IMAGE_CENTOS7 extends: .build_before_script script: - yum install -y libmnl-devel - yum install -y libnfnetlink-devel - ./ci/travis.sh tags: - share .build_by_travis_for_centos8: stage: build image: $BUILD_IMAGE_CENTOS8 extends: .build_before_script script: - dnf --enablerepo=powertools install -y libmnl-devel - dnf --enablerepo=powertools install -y libnfnetlink-devel - dnf --enablerepo=powertools install -y libnsl - sh +x ./ci/update-el8-repo.sh - ./ci/travis.sh tags: - share .setup_test_env_for_centos7: stage: test image: $BUILD_IMAGE_CENTOS7 allow_failure: true before_script: - mkdir -p $BUILD_PADDING_PREFIX/$CI_PROJECT_NAMESPACE/ - ln -s $CI_PROJECT_DIR $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH - cd $BUILD_PADDING_PREFIX/$CI_PROJECT_PATH - yum makecache - yum install -y net-tools psmisc iproute initscripts gperftools-libs gdb snappy - yum install -y libMESA_htable libMESA_prof_load libMESA_field_stat2 libMESA_handle_logger libcjson systemd systemd-devel libpcap libpcap-devel libbreakpad_mini libMESA_jump_layer - yum install -y sapp benchmark_pcap gtest-devel zlib-devel jemalloc - yum install -y framework_env; source /etc/profile.d/framework.sh - ls -l /opt/MESA/lib - echo "/opt/MESA/lib" >> /etc/ld.so.conf - ldconfig - ldd /home/mesasoft/sapp_run/sapp - ifconfig - sysctl -w net.ipv6.conf.all.disable_ipv6=0 - ifconfig - ip neigh show - ip -6 neigh show - cd build; make test; - ln -fs /home/mesasoft/benchmark_pcap/ benchmark_pcap; - cd - - ldconfig - cd build/testing/ - ldd gtest_sapp_v4 - sed -i '14 i__log_test_sapp_benchmark_log.debug >stdout; other' etc/sapp_log.conf - sed -i '11 i__log_runtimelog.info >stdout; other' etc/sapp_log.conf - ulimit -c unlimited - cd - dependencies: - branch_build_debug_for_centos7 - branch_build_release_for_centos7 - develop_build_debug_for_centos7 - develop_build_release_for_centos7 - release_build_release_for_centos7 tags: - share benchmark_test_for_centos7: stage: test extends: .setup_test_env_for_centos7 script: - cd build/testing/ #run module v2.0 with death test - ./gtest_sapp_v4 -f control.* - ./gtest_sapp_v4 -f fake_marsio.* #run module v3.0 - ./gtest_sapp_v4 -f benchmark_drop.* - ./gtest_sapp_v4 -f benchmark_forward.* - ./gtest_sapp_v4 -f benchmark_inject.tcp* - ./gtest_sapp_v4 -f benchmark_inject.inline_same_dir - ./gtest_sapp_v4 -f benchmark_inject.inline_reverse_dir inline_test_for_centos7: stage: test extends: .setup_test_env_for_centos7 script: - cd build/testing/ #run module v2.0 with death test - ./gtest_sapp_v4 -f inline_mode.* - ./gtest_sapp_v4 -f transparent.* - ./gtest_sapp_v4 -f offload.* basic_test_for_centos7: stage: test extends: .setup_test_env_for_centos7 script: - cd build/testing/ #run module v2.0 immediately - ./gtest_sapp_v4 -f ipv4.* - ./gtest_sapp_v4 -f ipv6.* - ./gtest_sapp_v4 -f udp.* - ./gtest_sapp_v4 -f tcp.* - ./gtest_sapp_v4 -f appstate.* - ./gtest_sapp_v4 -f timer.* - ./gtest_sapp_v4 -f proxy.* - ./gtest_sapp_v4 -f asymmetric.* - ./gtest_sapp_v4 -f pkt_dump.* - ./gtest_sapp_v4 -f tcpall.* - ./gtest_sapp_v4 -f project.* - ./gtest_sapp_v4 -f stream_bridge.* - ./gtest_sapp_v4 -f tunnel.* - ./gtest_sapp_v4 -f plug_ctrl.* - ./gtest_sapp_v4 -f jump_layer.* - ./gtest_sapp_v4 -f hybrid.* - ./gtest_sapp_v4 -f inject.* branch_build_debug_for_centos7: stage: build extends: .build_by_travis_for_centos7 variables: BUILD_TYPE: Debug CAPTURE_MODE: MARSIO PLATFORM_MODE: INLINE MEM_POOL: JEMALLOC artifacts: paths: - build/* except: - /^dev*.*$/i - /^rel*.*$/i - /^master.*$/i - tags branch_build_release_for_centos7: stage: build variables: BUILD_TYPE: RelWithDebInfo CAPTURE_MODE: MARSIO PLATFORM_MODE: INLINE MEM_POOL: JEMALLOC extends: .build_by_travis_for_centos7 artifacts: paths: - build/* except: - /^dev*.*$/i - /^rel*.*$/i - /^master.*$/i - tags develop_build_debug_for_centos7: stage: build extends: .build_by_travis_for_centos7 variables: BUILD_TYPE: Debug CAPTURE_MODE: MARSIO PLATFORM_MODE: INLINE MEM_POOL: JEMALLOC PACKAGE: 1 UPLOAD: 1 ASAN_OPTION: "OFF" TESTING_VERSION_BUILD: 1 PULP3_REPO_NAME: platform-testing-x86_64.el7 PULP3_DIST_NAME: platform-testing-x86_64.el7 artifacts: name: "sapp-$CI_COMMIT_REF_NAME-debug" paths: - build/* only: - /^dev*.*$/i - /^rel*.*$/i - /^master.*$/i develop_build_release_for_centos7: stage: build extends: .build_by_travis_for_centos7 variables: BUILD_TYPE: RelWithDebInfo CAPTURE_MODE: MARSIO PLATFORM_MODE: INLINE MEM_POOL: JEMALLOC PACKAGE: 1 UPLOAD: 1 ASAN_OPTION: "OFF" TESTING_VERSION_BUILD: 1 PULP3_REPO_NAME: platform-testing-x86_64.el7 PULP3_DIST_NAME: platform-testing-x86_64.el7 artifacts: name: "sapp-$CI_COMMIT_REF_NAME-release" paths: - build/* only: - /^dev*.*$/i - /^rel*.*$/i - /^master.*$/i release_build_release_for_centos7: stage: build variables: BUILD_TYPE: RelWithDebInfo CAPTURE_MODE: MARSIO PLATFORM_MODE: INLINE MEM_POOL: JEMALLOC PACKAGE: 1 UPLOAD: 1 PULP3_REPO_NAME: platform-stable-x86_64.el7 PULP3_DIST_NAME: platform-stable-x86_64.el7 extends: .build_by_travis_for_centos7 artifacts: name: "sapp-$CI_COMMIT_REF_NAME-release" paths: - build/* only: - tags branch_build_debug_for_centos8: stage: build extends: .build_by_travis_for_centos8 variables: BUILD_TYPE: Debug CAPTURE_MODE: MARSIO PLATFORM_MODE: INLINE MEM_POOL: JEMALLOC artifacts: paths: - build/* except: - /^dev*.*$/i - /^rel*.*$/i - /^master.*$/i - tags branch_build_release_for_centos8: stage: build variables: BUILD_TYPE: RelWithDebInfo CAPTURE_MODE: MARSIO PLATFORM_MODE: INLINE MEM_POOL: JEMALLOC extends: .build_by_travis_for_centos8 artifacts: paths: - build/* except: - /^dev*.*$/i - /^rel*.*$/i - /^master.*$/i - tags develop_build_debug_for_centos8: stage: build extends: .build_by_travis_for_centos8 variables: BUILD_TYPE: Debug CAPTURE_MODE: MARSIO PLATFORM_MODE: INLINE MEM_POOL: JEMALLOC PACKAGE: 1 UPLOAD: 1 ASAN_OPTION: "OFF" TESTING_VERSION_BUILD: 1 PULP3_REPO_NAME: platform-testing-x86_64.el8 PULP3_DIST_NAME: platform-testing-x86_64.el8 artifacts: name: "sapp-$CI_COMMIT_REF_NAME-debug" paths: - build/* only: - /^dev*.*$/i - /^rel*.*$/i - /^master.*$/i develop_build_release_for_centos8: stage: build extends: .build_by_travis_for_centos8 variables: BUILD_TYPE: RelWithDebInfo CAPTURE_MODE: MARSIO PLATFORM_MODE: INLINE MEM_POOL: JEMALLOC PACKAGE: 1 UPLOAD: 1 ASAN_OPTION: "OFF" TESTING_VERSION_BUILD: 1 PULP3_REPO_NAME: platform-testing-x86_64.el8 PULP3_DIST_NAME: platform-testing-x86_64.el8 artifacts: name: "sapp-$CI_COMMIT_REF_NAME-release" paths: - build/* only: - /^dev*.*$/i - /^rel*.*$/i - /^master.*$/i release_build_release_for_centos8: stage: build variables: BUILD_TYPE: RelWithDebInfo CAPTURE_MODE: MARSIO PLATFORM_MODE: INLINE MEM_POOL: JEMALLOC PACKAGE: 1 UPLOAD: 1 PULP3_REPO_NAME: platform-stable-x86_64.el8 PULP3_DIST_NAME: platform-stable-x86_64.el8 extends: .build_by_travis_for_centos8 artifacts: name: "sapp-$CI_COMMIT_REF_NAME-release" paths: - build/* only: - tags ############################################################################### # envelope and upload ############################################################################### envelope_rpm: stage: envelope image: $BUILD_IMAGE_CENTOS7 variables: FEATURE_ID: 100 APP_NAME_IN_RPM_SPEC: sapp script: - chmod +x ./ci/envelope_rpm.sh - ./ci/envelope_rpm.sh artifacts: name: "sapp-pr-$CI_COMMIT_REF_NAME-release" paths: - build/*-pr-*.rpm tags: - envelope only: - tags upload_enveloped_rpm: stage: upload image: $BUILD_IMAGE_CENTOS7 variables: PULP3_REPO_NAME_EL7: platform-stable-x86_64.el7 PULP3_DIST_NAME_EL7: platform-stable-x86_64.el7 PULP3_REPO_NAME_EL8: platform-stable-x86_64.el8 PULP3_DIST_NAME_EL8: platform-stable-x86_64.el8 script: - chmod +x ./ci/upload_enveloped_rpm.sh - ./ci/upload_enveloped_rpm.sh tags: - share only: - tags