Skip to content

Commit

Permalink
Chore: Added advice
Browse files Browse the repository at this point in the history
Added advice point based on the research
  • Loading branch information
Stoyan12314 authored Jan 22, 2025
1 parent d63a176 commit c1f5d0b
Showing 1 changed file with 22 additions and 27 deletions.
49 changes: 22 additions & 27 deletions research/Github actions vs GitLab.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
# Comparison of GitHub Actions and GitLab CI/CD

## Introduction
These CI/CD tools are chosen for comparison because they are popular at the moment. Searching in Google for "CI/CD" they are the first tools that show up as search results.

These CI/CD tools are chosen for comparison because they are the most popular at the moment. Searching in Google for CI/CD they are the first tools that show up as search results.
In CI/CD, both GitHub Actions and GitLab CI/CD are powerful tools for automating development workflows.
While they share similarities, their differences make each better suited to particular scenarios.
This paper compares the two tools based on deployment strategies, pipeline configuration, runners, marketplace availability, integration, cost, and security.
The analysis draws on sources from DuMez (n.d.) and Felix M. (2023). The reasoning behind each of the comparison points is explained in the begging of each point.
The analysis draws on sources from DuMez (n.d.) and Felix M. (2023).


---

## Deployment Strategies
This point is chosen because both CI/CD tools have very different approaches to deployment. The complexity of setting up deployment pipelines is a critical consideration. Simple deployment setups allow teams to save time and reduce onboarding effort, making it easier for less experienced developers to contribute. However, more complex deployment strategies require advanced configuration and greater expertise. The effort needed to achieve these deployments impacts the overall costs in terms of time and staff education. GitHub Actions and GitLab CI/CD can be compared in terms of the required knowledge and the setup effort to implement such strategies.


Below are the differences are explained.

This point is chosen because both CI/CD tools have a very different approach to deployment. This matters if a company or the developers have an idea of deployment plan in mind. Below are the differences are explained.
GitLab CI/CD has built-in support for advanced deployment strategies such as canary, blue-green, and rolling updates. According to Fernandez (2024), canary updates, also known as canary deployments, involve releasing software updates to a small user group initially before broader release. Blue-green testing is a deployment strategy that uses two identical environments, "blue" (current version) and "green" (new version), to allow seamless updates by directing traffic to the green environment only after successful testing and to ensure an easy rollback if issues arise (Codefresh, 2025).Rolling updates are a deployment strategy that gradually replaces application instances with updated versions, allowing parts of the system to be upgraded, monitored, and tested incrementally without causing downtime or disrupting users (Silverman, 2024).
These features are available out-of-the-box, which is ideal for teams that frequently implement complex deployment patterns (Felix M., 2023). Here it can be stated that GitLab CI/CD simplifies workflows and reduces the need for multiple tools compared to GitHub Actions, where developers must either write custom code or rely on third-party actions to implement deployment patterns like those mentioned earlier.
On the other hand, GitHub Actions offers flexibility and a large ecosystem of reusable workflows, but manually configuring deployment strategies requires additional effort or community-created Actions (DuMez, n.d.).
Expand All @@ -24,9 +20,7 @@ On the other hand, GitHub Actions offers flexibility and a large ecosystem of re
---

## Pipeline Configuration
Pipeline configuration was chosen as a comparison point because it is central to how CI/CD tools manage the sequence of tasks needed to build, test, and deploy applications. Depending on how hard or easy it is to configure a pipeline, the number of people required to manage it and the level of experience they need can vary significantly. Which therefore effects resources and time.


This point is chosen since it's important for the team that will use the CI/CD tool. Gitlab is stricter with clear stages and build in linting while github actions is modular and flexible.
Pipeline configuration is the root of CI/CD workflows. GitLab CI/CD uses YAML files stored in a **.gitlab-ci.yml** file at the root of the repository and includes a built-in CI Lint tool to validate configurations. (Felix M., 2023).

On the other side, GitHub Actions relies on YAML files in **.github/workflows**. While GitHub does not provide an official built-in lint tool, you can employ third-party utilities (e.g., *yml2dot* or others) to visualize or validate these workflows (DuMez, n.d.).
Expand All @@ -50,7 +44,7 @@ Teams that need mature support for Windows or macOS will find GitHub Actions a b
---

## Marketplace/Plugins
This point is chosen because some developers prefer to use pre-built solutions rather than creating everything from scratch and spending resources and people on that . This approach saves time, effort, and resources, allowing them to focus on the unique aspects of their projects.
This point is chosen because some developers prefer to use pre-built solutions or resources rather than creating everything from scratch. This approach saves time, effort, and resources, allowing them to focus on the unique aspects of their projects.
GitHub Actions and GitLab are very different in this aspects

- **GitLab CI/CD**: Does not have a dedicated “marketplace” but provides flexibility for scripting custom jobs in the `.gitlab-ci.yml` file (Felix M., 2023).
Expand Down Expand Up @@ -87,37 +81,38 @@ Therefore, the security features of these tools influence which CI/CD platform i

---

