diff --git a/.github/workflows/doxygen.yaml b/.github/workflows/doxygen.yaml new file mode 100644 index 0000000..f7143a2 --- /dev/null +++ b/.github/workflows/doxygen.yaml @@ -0,0 +1,68 @@ +# This config uses industrial_ci (https://github.com/ros-industrial/industrial_ci.git). +# For troubleshooting, see readme (https://github.com/ros-industrial/industrial_ci/blob/master/README.rst) + +name: Doxygen + +on: + workflow_dispatch: + push: + branches: + - ros2 + +jobs: + doxygen: + env: + ROS_DISTRO: rolling + NOT_TEST_BUILD: true + # Clear the ccache stats before and log the stats after the build + AFTER_SETUP_CCACHE: ccache --zero-stats --max-size=10.0G + AFTER_BUILD_TARGET_WORKSPACE: ccache --show-stats + AFTER_AFTER_BUILD_TARGET_WORKSPACE: > + set +u && + source /opt/ros/rolling/setup.bash && + cd /home/runner/work/bio_ik/bio_ik/.work/target_ws && + colcon build --event-handlers console_direct+ desktop_notification- status- terminal_title- --cmake-args -DENABLE_DOXYGEN=ON --cmake-target doxygen-docs + CCACHE_DIR: ${{ github.workspace }}/.ccache + BASEDIR: ${{ github.workspace }}/.work + ADDITIONAL_DEBS: doxygen graphviz + + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + # The target directory cache doesn't include the source directory because + # that comes from the checkout. See "prepare target_ws for cache" task below + - name: Cache target workspace + uses: pat-s/always-upload-cache@v2.1.5 + with: + path: ${{ env.BASEDIR }}/target_ws + key: ${{ env.CACHE_PREFIX }}-${{ github.run_id }} + restore-keys: target_ws-doxygen-${{ hashFiles('**/CMakeLists.txt', '**/package.xml', '.github/workflows/ci.yaml') }} + - name: Cache ccache + uses: pat-s/always-upload-cache@v2.1.5 + with: + path: ${{ env.CCACHE_DIR }} + key: doxygen-${{ github.sha }}-${{ github.run_id }} + restore-keys: | + doxygen-${{ github.sha }} + doxygen + - id: ici + name: Run industrial_ci + uses: ros-industrial/industrial_ci@master + - name: Upload test artifacts (on failure) + uses: actions/upload-artifact@v2 + if: failure() && (steps.ici.outputs.run_target_test || steps.ici.outputs.target_test_results) + with: + name: test-results-doxygen + path: ${{ env.BASEDIR }}/target_ws/**/test_results/**/*.xml + - name: Prepare target_ws for cache + if: always() + run: | + du -sh ${{ env.BASEDIR }}/target_ws + sudo find ${{ env.BASEDIR }}/target_ws -wholename '*/test_results/*' -delete + sudo rm -rf ${{ env.BASEDIR }}/target_ws/src + du -sh ${{ env.BASEDIR }}/target_ws + - name: Deploy 🚀 + uses: JamesIves/github-pages-deploy-action@4.1.7 + with: + branch: gh-pages + folder: ${{ env.BASEDIR }}/target_ws/build/bio_ik/html diff --git a/.github/workflows/prerelease.yaml b/.github/workflows/prerelease.yaml new file mode 100644 index 0000000..26d9b06 --- /dev/null +++ b/.github/workflows/prerelease.yaml @@ -0,0 +1,29 @@ +# This config uses industrial_ci (https://github.com/ros-industrial/industrial_ci.git). +# For troubleshooting, see readme (https://github.com/ros-industrial/industrial_ci/blob/master/README.rst) + +name: pre-release + +on: + workflow_dispatch: + push: + branches: + - ros2 + +jobs: + default: + strategy: + fail-fast: false + matrix: + distro: [galactic, rolling] + + env: + ROS_DISTRO: ${{ matrix.distro }} + PRERELEASE: true + BASEDIR: ${{ github.workspace }}/.work + + name: "${{ matrix.distro }}-pre-release" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: industrial_ci + uses: ros-industrial/industrial_ci@master diff --git a/README.md b/README.md index c42c5b8..efae452 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,9 @@ # bio-ik +[![Formatting (pre-commit)](https://github.com/tylerjw/bio_ik/actions/workflows/format.yaml/badge.svg?branch=ros2)](https://github.com/tylerjw/bio_ik/actions/workflows/format.yaml?query=branch%3Aros2) +[![CI](https://github.com/tylerjw/bio_ik/actions/workflows/ci.yaml/badge.svg?branch=ros2)](https://github.com/tylerjw/bio_ik/actions/workflows/ci.yaml?query=branch%3Aros2) +[![Pre-release](https://github.com/tylerjw/bio_ik/actions/workflows/prerelease.yaml/badge.svg?branch=ros2)](https://github.com/tylerjw/bio_ik/actions/workflows/prerelease.yaml?query=branch%3Aros2) +[![Doxygen](https://github.com/tylerjw/bio_ik/actions/workflows/doxygen.yaml/badge.svg?branch=ros2)](https://github.com/tylerjw/bio_ik/actions/workflows/doxygen.yaml?query=branch%3Aros2) +[![Code Coverage](https://codecov.io/gh/tylerjw/bio_ik/branch/ros2/graph/badge.svg?token=W7uHKcY0ly)](https://codecov.io/gh/tylerjw/arm_teleop) ## Disclaimer