Skip to content

Latest commit

 

History

History
67 lines (42 loc) · 3.38 KB

README.md

File metadata and controls

67 lines (42 loc) · 3.38 KB

iOS Tart images

Repository containing macOS images for Tart, heavily inspired by cirruslabs/macos-image-templates.

Images

We currently use 2 images - macOS base and Ackee Xcode. Both are build and distributed using Github Packages so they can be easily pulled using Tart. If you need to you can build them using Packer.

In general we would prefer having more images with more granular additions, but that is too time and space consuming, so we sticked with just two.

macOS Base

Almost macOS vanilla image that adds a few things to make further image extension simple - adds Homebrew and rbenv with some more stuff.

It is good to know that in cases of macOS pre-releases, Homebrew might be omitted as it requires Xcode Command line tools and beta releases often require beta Command line tools that are not easily accessible, in those cases will Homebrew be present in the Ackee Xcode image.

This image is versioned based on the system version, so current (Feb 2024) macOS Sonoma is versioned as macos-base:14.3.1, also latest tags will point to the latest stable version available. So it is possible that tag macos-base:14.3.1 will be moved if we need to make any changes in it, if you need to fixed version, you should use image's SHA instead of a version. Latest tag moves by design.

Ackee Xcode

This image contains pretty much everything that is required by our stack to be installed on the machine mainly:

This image is versioned based on Xcode version. Latest tag points to the latest stable version. As in macOS-base image, tags can be moved if we need to make any changes in it, for fixed version specify image's SHA. You can also use a v-prefixed tag that will ensure latest minor/bugfix version for specified major version, so using v15 would point to latest published 15.x.x.

Build notes

To be able to build the image using Packer, you are expected to specify xcode_version variable and you are also expected to have ~/Downloads/Xcode_{xcode_version}.xip downloaded.

After Packer is installed you also need Tart plugin for Packer.

packer plugins install github.com/cirruslabs/tart

And finally to build this image you would run

packer build --var xcode_version=<xcode version> ackee-xcode.pkr.hcl

Publish

To publish the image to the remote so everyone on the team can use it, you have to at first login Tart to the remote.

tart login ghcr.io

As a username use your Github username and as a password you need to generate new Personal access token.

Once you're successfully logged in just run

tart push <image>:<tag> ghcr.io/ackeecz/<image>:<tag>

where <image> is the name of the newly created image and <tag> is the version. It's gonna take a while, so be patient. 💪