7 ms·
Xcode Cloud, to me, tells me how Apple doesn't understand building tools for developers in 2021. (Their internal tooling notwithstanding.) Contrary to the other
by AaronFriel 5y ago
Xcode Cloud, to me, tells me how Apple doesn't understand building tools for developers in 2021. (Their internal tooling notwithstanding.) Contrary to the other major cloud providers and the tooling they offer...
Xcode Cloud requires you to push your repository to their servers, and you have to configure the "Workflows" via their desktop application. No configuration as code, no shell scripts you can run from your existing CI/CD, no ability to trigger a build remotely or push code to them on demand. You can't even synchronously wait on a build to finish - you have to set up a web server and listen for a webhook! You can't integrate it with your existing CI/CD - whether that's GitHub Actions, GitLab pipelines, etc.
In other words, their build tooling does not integrate with any devops infrastructure that exists in the world.
It's like they asked devops engineers what the state of the art is (declarative configuration, scriptable builds) and said, "we'll not be doing that, thank you very much."
Why oh why couldn't they have taken a page out of Google Cloud Build or Azure build and allowed me to "build" a Dockerfile using a local CLI command in their cloud? Or AWS CodeBuild and let me push code or a tarfile to a storage bucket (or pipe it to a CLI command)?
- jak1192 5y agoTheir offering is for upstarts who don’t have any existing devops infrastructure
- Lammy 5y ago> Xcode Cloud requires you to push your repository to their servers […] You can't even synchronously wait on a build to finish - you have to set up a web server and listen for a webhook! It's interesting how the outcomes of Apple's engineering decisions are coincidentally indistinguishable from an attack on general-purpose computing itself. I wonder how many more years it will be until they stop shipping me a compiler entirely (never worry about confusing Xcode updates again!!) and make Xcode Cloud the only way to write software for iOS devices and M1 Macs. LLVM's licensing means I'm not even entitled to the changes necessary to support their custom hardware. https://boingboing.net/2012/08/23/civilwar.html https://boingboing.net/2012/08/23/civilwar.html
- deleted 5y ago[deleted]
- nexuist 5y agoDoes it matter? As long as you can run gcc/Python/node/whatever you can always build software for macOS.
- chipotle_coyote 5y ago> I wonder how many more years it will be until they stop shipping me a compiler entirely. Probably never, especially with respect to Macs. I am beginning to feel like the cranky contrarian around here for continuing to argue that macOS will never be locked down to the degree iOS is, but I'm going to continue to argue it. You will always be able to develop locally on your Mac, always be able to get to a shell, always be able to install third-party apps without going through the App Store.[1] But, Xcode Cloud (I nearly typed "Xcloud," hmm) might eventually become what they use as a solution to allow Xcode on the iPad. That would allow them to stick with their "iPads are app consoles" philosophy, even if it might be bending it a little. [1] With the asterisk that I firmly believe there's a new OS that will replace both iOS and macOS down the road, and I'm not willing to make any strongly-worded predictions about its security model. Yet.
- Lammy 5y ago> You will always be able to develop locally on your Mac, always be able to get to a shell, always be able to install third-party apps without going through the App Store. The infrastructure to grant/deny use of specific applications to individual users has existed in macOS for years if they wanted to use it that way. Their server just currently gives the same answer to all requests for the same signature. https://eclecticlight.co/2020/11/25/macos-has-checked-app-signatures-online-for-over-2-years/ https://eclecticlight.co/2020/11/25/macos-has-checked-app-si... How about launching those applications totally privately — no network requests at all? Spoiler: `sudo spctl --master-disable`. Luckily we're still allowed root on ARM Macs for now :)
- chipotle_coyote 5y ago
- thinkingkong 5y agoThis feature is most likely just a wrapped version of buddybuild, which Apple acquired in 2020.
- nexuist 5y ago> You can't integrate it with your existing CI/CD Isn't that the point? It _is_ your new CI/CD. If you don't want it, don't use it. I don't really see why any team would go all in on Xcode Cloud and keep their old CI infrastructure around - why split responsibilities between platforms?
- jolux 5y agoWell past a certain scale you almost certainly have infrastructure that isn’t an iOS app.
- Elidrake24 5y agoI think you’re lost in a team with a king’s share budget; this sounds fantastic to me, if they pull it off. CI system that doesn’t require me to put in a week of work at the beginning of every project, a few days to maintain as the months go on? And it is part of the ‘value proposition’ of what I’m already having to pay for in our shop?
- azinman2 5y agoI don't think this is actually true, but maybe I misunderstood the SOTU presentation. My understanding was that there were APIs exposed, and that Apple won't be hosting git repos themselves? Correct me if I'm wrong here...
- radiKal07 5y ago> Xcode Cloud requires you to push your repository to their servers What do you mean? It says it supports BitBucket, GitHub and GitLab.
- AaronFriel 5y agoThe desktop application supports you giving the app your credentials to BitBucket, GitHub, and GitLab, whereby it then uses your credentials (it uses your username and password instead of an API key or SSH key??????). See the docs here: https://developer.apple.com/documentation/xcode/configuring-xcode-cloud-for-your-team#Ask-Team-Members-to-Use-Xcode-Cloud https://developer.apple.com/documentation/xcode/configuring-... > This step is necessary because Xcode Cloud uses your personal SCM account to monitor the Git repository for changes. From that point on, Xcode Cloud polls/monitors the repo for changes, but it does so in a way that doesn't integrate with CI/CD.
- egghese 5y agoI agree that the preview of Xcode build looks it is very tightly integrated with Xcode >Xcode Cloud requires you to push your repository to their servers, and you have to configure the "Workflows" via their desktop application. The code still lives with your preferred Git hosting provider. Xcode Cloud copies/clones the code just like any conventional CI. Once the build is done, Apple claims to remote/delete any copy of it. > No configuration as code, no shell scripts you can run from your existing CI/CD, no ability to trigger a build remotely or push code to them on demand. You can't even synchronously wait on a build to finish - you have to set up a web server and listen for a webhook! You can't integrate it with your existing CI/CD - whether that's GitHub Actions, GitLab pipelines, etc. I will reserve my comments about inter-op till they release their API and I get to play with it. Xcode Cloud seems to be a blessing for iOS developers who don't have exposure to CI/CD systems. And that includes most iOS developers. And also it will be a blessing for companies since hiring good CI/CD engineers for iOS is really hard. My personal view is, Xcode cloud does a lot of things what fastlane was doing using Apples Cloud infrastructure.
- ribit 5y agoThis is all true, but I don't think that they are positioning this "Xcode Cloud" as an all-purpose continuous integration platform. It's really only for folks building iOS/macOS apps using standard templates and workflows. An opinionated, convenient, zero-configuration toolchain that automatically integrates with the rest of the ecosystem does sound like it would simplify project management for many developers, while folks who needs something more advanced can always use more flexible third-party tools.
- nhoughto 5y agoBiggest problem with iOS in CI is limited build primitives, some providers have macOS options, macstadium is a thing, Anka helps but it’s all so hard! Waaay harder than building stuff on Linux. Apple can wave it away but making it harder means iOS CI is going to be behind forever. They had a chance to try and help close that gap and even charge for it, I’d rather not have to setup macstadium, configure Anka controller and pull 20gb+ images.. just solve my problem for me..
- dkarp 5y agoAgreed and this has been true forever. The incredible amount of work that has to go into https://github.com/fastlane/fastlane/releases https://github.com/fastlane/fastlane/releases always impresses me. APIs and authentication is ever changing all because Apple refuse to embrace modern devops. They have this idea that apps are produced by lone devs in their bedrooms and the process is designed for them.
- pjmlp 5y agoWhich is how a large majority of native apps on iOS are developed. Not everyone needs 100 team members for a messaging app.
- dkarp 5y agoSure, there are loads of independent developers and that's great and tooling should work for them. The majority of the top 100 native iOS apps are developed by teams of people working together. Apple unnecessarily makes it difficult for that group, which creates a barrier to entry for more sophisticated app development which is bad for the ecosystem.
- pjmlp 5y agoMost of those already have their own in-house solution, https://uk.pcmag.com/gallery/130620/the-best-iphone-apps-for-2021 https://uk.pcmag.com/gallery/130620/the-best-iphone-apps-for...
- dkarp 5y agoI'm not sure what you're saying with that link. Can you clarify?
- pjmlp 5y agoThe top 100 are those classical 100 people team for a message app kind of companies, hardly the target market of this feature, they already have their DevOps pipeline using Terraform with K8s on Kata Containers, and immutable builds that scale across the cluster.
- pjmlp 5y agoI think it is the other way around, most shops I work with would be more than happy with such tooling, they don't want to pay for DevOps experts nor deal with stuff like TerraForm or ARM Templates. Apple is coming from the IDE as main tool, as they always have done since Mac Classic.