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:
Afterwards, I pushed my changes, opened pull-request and witnessed my own magic.
Here's result:
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:
- 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:
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
.
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)