What is our primary use case?
I use GitHub for version control.
I just use GitHub repositories and GitHub Actions.
I have integrated my automation project with GitHub Actions for continuous integration pipelines, allowing the team to make use of my automation scripts. It's essentially a continuous integration tool for us now.
How has it helped my organization?
Its integration and deployment are quite easy. You need to create a YAML file in your project, detailing configurations within this file. It integrates itself, requiring you to specify titles, descriptions, parameters, and a trigger scheduler if needed.
Apart from that, it's just a simple YAML file, so there's no need for complex configurations.
In one project, I used GitHub to automate an application related to email marketing, focusing on actions for data scraping. This required running scripts daily, sometimes even twice or thrice a day. Manually executing these scripts is inefficient and overly reliant on individual team members.
However, by integrating the project with GitHub Actions, we automated script execution. Triggers were set up to initiate the pipeline automatically with every new commit or push to a branch.
Additionally, we implemented schedulers to run pipelines at predetermined times, like 9 PM or 2 PM.
Another enhancement was executing five tests in parallel through data actions, making the process more robust.
GitHub Actions also offers stepwise execution details, greatly aiding in understanding and managing workflows.
I have optimized job execution time by running test scripts in parallel and creating multiple pipelines; we've significantly reduced execution times. What could take 50 minutes can be cut down to just 8 to 10 minutes through these optimizations.
What is most valuable?
One feature I am a fan of is version control, which provides a history of every commit, which is a widely used standard.
Another key aspect is the ease of setting up continuous integration without needing extensive DevOps intervention, thanks to the straightforward creation of YAML files. These features significantly streamline workflow automation.
I also have experience integrating external services with GitHub Actions.
I've integrated Jenkins, which is my go-to tool. GitHub Actions also allows for the integration of third-party tools like Bitbucket, demonstrating its versatility and capability to work seamlessly with a variety of services.
What needs improvement?
The primary area for improvement I see is in artifact management, especially for saving screenshots or videos from failed tests or data-driven actions. Currently, the configuration for saving these artifacts is complex.
Simplifying this process would make GitHub Actions even more user-friendly and efficient.
Other than this aspect, GitHub Actions stands out as an excellent tool for automating and managing workflows.
For additional functionalities, one aspect I'd like to see improved is the integration of performance testing and API automation projects directly within GitHub Actions, without the need for third-party tools. This direct integration would streamline the process significantly.
For how long have I used the solution?
I have been using it for more than three years.
What do I think about the stability of the solution?
GitHub Actions has been quite stable in my experience; I haven't encountered any crashes or significant issues. Therefore, I'd give it a nine out of ten for stability.
What do I think about the scalability of the solution?
I'd rate scalability an eight out of ten. There's always room for improvement, but it's quite good as is.
We have several teams using GitHub Actions, with over a hundred people utilizing it in our projects.
How are customer service and support?
I haven't had the need to contact GitHub support since we've managed to solve our issues internally.
Which solution did I use previously and why did I switch?
In terms of automation, I use Cypress, Playwright, and Selenium. For API automation, I use Postman and Swagger. For mobile automation, I use Appium and Espresso.
With Postman, we usually test the functionality of APIs, checking their health and performance. Swagger is more for documenting APIs, detailing their purpose, endpoints, and how to trigger them using queries and other aspects.
I use these tools for testing purposes mostly.
How was the initial setup?
The setup process is quite straightforward. It largely depends on the complexity of your needs.
For basic requirements, it's simple, but more complex setups will naturally require more detailed configuration.
From my perspective as a QA Automation Engineer, I found it to be quite simple and easy to navigate.
I primarily focus on cloud-based deployments.
What's my experience with pricing, setup cost, and licensing?
It's low-priced. Not high, but definitely low.
Which other solutions did I evaluate?
I can compare it to Jenkins or Bitbucket.
GitHub Actions stands out for its ease of use, requiring no token generation like Bitbucket and Jenkins.
It's also more straightforward to integrate, needing only the creation of a YAML file, unlike the manual configurations required for Jenkins and Bitbucket.
Furthermore, GitHub Actions supports a wide array of libraries and dependencies, simplifying the installation process compared to the more manual integrations needed with Jenkins and Bitbucket.
These factors make GitHub Actions a more powerful and user-friendly tool in comparison.
What other advice do I have?
I would rate the solution an eight out of ten.
I'd definitely recommend it, especially to automation engineers. Once they integrate their automation project with GitHub Actions, they'll find it very useful for various reasons.
- The user interface is friendly and engaging.
- It provides detailed logs for monitoring what's happening behind your code execution.
- It organizes CI pipeline execution into steps for easier debugging.
These are some of the key benefits that I believe would be valuable to others.
Which deployment model are you using for this solution?
Public Cloud
Disclosure: My company does not have a business relationship with this vendor other than being a customer.