[HN Gopher] CircleCI Announces Support for Gitlab
       ___________________________________________________________________
        
       CircleCI Announces Support for Gitlab
        
       Author : octavianc
       Score  : 106 points
       Date   : 2022-07-26 18:31 UTC (4 hours ago)
        
 (HTM) web link (circleci.com)
 (TXT) w3m dump (circleci.com)
        
       | pid_0 wrote:
       | Who even uses external CIs anymore? GitHub and gitlab ones are
       | great otherwise you have plenty you can deploy yourself.
        
         | gtk40 wrote:
         | We were evaluating CircleCI at work (wanting to move on from
         | Jenkins) and ended up going with GitHub Actions near launch as
         | it was a similar enough project but without needing another
         | vendor involved. We have had some kinks but GHA works well for
         | us now with a substantial spend.
        
         | zamalek wrote:
         | We recently moved off of Circle CI to self-hosted GitHub
         | Actions runners. It is ridiculously expensive: our solution is
         | in the region of 27x cheaper.
        
           | mr337 wrote:
           | I've seen some projects where the Circle CI costs are more
           | expensive than hosting.
        
             | pojzon wrote:
             | Datadog+CircleCI+Dynatrace and your project costs more than
             | fee full time ppl working on them.
             | 
             | But for some companies paying extra to be able to blame
             | someone is crucial.
        
               | nickstinemates wrote:
               | (sorry to sidetrack) but what is the usecase of deploying
               | _both_ dynatrace and datadog in the same environment? I
               | don 't think I have ever heard of this combination
               | before.
        
         | sureglymop wrote:
         | They're "great"? Really? Imo the only sane thing is to write
         | CI/CD pipelines in a scripting language like sh. That way it is
         | portable and doesn't depend on one platform. Gitlab CI supports
         | "include" but not for scripts, just for templates. It's hard to
         | have a centralised repository of scripts and include ones to
         | use in a pipeline. I just don't understand why CI/CD couldn't
         | just be in sh...
        
           | nickstinemates wrote:
           | It's funny I started my career building exactly what you
           | suggest. Even in shell. Before adopting Hudson (now Jenkins)
           | and the like.
           | 
           | Bespoke CI/CD solutions are great, especially if you're the
           | author and tailor it to the business, for a certain size and
           | class of use case.
           | 
           | As a business though, it's hardly ever worth the
           | investment/maintenance and ongoing operational cost vs. just
           | externalizing it and dealing with the consequences unless it
           | is your business or a fundamental part of how your business
           | is delivered. Thus, generic (but extensible) solutions are
           | the happy medium.
        
           | mappu wrote:
           | You may be interested in Laminar CI.
        
       | tpmx wrote:
       | I just tried out the AWS offering for CI/CD
       | (CodePipeline/CodeBuild) and was disappointed with time-from-
       | commit-to-deploy (to ECS, although it's the launch/build time I'm
       | primarily concerned with here). It appears to waste 1-3 minutes
       | on just queueing and provisioning a new VM to do the build. It's
       | highly variable, too.
       | 
       | The main tradeoff (if the cost difference is insignificant)
       | between this and a third party service like e.g. CircleCI appears
       | to be between:
       | 
       | a) security (another service that can be comprised - with the
       | implicit capability to instantly deploy something that owns your
       | service)
       | 
       | and
       | 
       | b) latency/performance (CircleCI consistently starts builds
       | within a few seconds)
       | 
       | How do you think about these things?
        
       | lflux wrote:
       | Still no support for arm64 docker executors after years of asking
       | for it.
        
         | mtlynch wrote:
         | Can't you run Docker on an arm64 machine executor?
         | 
         | https://circleci.com/docs/using-arm
         | 
         | I know it's not as convenient as being able to use a docker
         | executor directly, but it seems straightforward to work around.
        
           | lflux wrote:
           | I can and it would require porting my entire CI workflow to
           | machine. We use a lot of docker-executor specific stuff, and
           | if I'm going to spend the time to port several thousand lines
           | of CI config, I can just port it to a different CI platform
           | instead.
        
             | mtlynch wrote:
             | Oh, gotcha. You have CI for multiple architectures already
             | and you want to add arm64? I was thinking it was brand new
             | code you wanted to write, but I get why you wouldn't want
             | to rewrite everything.
        
               | lflux wrote:
               | Just on amd64 right now, we want to move to add support
               | for arm64.
               | 
               | Sadly we adopted CircleCI early on and make heavy use of
               | their support for multiple containers - if you specify a
               | list of containers in a Docker job, it will execute the
               | tests in the first container and connect the other
               | containers as "data" containers (think redis, mysql et c)
               | for use in tests.
        
             | dugab wrote:
             | If you need services for your tests in CI, you might want
             | to look at what Gitlab CI "services"
             | https://docs.gitlab.com/ee/ci/services/
        
       | mtlynch wrote:
       | I've been a CircleCI customer for 3 years. I'm interested in
       | moving from Github to Gitlab, as I'm philosophically more aligned
       | with Gitlab.
       | 
       | I tried out CircleCI's Gitlab integration a few weeks ago during
       | the public beta, and it felt like CircleCI was really phoning it
       | in.
       | 
       | The instructions led me down paths where the product would just
       | break. It told me to connect CircleCI to Gitlab through OAuth,
       | and then my first build immediately died asking for a personal
       | access token.[0] I generated a PAT instead, and then CircleCI
       | failed my build because it was provisioning an empty SSH private
       | key.[1]
       | 
       | They had a channel for reporting bugs with the integration, but
       | it doesn't create a real support ticket. Their feedback channel
       | was just their public Canny feature request board. I submitted my
       | feedback anyway, and they didn't respond for over two weeks, at
       | which point the response was basically just, "Oh, we fixed a lot
       | of bugs, so maybe we fixed yours. Can you delete everything and
       | try again?"
       | 
       | [0]
       | https://twitter.com/deliberatecoder/status/15430630495982714...
       | 
       | [1] https://circleci.canny.io/gitlab-vcs-experience-
       | feedback/p/n...
        
         | pojzon wrote:
         | In case you consider Gitlab as an e2e solution or devops
         | platform as a whole:
         | 
         | Why would you need CircleCI?
         | 
         | Gitlab can work as a full CICD platform.
        
           | mtlynch wrote:
           | Yeah, I'd like to, but I found Gitlab's CI to be a
           | substantial step down from Circle's CI product. I elaborated
           | a bit more in another comment:
           | 
           | https://news.ycombinator.com/item?id=32242463
        
           | ollien wrote:
           | Can Gitlab CI use CircleCI workflows? There's less risk in
           | just changing your VCS platform, rather than both your VCS
           | and CI/CD at once, especially if you have to rewrite all your
           | workflows.
           | 
           | Obviously something like Dagger[1] solves this, but I don't
           | know how widely used that is at this point.
           | 
           | [1] https://dagger.io/
        
         | candiddevmike wrote:
         | What does it mean to be more philosophically aligned with one
         | corporation vs another?
        
           | CameronNemo wrote:
           | Maybe more philosophically aligned with the _product_ ,
           | rather than the corporation behind it. Microsoft is slowly
           | turning GitHub profiles into networking tools and the core
           | SCM offering into a social media experience. GitLab is
           | similar in some ways, but not quite as aggressive about it in
           | my view.
        
             | jeremyjh wrote:
             | Github has always had a social media aspect. Profiles,
             | stars, feeds, followers have been there since early days.
             | One of their tag lines was "social coding".
        
             | 999900000999 wrote:
             | Whenever I want to view my private repos, I have to
             | navigate a painful UI first.
             | 
             | I'm given badges, and other gamification crap.
             | 
             | Then again, when I publish my projects I tend to post them
             | either here or on Reddit.
             | 
             | Maybe Microsoft, with some justice, wants a cut of the
             | traffic?
        
           | TAForObvReasons wrote:
           | GitLab offers a free and open source self-hosted "community
           | edition" and understands it to be in their strategic
           | interests to continue with the open source offering. GitHub
           | does not offer it and does not appear to believe that an open
           | source self-hosted offering is in their best interests.
           | 
           | Supporting GitLab on those reasons alone, and choosing to pay
           | for GitLab Enterprise Edition because they offer the
           | Community Edition, is "philosophically aligned"
        
           | djbusby wrote:
           | That the buyer believes in the same thing the company
           | "believes" in.
           | 
           | Eg: GitLab has an open-core product and GitHub is owned by
           | (evil?) Microsoft.
        
             | robertlagrant wrote:
             | Also the company is incredibly open, with lots of its
             | documentation and meetings done in public and available on
             | YouTube. Pretty interesting.
        
           | mtlynch wrote:
           | I like many things Gitlab does: open-sources most of their
           | product, publishes their documentation openly, promotes
           | remote work.
           | 
           | I strongly dislike some of the things that Github does: suck
           | up open-source code and re-sell it through Copilot, stifle
           | competition by offering free services that their non-MS-owned
           | competitors can't afford to offer.
           | 
           | I don't think either one is purely good or purely evil.
           | Overall, I like both companies better than average, but I'd
           | rather support Gitlab.
        
             | bloppe wrote:
             | The co-pilot concern I get. I think the root of the problem
             | is that everybody seems to have almost signed away their
             | copyright to GitHub as part of their terms of service:
             | https://fossa.com/blog/analyzing-legal-implications-
             | github-c... "If you look at the GitHub Terms of Service, no
             | matter what license you use, you give GitHub the right to
             | host your code and to use your code to improve their
             | products and features"... yeesh
             | 
             | I don't really agree with the concern that they "stifle
             | competition by offering free services that their non-MS-
             | owned competitors can't afford to offer". GitLab is clearly
             | able to differentiate with with their terms of service, as
             | evidenced by your and others' comments here. I don't fault
             | the vast majority of FOSS developers, especially those
             | using permissive MIT-style licenses, for favoring cost-
             | efficiency over control. It's good to have both options.
        
             | hawaiianbrah wrote:
             | GitHub also promotes remote work. Most of the company is
             | remote and will always be remote.
        
               | mtlynch wrote:
               | That's fair, but I think Gitlab promotes it more
               | strongly. They're 100% remote, and they publish guides
               | teaching other companies how to replicate their remote-
               | first setup:
               | 
               | https://about.gitlab.com/company/culture/all-
               | remote/guide/
        
               | soneca wrote:
               | Gitlab advocates for paying local salaries. That's
               | actually against my "philosophy" as you put it, as it is
               | against my direct interest, being a non-US based software
               | developer.
               | 
               | Their way to promote remote work is, ironically, hurtful
               | to my prospects as a remote worker.
        
               | CSMastermind wrote:
               | Yeah location based salary discrimination is one of the
               | biggest issues in our industry in my opinion. I'm really
               | hoping that the move to more remote-forward working
               | cultures spurred by Covid will lead to this being
               | corrected.
        
               | mtlynch wrote:
               | That's fine. I'm not trying to convince anyone that
               | Gitlab is the messiah or anything. Someone just asked me
               | why I align more philosophically with Gitlab than Github,
               | so I explained what appeals to me personally.
               | 
               | If they don't align with your philosophy, that's cool
               | too. You get to choose how that affects your choice of
               | VCS/CI provider.
        
               | forty wrote:
               | Overpaying remote workers compared to the local market is
               | bad as it create distortion of local markets (on housing
               | especially where local non remote workers cannot afford
               | living where they work).
               | 
               | (I'm a remote worker outside of the US and my personal
               | interest would be to be paid more, but I don't believe it
               | would be the general interest)
        
               | Benjamin_Dobell wrote:
               | This line of reasoning doesn't consider equity, and the
               | fact that people _want_ to move - especially out of low
               | socioeconomic areas. If you 're paid a local wage,
               | there's basically no way you'd ever be able to relocate
               | to somewhere more expensive since selling your house
               | wouldn't put a dent in the price of a home elsewhere.
        
               | ok_dad wrote:
               | Gitlab should just offer to cover moving expenses for
               | employees 1 time per X years, then even the poorest-paid
               | person working there would have that freedom (aside from
               | any immigration concerns). I don't think it's in their
               | best financial interests, but would cost maybe 10k at
               | most and whatever the additional salary per year is and
               | garner more support for their "local pay scale" strategy.
        
               | inferiorhuman wrote:
               | Sure, but paying a high wage relative to the local
               | prevailing wage is different than paying the same high
               | wage everywhere. _Part_ of the problem in the Bay Area is
               | that tech companies distorted the local wages so
               | dramatically.
        
               | criley2 wrote:
               | People are going to min-max whatever system you offer. If
               | you don't pay equally and you adjust for cost of living,
               | people are likely going to go for high CoL locations and
               | make you pay the most. If you don't adjust for CoL,
               | you'll likely see your devs leave high CoL areas for
               | lower ones. While you might be "overpaying" them
               | according to their chosen CoL, you're likely underpaying
               | what the high CoL would have demanded.
               | 
               | It seems counter-intuitive but I imagine that not doing
               | CoL adjustments actually lowers total payroll.
        
               | inferiorhuman wrote:
               | I interviewed with Github recently (a pretty mediocre
               | experience overall) and it seemed like they've fully
               | committed to remote work. They don't even bother with on
               | site onboarding anymore.
        
             | IfOnlyYouKnew wrote:
             | I feel GitHub is the best thing that ever happened to the
             | Open Source Community.
             | 
             | Before, it was freshmeat and, for collaboration, arbitrary
             | mailing lists each enforcing their same "standards" to send
             | in patches. I can only assume the process was sometimes
             | smooth, sometimes terrible. In any case: I never did it.
             | 
             | In the GitHub era, I have regularly made pull requests.
             | Small ones on a maybe weekly basis, larger ones twice a
             | year or so.
             | 
             | I feel confident in the estimate that the number of
             | contributors has grown by at least an order of magnitude,
             | and that GitHub was a significant factor in this
             | development.
             | 
             | Gitlab, meanwhile, started out as so obvious a clone their
             | CSS still had classes named "gh-large-..." months after
             | launch. Then, they would frequently have the audacity to
             | complain when GitHub copied some minor feature they had
             | first implemented.
        
               | dijit wrote:
               | Github is social media for code; which is great for
               | discovering things or fly-by addons..
               | 
               | Social media in the workplace is not as great, ask anyone
               | using facebooks communication platform:
               | https://www.workplace.com
               | 
               | I much prefer working with gitlab as a product 9hours a
               | day on internal systems.
        
       | superb-owl wrote:
       | TIL CircleCI didn't support GitLab. I'm surprised it took them
       | this long.
        
         | mtlynch wrote:
         | It's been their most requested feature for a long time:
         | 
         | https://circleci.canny.io/cloud-feature-requests?sort=top
        
       | bdcravens wrote:
       | Isn't one of the main selling points of Gitlab their built-in CI?
       | Anyone using Gitlab use an external CI?
        
         | ramoz wrote:
         | They offer a whole kitchen sink at this point and honestly it's
         | not great.
        
           | cyberpunk wrote:
           | I really like GitLab's CI. Actions is probably winning the
           | war, though.
        
             | pas wrote:
             | GitLab CI can launch multiple pipelines on the same
             | push/trigger (use separate files, like GH Actions, etc),
             | but even after using it for I don't even know how many
             | years I'm still struggling with setting it up in a nice
             | way.
        
             | freedomben wrote:
             | Actions does seem to be winning, but having used both
             | extensively I'm convinced that it's on name recognition
             | alone (with pricing being a second). Gitlab CI is my
             | favorite of the many I've tried (gitlab, circle, travis,
             | github), Actions is probably my least preferred. It gets
             | the job done but there are always a lot of actions-specific
             | stuff for every job, whereas with most of the others
             | they're relatively portable. Actions feels like it was
             | designed with lock-in as a primary goal.
        
         | mtlynch wrote:
         | It appeals to me as someone who likes Circle's CI offering but
         | wants to move away from Github.
         | 
         | I tried using Gitlab's CI and was surprised at how limited it
         | was. The Gitlab CI syntax was harder to follow, and my
         | integration tests took 17m to run when they ran in almost 1/3
         | the time on Circle.
         | 
         | A big part of the problem was that CircleCI lets me use an
         | instance with 8 CPUs / 16 GB RAM with just a config file
         | change[0], whereas every Gitlab instance is 1 CPU / 3.75 GB RAM
         | unless you host your own runners.[1] But if I'm paying a
         | company to manage CI, I don't want to provision my own hardware
         | infrastructure
         | 
         | [0] https://circleci.com/docs/configuration-reference#docker-
         | exe...
         | 
         | [1]
         | https://docs.gitlab.com/ee/ci/runners/saas/linux_saas_runner...
        
           | judge2020 wrote:
           | Related, GitHub has had 'use more powerful hosted runners' in
           | the pipeline for over 2 years[0]. This issue replaced another
           | now-deleted issue[1] from July 2020.
           | 
           | Really disappointing, as I've had to resort to using `az vm
           | start` -> run -> `az vm deallocate` to use an on-demand
           | powerful runner.
           | 
           | 0: https://github.com/github/roadmap/issues/161
           | 
           | 1: https://github.com/github/roadmap/issues/95 (note: added
           | `ga` `ae` and removed `beta` `cloud` labels on Oct 13, 2020 ;
           | the previous text: https://web.archive.org/web/20200731200411
           | /https://github.co... )
        
             | robertlagrant wrote:
             | As a former CircleCI customer (my new employer uses Gitlab)
             | I can highly recommend them. They make that issue so easy.
             | You can even request GPU machines and it all works really
             | well.
        
               | Dracophoenix wrote:
               | Why are you a former customer?
        
             | thinkafterbef wrote:
             | I'm a bit biased as one of the founders of BuildJet, but we
             | solve this exact issue.
             | 
             | BuildJet for GitHub Actions, plugs elegantly into GitHub
             | Actions. With 1-line change in your config, you get 2x
             | speed for half of GitHub's price.
             | 
             | Check it out @ https://buildjet.com/for-github-actions
        
               | stusmall wrote:
               | Oh this is good. I couldn't find it in your documentation
               | but how big are the disks on these VMs?
        
               | jacooper wrote:
               | Quick question, why does every startup on earth have
               | google as a customer? Shouldn't a company of this size
               | have its own solutions and programs?
               | 
               | This is in no way a deg against your project, its just a
               | general question .
        
               | judge2020 wrote:
               | I imagine non-core-product teams at Google are encouraged
               | to submit purchase requests for any tools they think
               | would improve their processes instead of being
               | constrained to existing solutions. They also could just
               | be showing it because someone with an @google.com has a
               | paid account, but I don't know for sure :)
        
         | mqus wrote:
         | We're using gitlab with (on-premise) jenkins. It seems just
         | much more capable (and if we choose to switch away from gitlab
         | it won't matter)
        
         | philwelch wrote:
         | My last job used Gitlab _as_ an external CI.
        
         | superb-owl wrote:
         | Funny, I was gonna say the same thing. But I also remembered
         | GitHub now has built-in CI (Actions).
         | 
         | I wonder if Circle is struggling to maintain market share.
        
           | danielvaughn wrote:
           | With all the built-in support for CI, I'm not sure how
           | CircleCI is even operating anymore.
        
         | avip wrote:
         | Using built-in gitlab ci. It's definitely good enough for my ci
         | needs. Setup was easy. Love having less tools involved in my
         | day2day.
         | 
         | Some features seem to work incorrectly (ex. some combinations
         | of branch filter rules + file changes rules). Or I misread the
         | docs. For a free service it gives excellent value.
         | 
         | Circleci also good product. But having 1 less "thing" wins over
         | most other considerations for me.
        
         | mdaniel wrote:
         | As a long-time GitLab CI user, I do miss how the local circleci
         | runner binary _just worked_. I am aware of gitlab-runner but it
         | is a sick joke designed to mislead folks who just skim the docs
         | into believing that they have a local execution story
         | 
         | Or, I guess a more conciliatory stance is: wow, folks must be
         | using some pretty hello-world pipelines if `gitlab-runner exec`
         | works for you
        
           | goodoldneon wrote:
           | We provision our self-hosted runners via Terraform and
           | GitLab's Helm chart. It's a relatively painless setup, but
           | obviously not a few button clicks and commands
        
             | mdaniel wrote:
             | > a local execution story
             | 
             | I can see how "local" can have multiple meanings, but here
             | I meant "as a developer on my laptop, can I have local
             | docker run things the way GL is going to run things?"
             | 
             | I hear people say a lot "oh, I just use shell scripts, NBD"
             | but as I said, I'm sure for hello-world setups which don't
             | have any includes or take advantage of GLCI constructs that
             | can work fine, but what rubs me the wrong way is that
             | "gitlab-runner exec" doesn't say "just use shell scripts,"
             | it says "gitlab-runner exec - execute a build locally" and
             | it for sure does not do that
        
       | AtNightWeCode wrote:
       | How can a CI-service not support ANY GIT source? All this garbage
       | surrounding GIT is just baffling.
        
         | mdaniel wrote:
         | I would guess it falls into the "what assumptions does the
         | runner make?" followed closely by "there is no standard for
         | what env-var contains: the current branch, the commit sha, the
         | commit message, the current pipeline identifier, ..." and a
         | bazillion other bits of contextual information
         | 
         | Made worse by: ok, fine, you magically have `eval $(git set-
         | env-from-commit HEAD)`, now how do you report those run results
         | back to the upstream UI, since there is _for sure_ no standard
         | for that
        
         | LukeShu wrote:
         | As much as I want to agree with you, I get it:
         | 
         | - To avoid polling, you want to be able to register a webhook
         | to be notified when pushes happen. You're going to need Git-
         | servicet-specific parsing of the webhook payload, and you
         | probably want to be able to speak a Git-host-specific API to
         | automatically register that webhook to make it easy for users.
         | (Falling back to polling would be good, but few do.)
         | 
         | - If you're a paid product, you definitely need to support
         | private repos. You probably want to be able to speak a Git-
         | service-specific API to set up the credentials to be able to do
         | that `clone`; in GitHub parlance use the API to create a
         | "deploy key", rather than requiring users to manually mint an
         | SSH key, set up a bot account on the Git-service, add the SSH
         | key to that account, and upload the SSH key to the CI-service.
         | (Falling back to being able to provide a raw Git URL and
         | credentials would be good, but few do.)
         | 
         | - To avoid confusing user-account permission mismatches, you
         | probably want to piggy-back on the Git-service's user system;
         | supporting "sign-on with X" and using the Git-service's "is
         | admin of this Git repo" for allowing access to your the CI-
         | service's admin interface for that repo.
         | 
         | - You want to be able to post statuses back to the Git-host.
         | This takes a Git-service-specific API. (Falling back to letting
         | the user provide their own script for posting statuses would be
         | good, but few do.)
        
         | aeyes wrote:
         | Because the integration is entirely built on webhooks and each
         | Git hosting provider has their own.
        
         | jrockway wrote:
         | I doubt there was a problem cloning GitLab-hosted repos on
         | CircleCI before this announcement. But there are plenty of non-
         | Git things that these hosts do; pull requests, status checks,
         | etc. I am guessing that "support for ..." entails all of those
         | extras.
        
       | gmemstr wrote:
       | As an ex-CircleCI employee, this is really exciting because it
       | marks a pretty significant milestone in a particular internal
       | effort. Very much looking forward to what comes after this.
       | 
       | This might strike some as a weird event (Gitlab already has
       | CI/CD!), but it _was_ highly requested and is (probably) of other
       | similar things coming to fruition!
        
       | fariszr wrote:
       | Gitea next please! It would be awesome if Circle CI supports
       | Gitea, which is in need of such an advanced CI/CD provider.
        
       ___________________________________________________________________
       (page generated 2022-07-26 23:00 UTC)