Skip to content
This repository was archived by the owner on Apr 10, 2025. It is now read-only.

Integrate GH actions CI/CD pipelines #21

Merged
merged 32 commits into from
Mar 4, 2023

Conversation

evan-palmer
Copy link
Collaborator

@evan-palmer evan-palmer commented Mar 3, 2023

Checklist

  • I have performed a thorough review of my code
  • I have sufficiently commented my code
  • The implementation follows the project style conventions
  • All project unit tests are passing
  • If necessary, documentation has been provided or updated to discuss the changes
  • System integration tests are performed successfully
  • Any new dependencies have been added to the requirements list
  • Any changes that will not be completed or bugs that have been introduced have been added as issues

Changes Made

This PR introduces changes to support GitHub actions CI/CD pipelines. Specifically, CD pipelines have been integrated to build CI and development images. The CI pipelines have been extended to run formatting, linting, and unit tests.

Associated Issues

Files Changed

  • ./devcontainer/Dockerfile: Migrated file previously in .docker/ here and cleaned up architecture
  • ./devcontainer/devcontainer.json: Updated to point at a different Dockerfile
  • ./docker/Dockerfile: Redesigned to support CD pipelines. This copies the project into the image for getting rosdeps and can be used for future production-type images
  • .dockerignore: Introduced to support new Dockerfile. Excludes all files but ROS 2 packages
  • .github/workflows/*: Integrated a formatting, testing, and docker pipeline
  • .pre-commit-config.yaml: Updated to support CI pipelines and introduces a more inclusive tool for project formatting
  • README.md: Clarified dependency installation
  • alpha_bringup/package.xml: Removed unused dependencies
  • Misc: Fixed spelling errors identified by cspell

Testing

These pipelines have been EXTENSIVELY tested in GitHub actions (rip to my sleep schedule)

Issues Introduced

@evan-palmer evan-palmer self-assigned this Mar 3, 2023
@evan-palmer evan-palmer linked an issue Mar 3, 2023 that may be closed by this pull request
@evan-palmer evan-palmer changed the base branch from main to develop March 3, 2023 10:45
@evan-palmer evan-palmer added enhancement New feature or request WIP Work in-progress labels Mar 3, 2023
@evan-palmer evan-palmer changed the title [WIP]: Integrate CI/CD pipelines Integrate GH actions CI/CD pipelines Mar 3, 2023
@evan-palmer evan-palmer removed the WIP Work in-progress label Mar 3, 2023
@evan-palmer evan-palmer linked an issue Mar 3, 2023 that may be closed by this pull request
@evan-palmer evan-palmer merged commit abf9001 into develop Mar 4, 2023
@evan-palmer evan-palmer deleted the 4-feature-gh-actions-docker-pipelines branch March 4, 2023 00:51
evan-palmer added a commit that referenced this pull request Mar 6, 2023
* Started project configuration

* Added missing dotfiles

* Started implementation of alpha driver

* continued implementation of alpha driver

* Finished initial crc implementation and started devops error resolution

* Working on resolving build errors for tests

* Resolved linking errors with testing in cmakelists

* cleaned up alpha driver cmakelists file

* Resolved bugs in crc calculation

* implemented cobs encoding and cleaned up crc methods

* Revert back to clang formatting

* added support for clang tidy and resolved clang tidy errors

* resolved copyright errors

* forgot to save

* more files that i forgot to save

* Started designing ros messages

* Implemented support for packet decoding

* Cleanup

* implemented unit tests for packet

* Resolve type warnings and discrepancies between cpplint and clang format

* Made a packet ros msg for comms between driver and control interface

* save point

* started implementing terminal configurations and serial device initialization

* added methods to send data and register read callbacks

* Added support for configuring read to block

* Added active public member

* started implementing heartbeat monitor

* Clean up linter errors

* Cleaned up some guidelines violations and integrated logging support into client

* Finished up initial implementation of serial client

* started implementation of ros wrapper for driver

* resolved some bugs in the serial client

* Resolved bug in serial read

* Cleaned up implemented and comments

* added heartbeat monitor

* sorry google but i hate your method naming convention

* rip buildx

* started refactoring to support ros2 control and started systeminterface implementation

* Continued refactoring driver to better support ros2 control integration

* Cleaned up comments and added new request method

* Converted driver to library and separated control interface

* get rid of gross src directory

* forgot to actually remove src

* started implementation of hardware interface

* removed alpha msgs package and added bringup and description packages

* started implementation of init method

* finished initial version of hardware interface on_init

* started implementing on_cleanup

* added logs and try catch blocks for mode switching

* Remove files from develop to start enforcing pr process

* Starting down the rabbit hole of exception safe code.. cheers Jon Kalb

* Integrate a Linux serial driver with ros2_control position, velocity, and joint trajectory control (#18)

* updated exceptions according to feedback from code review

* removed unnecessary consts

* Integrate ros2_control for position, velocity, and joint trajectory control (#11)

* moved ros2 control work to new branch

* started adding support for position control

* quick save

* Implemented command and state interface exports

* Resolve merge conflicts

* Save point

* added on_configure method

* finished read and write methods

* Implemented initial version of write method

* ported meshes and URDFs from reach sdk

* Added urdf specifications and rviz launch

* fix logger naming in hardware description

* added missing readme

* added missing readme

* starting integration of ros2_control xacro

* fix readme link

* Remove italics

* added ros2_control descriptions nad config and gazebo macro

* added moveit

* started moveit2 integration

* Starting to migrate moveit2 configs to description package

* started working on adding launch files

* removed joint state gui

* squashed system hardware bugs and continued bringup

* why does gazebo suck so much

* Save point

* finished first versions of launch files.. time to debug

* Fixed moveit configs

* curse you moveit

* fixed controller execution

* fixed rviz launch with gazebo

* fixed moveit bugs

* debugging gazebo

* Removed gazebo stuff for time being

* started system cleanup for PR

* i guess its ros 2 not ros2

* cleaned up bringup package

* cleaned up folder structure

* starting cleanup of documentation

* IMPORTANT GAZEBO SAVE POINT

* added gazebo to dockerfile

* Added documented inertial properties

* fixed bugs in state callbacks

* continued bug fixes

* save point for ramen

* resolved bugs in hardware configuration with moveit

* first pass for PR

* Resolved *most* of the comments from the pr review

* fixed joint limit issues

* Fixed initial positions file error

* Added missing changelog document

* Fixed camera angles for rviz and gazebo

* Fixed moveit rviz camera angle

* fixed order of moveit controllers

* Created a CODE_OF_CONDUCT document (#19)

* Integrate GH actions CI/CD pipelines (#21)

* started docker then got distracted

* split dev image from production images

* take 1

* take 2

* moving ci integration here to make docker updates easier

* testing precommit pipeline

* take one on ci

* ran with wrong branch

* attempt to use clang style config files

* another attempt at clang format

* testing different version of clang tidy

* testing to see if ici catches bug in test

* attempt to disable clang format checks

* remove clang format from build tests in favor of pre-commit

* weird things happening with tidy

* weird things happening with tidy

* im tired and want to go to bed

* im just guessing at this point

* another random test

* disable ici clang tidy in favor of other workflow

* why

* why

* why

* pain

* sad

* this is as good as it's going to get

* put env variable in wrong spot

* fixed readme. time for bed

* fixed readme. time for bed

* fixed readme. time for bed

* removed test branch from ci pipeline. actually going to bed now

* Resolved PR comments
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
1 participant