volumes: - name: apt_cache temp: {} - name: shared_data temp: {} steps: - &install_dependencies name: install_dependencies image: ubuntu:latest volumes: - shared_data:/opt/data commands: - apt update - apt-get install -y build-essential cmake clang clang-tidy gcc g++ python3 python3-pip python3.12-venv - &setup_conan name: setup_conan image: ubuntu:latest volumes: - shared_data:/opt/data environment: CONAN_REVISIONS_ENABLED: "1" commands: - python3 -m venv /opt/venv - . /opt/venv/bin/activate - pip install conan==2.5.0 - &echo_info name: echo_info image: ubuntu:latest volumes: - shared_data:/opt/data commands: - pip --version - python --version - conan --version - gcc --version - g++ --version - clang --version - clang++ --version - clang-tidy --version - clang-format --version - &build_gcc name: build_gcc image: ubuntu:latest volumes: - shared_data:/opt/data commands: - rm -rv ./build - export CC=$(which gcc) - export CXX=$(which g++) - conan profile detect - cp ./tools/conan/profiles/linux_gcc_amd64 $(conan profile path default) - conan install . --build=missing - conan build . - ./build/Release/modules/light/light - &build_clang name: build_clang image: ubuntu:latest volumes: - shared_data:/opt/data commands: - rm -rv ./build - export CC=$(which clang) - export CXX=$(which clang++) - conan profile detect - cp ./tools/conan/profiles/linux_clang_amd64 $(conan profile path default) - conan install . --build=missing - conan build . - ./build/Release/modules/light/light - &static_analysis name: static_analysis image: ubuntu:latest volumes: - shared_data:/opt/data commands: - echo "[TODO] Implement static analysis" - &run_tests name: run_tests image: ubuntu:latest volumes: - shared_data:/opt/data commands: - echp "[TODO] Implement tests" - &report_coverage name: report_coverage image: ubuntu:latest volumes: - shared_data:/opt/data commands: - echp "[TODO] Implement coverage report" kind: pipeline type: docker name: linux_amd64 platform: os: linux arch: amd64 steps: - *install_dependencies - *setup_conan - *echo_info - *static_analysis - *build_gcc - *build_clang - *report_coverage - *run_tests