Skip to main content

GSoC'23 Report - GitHub Actions

Β· 6 min read
Rohan Sasne
Rohan Sasne
GSoC'23 participant @PEcAn Project

Improving Github Actions for the PEcAn Project: Report on my 2023 GSOC project.

What is Google Summer of Code?​

Google Summer of Code (GSoC) is a global program that pairs students with open source organizations to produce code and contribute to these communities while making some money. The whole idea behind this program is to encourage students to get involved in open source contributions.

As part of the program, organizations provide mentors to assist the student throughout the whole process, from learning about the community to contributing code

About PEcAn​

The Predictive Ecosystem Analyzer (PEcAn) is an integrated ecological bioinformatics toolbox that consists of a scientific workflow system to manage the immense amounts of publicly available environmental data and a Bayesian data assimilation system to synthesize this information within state-of-the-art ecosystems models. It has

  • An application program interface (API) that encapsulates an ecosystem model and provides a standard interface, inputs, and outputs.

  • Core utilities for handling and tracking model run and the flows of information and uncertainties into and out of models and analyses.

  • An accessible web-based user interface and visualization tools.

  • An extensible collection of modules to handle specific types of analyses (sensitivity, uncertainty, ensemble), model-data syntheses (benchmarking, parameter data assimilation, state data assimilation), and data processing (model inputs and data constraints).

If you want to contribute and know more about PEcAn Project, then do join the slack channel.

πŸ‘‰ Project Details:​

In this blog post, I’ll be discussing my journey of Google Summer of Code 2023 with PEcAn Project.

Pull Requests and Issues opened in the GSoC period​

All my technical contributions across all the repositories of the PEcAn project can be found below:

Google Summer of Code 2023 Work Product Submission

Student: Rohan Sasne (@RohanSasne)
Organisation: PEcAn Project
Project: GitHub Actions - Optimizing CI Pipeline and Utilizing the Whole Docker Stack for Testing


Brief Notes along with weekly progess and learnings can be found here

Overview of Work Done​

(Click on the title for link to PR)

PR Title
docs: Fixed 2 typos in gsoc webpage
build: Reduce Workflow Time for CI GitHub Action
docs: Update README.md for correct hyperlink redirect
docs: Fix Small Typo in DEV-INTRO.md
build: Test Models Against the Full Docker Stack
feat: create connectHost function to input Host header
build: Add Docker Compose File and Add Model Test Workflow
fix: Test the Pull Request on Push to all Branches
build: Optimize CI Pipeline Code
build: Add PRLabeler GitHub Action Workflow
fix: rabbitmq_post_message in Submit.Worflow Post API
Issues Opened
Should the new SIPNET test run on every PR or should it be scheduled on weekly basis
Running CI and Renderbook workflow only for merge request, merge queue and Master Branch
New Connect function to accept header requests
API POST request gives internal server error
Further reduce code duplication by setting the check command as a matrix variable
Should the Docker workflow run only when the CI tests are successful
Labeling the Pull Request based on the type of changes it is making
GitHub actions failing

The Project:

GitHub Actions is a powerful tool that enables developers to automate their workflows and streamline their software development process. Our project aimed and successfully achieved the following goals:

  • Optimized package version checks in GitHub Actions to limit the number of checks.

  • Utilized the full Docker stack for testing SIPNET.

  • Created a test that runs tests using the develop stack and writes the results to a file in a special branch.

  • Updated the dashboard to fetch data from the special branch and display the results.

Weekly Progress:​

Week 1

  • Discussed with mentor the project goals

  • Successfully created first PR and waiting for mentor/ community review

  • Helped the community on slack to find article to solve a issue

Week 2

Week 3

Week 4

  • Created Pull request in the rpecanapi repository to add a API function which takes custom headers as inputs which was missing till now

  • Created an Issue in the Repository for creating an extra function in API to pass on custom headers

  • Opened a draft PR in the PEcAn status board repository

Week 5

Week 6 & 7

Week 8 & 9

Week 10 & 11

  • Created a PR to fix the Post API failure issue

  • Created a PR to auto label the PR for better visual clarity in the repository and to keep track of the type of PR’s made in the long run

  • Tested a false PR, to test why we hit the GitHub API rate limit :_

Week 12

  • Completed the documentation part of my work submission to google :)

Wrapping Up​

Google Summer of Code is an excellent opportunity for students to work on a project that matters while also significantly improving their coding skills and teamwork abilities.

Working on this GSoC’23 project with PEcAn Project was an enjoyable experience. I want to express my gratitude to my mentor, **Rob Kooper** for his constant support and guidance throughout this program. Thank you so much! Working with you was a really fantastic experience, and I look forward to work with you on more open source projects in the future!

Finally, thanks to the GSoC program for providing this wonderful opportunity to work in such a great open source community, I was able to work on such a large real-world project, and I learned a lot throughout this program. I can confidently say that my coding abilities have improved over the ten weeks of GSoC.