diff --git a/.github/workflows/ubuntu_test.yml b/.github/workflows/ubuntu_test.yml new file mode 100644 index 00000000000..2f73f4ad70d --- /dev/null +++ b/.github/workflows/ubuntu_test.yml @@ -0,0 +1,91 @@ +name: UbuntuSimple + +on: + push: + branches: + - master + - 'dev**' + pull_request: + paths: + - 'tesseract**' + - '.github/workflows/ubuntu.yml' + - '**.repos' + schedule: + - cron: '0 5 * * *' + release: + types: + - released + +jobs: + ci: + name: ${{ matrix.distro }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + distro: [focal, jammy] + container: + image: ubuntu:${{ matrix.distro }} + env: + CCACHE_DIR: "$GITHUB_WORKSPACE/${{ matrix.distro }}/.ccache" + DEBIAN_FRONTEND: noninteractive + TZ: Etc/UTC + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + path: target_ws/src + + - name: Install Depends + shell: bash + run: | + apt update + apt upgrade -y + apt install -y cmake curl lsb-release ca-certificates gnupg python3 python3-distutils python3-pip ccache git + python3 -m pip install vcstool -q + python3 -m pip install colcon-common-extensions -q + cd $GITHUB_WORKSPACE/target_ws/src + ./.github/workflows/add_ros_apt_sources.sh + apt install -y liboctomap-dev libfcl-dev libconsole-bridge-dev libbullet-dev libbullet-extras-dev libyaml-cpp-dev libtinyxml2-dev libassimp-dev liborocos-kdl-dev libpcl-dev liblapack-dev libboost-dev libboost-filesystem-dev libboost-serialization-dev libboost-program-options-dev libboost-graph-dev libbenchmark-dev libccd-dev libgtest-dev + + - name: Prepare ccache timestamp + id: ccache_cache_timestamp + shell: cmake -P {0} + run: | + string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC) + message("::set-output name=timestamp::${current_date}") + + - name: ccache cache files + continue-on-error: true + uses: actions/cache@v1.1.0 + with: + path: ${{ matrix.distro }}/.ccache + key: ${{ matrix.distro }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }} + restore-keys: | + ${{ matrix.distro }}-ccache- + + - name: Build Upstream Workspace + shell: bash + run: | + mkdir -p $GITHUB_WORKSPACE/upstream_ws/src + vcs import --input "$GITHUB_WORKSPACE/target_ws/src/dependencies.repos" $GITHUB_WORKSPACE/upstream_ws/src/ + cd $GITHUB_WORKSPACE/upstream_ws + colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE=Release + + - name: Build Target Workspace + shell: bash + run: | + cd $GITHUB_WORKSPACE/target_ws + source $GITHUB_WORKSPACE/upstream_ws/install/setup.bash + colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE=Release -DTESSERACT_ENABLE_TESTING=ON + if [ $? -ge 1 ]; then return 1; fi + + - name: Run Tests + shell: bash + run: | + cd $GITHUB_WORKSPACE/target_ws + source $GITHUB_WORKSPACE/target_ws/install/setup.bash + colcon test --event-handlers console_direct+ --return-code-on-test-failure + if [ $? -ge 1 ]; then return 1; fi + colcon test-result --verbose + if [ $? -ge 1 ]; then return 1; fi