What is the difference between GitLab CI and GitHub Actions Beta?
Both talk about devops/automation from Git repo
GitHub copied a lot of Gitlab`s features, including CI (similar configuration and price). Actions looks like GitLab CI/CD but there are some differences between them.
GitLab CI/CD has integration with Pages, issues, packages registry, it has environments dashboard, review support, manual pipelines, multi-project pipelines, support a lot of different reports (such as Container scanning report), good API, ability to use your own runner, and a lot of other features. Also, it is open source.
You can see more full comparsion here
GitHub Actions - simple CI; GitLab CI/CD - configurable and powerful open-source CI/CD with integrations with different software and unique features.
As the commenter said above, it's basically just each company's answer to CI/CD. There are minor differences but the basic premise is the same.
You can see a side-by-side comparison from a third party at https://knapsackpro.com/ci_comparisons/github-actions/vs/gitlab-ci.
Related
We are improving our CI/CD process and we understand that we need to use GitHub (or similar) for a better version control..
We would like to integrate SuiteCloud with Github to upload ALL our objects in order to track an monitor any changes. Also, we are planning to use branches to deploy code in our instances. Ex: Master = Production. Dev Branch = Sandbox1, Homologation = Sandbox2.
So... is possible to do it? And how? Any experiences to be shared?
Since SDF manipulates text (xml) files their management is no different than for any other git based CI/CD process.
Netsuite has java and node based CLI tools that can be incorporated in Git Actions for automated deployments.
You'll have some fun if you want to automate testing as that can be problematic with any live database.
When I select all projects, I cannot search by commits or code.
Can I enable search by code or commits across all projects?
You can only do this across an entire instance for self-managed GitLab instances OR searching across repositories within a single organization/group in GitLab.com
For example, you can search across all of the gitlab-org group or any other group/namespace you have access to.
Currently, GitLab has not enabled global code search on gitlab.com. However, self-hosted GitLab Premium and Ultimate customers can leverage the advanced search feature and enable global code search for a self-managed instance with Elasticsearch.
That might be because a true global code search does not seem to be implemented yet, as illustrated by issue 556 or issue 14597.
Which is why there are alternatives like phillipj/gitlab-search (but only to search for contents across all your GitLab repositories)
I have set up a CI pipeline, and it is working well. However, I still have to go to a web interface and click buttons - is there an API for this functionality, specifically the CI part? I know there is a REST interface to gitlab as such, but I still haven't spotted the parts that handle CI - does it exist?
You can refer to the full API documentation.
You should more specifically be interested on the sections regarding jobs and pipelines
We are building a Microservices based architecture and we are having 50 odd CI and 50 odd CD pipelines. Is there a way to script the CI / CD Build and Release definitions? We want this to be a repeatable process and do not want to leave it to our DevOps engineer(s) as it is prone to errors. Please note that I am not talking about ARM (which is already being used by us). Is there a way to do the above?
For builds, you can use YAML builds, which are currently in preview.
For releases, there's nothing equivalent yet.
You could always use the REST APIs to extract the build and release definitions as JSON, source control them, and then create a continuous delivery pipeline to update them when the definitions in source control change.
I started exploring Gitlab for version control management and I got an issue at the first step itsself. When ever I create a project its creating a new repository. I have few webapplications which are independent to each other. In that case do I need to use different repository for every project.
What I am looking for is what is what and when to use what but not able to find what is repository and what is project in gitlab website as well as through other sources as well.
Also I came across a term submodule, when can it be used. Can I create one global project and have all the webapplications as different submodules.
Can any one please help me in understanding the difference between those 3 and when to use what based on their intended way of usage. Also please help me by pointing to a good learning site where I can get the information of doing basic version control operations in gitlab.
Thanks.
Gitlab manages projects: a project has many features in addition of the Git repo it includes:
issues: powerful, but lightweight issue tracking system.
merge requests: you can review and discuss code before it is merged in the branch of your code.
wiki: separate system for documentation, built right into GitLab
snippets: Snippets are little bits of code or text.
So fear each repo you create, you get additional features in its associated project.
And you can manage users associated to that project.
See GitLab documentation for more.
The Git repo and Git submodule are pure Git notions.
In your case, a submodule might not be needed, unless you want a convenient way to remember the exact versions of different webapp repo, recorded in one parent repo.
But if that is the case, then yes, you can create one global project and have all the webapplications as different submodules.
Each of those submodules would have their own GitLab project (and Git repo).