Github CI Integration
As a coursework of OSD600, we were integrating CI on our projects. Since my project was being created with Java, and added Maven for dependency and artifacts, I added maven run in my GitHub action CI.
I have experienced those automated tests and checks through GitHub actions when I was contributing on huge projects before. It is a very cool feature that could allow multiple contributors to check if they broke any core functionality when contributing.
I had to modify the yml file multiple times because it was not functioning properly at first. I had to add some plugin and scope in pom.xml for maven automated tests.
<groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version>
And after adding surefire, below commands was finally picking up Junit classes for testing
- name: Build maven package run: mvn package -DskipTests - name: Test run: mvn test
I wanted to add formatter and linter inside the CI, but since the formatter and linter I have used in my project had no functionality to check and format the code with "mvn" command, I had to postpone it to later development.
For the future improvement, I would like to add a script to run formatter and linter that could automatically reformat and check all of the file, and add the script into the CI. This would require more research and knowledge on CI.
A successful action that ran for the pull request could be found here. I created a unit test to test if the html header & footer writer method is working properly.
Second part of the lab was to partner up with another student and create a unit test for their project and see if the CI is working properly.
I contributed on Le Minh Pham's project which was written in Python.
Unit testing in python was a lot simpler than using Java.
I created two unit testings, which have test cases for horizontal rules and a combined markdown feature.
First I failed on horizontal rules testing, and had to discuss with Le Minh Pham, he was able to fix the part where it breaks the
tag inside the html body.
After his fixes and commits, my PR was able to pass the automated checks and was able to get merged.