DEV Community

Amir Mullagaliev
Amir Mullagaliev

Posted on

CI GitHub Action Workflow

Introduction

For this week lab we were tasked with set up of CI Workflow in our own GitHub project that we created earlier this semester. I've already set it up, but would like to describe this process later on this blog. Also we were supposed to write at least one unit test for our group mate's project, which in my case written in different language -- Rust.

GitHub Actions CI Workflow Set Up

For me it was a magic to see how my pull request is getting tested in other projects. This time it's my turn to deploy it in my own project. I opened Actions tab, and searched for Java CI with Maven. I pressed Configure and .yml file appeared.
Here's how it looked like:

Image description

Afterwards, I pushed my changes, opened pull-request and witnessed my own magic.

Here's result:

Image description

Linter, Code Formatter and Test

Sometime later I added to my project linter, code formatter and test, found a way how to integrate them to my workflow.

Result:

Image description

  • It helped me a lot to make sure that every contributor follows same coding style.
  • Now every pull request runs unit tests, linter and code formatter at the same time!

Writing Unit Tests in Rust

As always I picked project by Theo. His project written in Rust.

Differences

In Rust testing looks different. In Java you have to create a different folder called test and implement each test in separate file inside of earlier created folder. Unlike Java, you must implement all the tests inside of the file, where function that you want to test is implemented.

I had to implement function located inside of chat_completions.rs.

Result:

Image description

If you take a closer look, my test implementation is inside of chat_completions.rs.

Dev Container

Dev Container is a remote environment that allows all contributors to work in the same environment. It is cool feature that I didn't know about before.

To set it up in Intellij Idea I had to create a folder .devcontainer and create a config file devcontainer.json.

Image description

Conclusion

GitHub CI Action Workflow is amazing thing that was a magic for me before! I really enjoyed this lab. I learned new things, pretty much everything was new to me!

Top comments (0)