## Conclusion
Both GitHub Actions and GitLab CI/CD are well made CI/CD platforms with complementary strengths:
## Advice & Conclusion
Both GitHub Actions and GitLab CI/CD are well made CI/CD platforms with complementary strengths.


- **GitLab CI/CD** is used with teams that want advanced deployment features out-of-the-box and tight integration within the GitLab suite.
- **GitHub Actions** stands out with it's marketplace, stable runners on all major platforms and native integration with GitHub itself.
- **GitLab CI/CD** is useful for large scale projects where advanced deployment strategies are needed out-of-the-box.

Which one to choose depends on existing platform investments (GitHub vs. GitLab), desired deployment strategies, and budgetary constraints.
- **GitHub Actions** is practical to be used for small projects or open source projects since they will benefit from the cost-free usage. Additionally it has a robust marketplace where a small team will benefit from it since they can reuse code made from other developers.

Which one to choose depends on existing platform investments (GitHub vs. GitLab), desired deployment strategies, budgetary constraints and project sizes.

---

## References
**DuMez, K.** (n.d.). *GitLab CI/CD vs. GitHub Actions.* [Graphite Guide]. Retrieved from [https://graphite.dev/guides/gitlab-cicd--vs-github-actions](https://graphite.dev/guides/gitlab-cicd--vs-github-actions)

**Felix M.** (2023, July 7). *Feature parity comparison: GitLab CI/CD vs. GitHub Actions.* [Medium Article]. Retrieved from [https://thexz3dev.medium.com/feature-parity-comparison-gitlab-ci-cd-vs-github-actions-37401d3e3b1c](https://thexz3dev.medium.com/feature-parity-comparison-gitlab-ci-cd-vs-github-actions-37401d3e3b1c)
- **DuMez, K.** (n.d.). *GitLab CI/CD vs. GitHub Actions.* [Graphite Guide]. Retrieved from [https://graphite.dev/guides/gitlab-cicd--vs-github-actions](https://graphite.dev/guides/gitlab-cicd--vs-github-actions)
- **Felix M.** (2023, July 7). *Feature parity comparison: GitLab CI/CD vs. GitHub Actions.* [Medium Article]. Retrieved from [https://thexz3dev.medium.com/feature-parity-comparison-gitlab-ci-cd-vs-github-actions-37401d3e3b1c](https://thexz3dev.medium.com/feature-parity-comparison-gitlab-ci-cd-vs-github-actions-37401d3e3b1c)


**Fernandez, T.** (2024, August 13). What is Canary Deployment? Semaphore. Retrieved January 17, 2025, from https://semaphoreci.com/blog/what-is-canary-deployment
* **Fernandez, T.** (2024, August 13). What is Canary Deployment? Semaphore. Retrieved January 17, 2025, from https://semaphoreci.com/blog/what-is-canary-deployment


**Codefresh.** (2025). What is Blue/Green Deployment? Retrieved January 17, 2025, from https://codefresh.io/learn/software-deployment/what-is-blue-green-deployment/
* **Codefresh. (2025).** What is Blue/Green Deployment? Retrieved January 17, 2025, from https://codefresh.io/learn/software-deployment/what-is-blue-green-deployment/



**Silverman, A.** (2024, May 16). What are Rolling Deployments & How do They Work? Eppo. Retrieved January 17, 2025, from https://www.geteppo.com/blog/what-are-rolling-deployments
Silverman, A. (2024, May 16). What are Rolling Deployments & How do They Work? Eppo. Retrieved January 17, 2025, from https://www.geteppo.com/blog/what-are-rolling-deployments


**GitLab.** (2025). Continuous integration best practices. Retrieved from https://about.gitlab.com/topics/ci-cd/continuous-integration-best-practices/
GitLab. (2025). Continuous integration best practices. Retrieved from https://about.gitlab.com/topics/ci-cd/continuous-integration-best-practices/

**Schroeder, D.** (2024). Multiple ways to setup your CI/CD pipelines in GitHub Actions. Daniel Schroeder's Programming Blog. Retrieved from https://blog.danskingdom.com/Multiple-ways-to-setup-your-CI-CD-pipelines-in-GitHub-Actions/
Schroeder, D. (2024). Multiple ways to setup your CI/CD pipelines in GitHub Actions. Daniel Schroeder's Programming Blog. Retrieved from https://blog.danskingdom.com/Multiple-ways-to-setup-your-CI-CD-pipelines-in-GitHub-Actions/


**GitHub.** (2025). About billing for GitHub Actions - GitHub Docs. https://docs.github.com/en/billing/managing-billing-for-your-products/managing-billing-for-github-actions/about-billing-for-github-actions
GitHub. (2025). About billing for GitHub Actions - GitHub Docs. https://docs.github.com/en/billing/managing-billing-for-your-products/managing-billing-for-github-actions/about-billing-for-github-actions

**GitLab.** (2025). Pricing. https://about.gitlab.com/pricing/
GitLab. (2025). Pricing. https://about.gitlab.com/pricing/

0 comments on commit c1f5d0b

Please sign in to comment.