Skip to content

Commit

Permalink
BE-2005 Add a macOS VM installation tool that can run in the backgrou…
Browse files Browse the repository at this point in the history
…nd (#186)
  • Loading branch information
burakberkkeskin authored May 13, 2024
1 parent 3f5a0aa commit 330e85b
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 3 deletions.
4 changes: 2 additions & 2 deletions docs/release-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import CloudBadge from '@site/src/components/CloudBadge';

# Latest Release Notes

## 3.16.0 - 2024-05-10 - New features in Publish Module, Resigning Binary, Xcode 14.1, and more
## 3.16.0 - 2024-05-10 - New features in Publish Module, Resigning Binary, Xcode 15.4, and more

### 🆕 New Features

Expand All @@ -34,7 +34,7 @@ import CloudBadge from '@site/src/components/CloudBadge';
- Users can now prepare and transmit screenshots and metadata to the App Store through the newly integrated metadata component. <CloudBadge/> <SelfHostedBadge/>
- Users can now seamlessly import metadata and screenshots from App Store Connect to establish the initial state on the Update Metadata screen. <CloudBadge/> <SelfHostedBadge/>
- The Appcircle runner package now includes a diagnostic tool that helps to identify, analyze, and troubleshoot system issues. <SelfHostedBadge/>
- Self-hosted Appcircle clients can now download and extract the runner macOS VM in the background more robustly, particularly in cases of network connection faults. <SelfHostedBadge/>
- Self-hosted Appcircle clients can now [download and extract](https://docs.appcircle.io/self-hosted-appcircle/self-hosted-runner/runner-vm-setup#download-the-macos-vm-and-xcode-images-automatically) the runner macOS VM in the background more robustly, particularly in cases of network connection faults. <SelfHostedBadge/>
- The install certificate tool included in the runner package, which trusts CA certificates, now extends support to Java 8, 17, and 21. <SelfHostedBadge/>
- We have added an App Store Status field within Publish Profiles and App Versions lists, providing regular updates at 30-minute intervals. For further details, please refer to the [Store Status](/publish-module/binary-management#store-status) documentation. <CloudBadge/> <SelfHostedBadge/>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,8 @@ Homebrew installs the latest version of Xcode Command Line Tools as a dependency

- `tart` tool (required):

_Tart is a registered trademark of Cirrus Labs, Inc._

```access_list
github.com
api.github.com
Expand All @@ -205,6 +207,13 @@ If you don't want to enable these URLs or you aren’t comfortable with this, yo
storage.googleapis.com/appcircle-dev-common/self-hosted
```

- macOS VM install script (_required if you prefer automatic installation_):

```access_list
cdn.appcircle.io
storage.googleapis.com/storage/v1/b/appcircle-dev-common
```

## Appcircle Server Runtime

Although Appcircle runners are responsible for the submission of iOS apps to the App Store, the server also has some features that need access to the App Store Connect API, like runners.
Expand Down
56 changes: 55 additions & 1 deletion docs/self-hosted-appcircle/self-hosted-runner/runner-vm-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,14 @@ You can ignore power failure settings if they are not supported.

## Download MacOS VM

You have two options to obtain the Appcircle runner images: manual or automated.

To perform these tasks manually, you can follow our step-by-step guide on [downloading the macOS VM image manually](#download-the-macos-vm-image-manually).

Alternatively, you can automate this process in the background by following our instructions on [downloading the macOS VM and Xcode images automatically](#download-the-macos-vm-and-xcode-images-automatically).

### Download the macOS VM Image Manually

:::tip

MacOS VM image has a versioning convention based on release date instead of arbitrary numbers. This date-based approach is called calendar versioning, or CalVer for short.
Expand Down Expand Up @@ -257,7 +265,7 @@ du -sh $HOME/.tart/vms/macOS_240509
</TabItem>
</Tabs>

### Download Xcode Images
### Download Xcode Images Manually

Download Xcode images from the Appcircle bucket. They are disk images for each Xcode version archived in a package.

Expand Down Expand Up @@ -401,6 +409,52 @@ It doesn't support running on older hosts like Monterey, Big Sur, etc.
If you don't need the latest Xcode and you want to run an older version of the macOS VM image that supports running on a Monterey host, contact us through our support channels.
:::

### Download the macOS VM and Xcode Images Automatically

To download and extract the Appcircle runner VM and Xcode images in the background automatically, you can run the command below.

<Tabs groupId="macos-image">

<TabItem value="240306" label="240306" default>

```bash
curl -fsSL -O https://cdn.appcircle.io/self-hosted/download-runner.sh && \
chmod +x download-runner.sh && \
nohup ./download-runner.sh "240306" &
```

</TabItem>
<TabItem value="240509" label="240509">

```bash
curl -fsSL -O https://cdn.appcircle.io/self-hosted/download-runner.sh && \
chmod +x download-runner.sh && \
nohup ./download-runner.sh "240509" &
```

</TabItem>
</Tabs>

:::tip
If you face any errors while downloading the files, please delete the corrupted file and re-run the command block above.
:::

It may take some time to complete with respect to your network speed. You can see and follow the logs with the command below.

```bash
tail -f nohup.out
```

:::info
You can close the SSH or terminal session while the tool is running. The download and extract process will go on in the background.

But be aware that there might be some errors while downloading and extracting the VM image, such as network or disk errors. Please keep an eye on the logs.
:::

:::tip
If no specific image identifier is provided when executing the `download-runner.sh` tool, it will automatically attempt to download the most recent runner images.
:::

## Create Base Images

### Create Base Runner VMs
Expand Down

0 comments on commit 330e85b

Please sign in to comment.