In Lab 8 of DPS909, I explored the power of Continuous Integration (CI), specifically through GitHub Actions. This lab was a great opportunity to enhance my project by automating tests, ensuring quality control, and learning to integrate workflows into real-world development practices.
CI ensures that code remains functional and bug-free with every change. It prevents breaking the default branch by continuously running tests. For this lab, I not only integrated CI into my own project but also contributed tests to my partner’s project. This blog post reflects on my journey through these tasks.
To set up CI in my project, I created a GitHub Actions Workflow. This workflow was triggered whenever:
Below is the YAML file I used for my GitHub Actions workflow:
name: CI Workflow on: push: branches: - main pull_request: branches: - main jobs: build-and-test: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 - name: Set up C++ uses: actions/setup-cpp@v1 with: compiler: gcc - name: Build the project run: | mkdir build cd build cmake .. make - name: Run Tests run: | cd build ctest
This workflow checks out my repository, builds the project using CMake, and runs the tests I wrote in Lab 7.
To ensure the workflow was working as expected, I:
The CI workflow ran as expected:
Merging this pull request into the main branch gave me confidence that my project was protected from unintentional bugs.
In the second part of the lab, I collaborated with my classmate, Inder Parmar, and contributed tests to their repository, Tailor4Job.
Setting up CI was a game-changer for my development workflow. Here are some key takeaways:
Collaborating on a partner's repo was an enriching experience, as it gave me exposure to a different codebase, testing environment, and workflow.
While I didn’t fully implement the optional challenges, I explored:
These steps can further enhance project quality and ease of onboarding for new contributors.
Lab 8 taught me the importance of integrating CI workflows into development projects. CI ensures consistent quality control and fosters collaboration, making it an invaluable tool in modern software development.
You can check out my project’s successful CI run and the pull request to my partner’s project below:
This lab has truly enhanced my understanding of automation, testing, and collaboration in open-source development.
The above is the detailed content of Continuous Integration with GitHub Actions. For more information, please follow other related articles on the PHP Chinese website!