CI GitHub Action Workflow

OSD600 (20 Part Series)

1 Open Source Development
2 My First Code Review
16 more parts…
3 First Interaction With Open Source
4 Learn New Things Everyday: First Pull Request
5 Merge TIME!
6 Continuous Contribution
7 Enhancing Code Quality Through Refactoring
8 First Hacktoberfest Experience
9 Hard Times
10 Take Smaller Tasks
11 Last Contribution For Hacktoberfest
12 Bye Bye Hacktoberfest
13 Contribution Instructions: Formate Code and Linting
14 Testing
15 CI GitHub Action Workflow
16 Open-Source Development is Amazing!
17 PolyglotCode Published, but…
18 OSD Final Chapter: Part 1
19 OSD Final Chapter: Part 2
20 OSD Final Chapter: Part 3

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!

OSD600 (20 Part Series)

1 Open Source Development
2 My First Code Review
16 more parts…
3 First Interaction With Open Source
4 Learn New Things Everyday: First Pull Request
5 Merge TIME!
6 Continuous Contribution
7 Enhancing Code Quality Through Refactoring
8 First Hacktoberfest Experience
9 Hard Times
10 Take Smaller Tasks
11 Last Contribution For Hacktoberfest
12 Bye Bye Hacktoberfest
13 Contribution Instructions: Formate Code and Linting
14 Testing
15 CI GitHub Action Workflow
16 Open-Source Development is Amazing!
17 PolyglotCode Published, but…
18 OSD Final Chapter: Part 1
19 OSD Final Chapter: Part 2
20 OSD Final Chapter: Part 3

原文链接:CI GitHub Action Workflow

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容