Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to configure email settings for Xcode Continuous Integration

Tags:

xcode

I've set up Mavericks and OSX Server and have gotten Xcode bots up and running. There's a notification setting on each bot that allows you to email all committers on success or on failure. I've enabled that option and added an additional email address to test.

I can't seem to figure where to configure the email settings (i.e. smtp server, login, password). I've tried enabling Mail on OSX Server and set it to relay outgoing email through ISP, but that didn't seem to help.

Any guidance would be appreciated.

like image 425
Toland Hon Avatar asked Dec 07 '13 00:12

Toland Hon


People also ask

How do I integrate with Xcode server?

Xcode server requires a logged-in user account on the server to perform integrations. It is recommended that this be a dedicated, non-administrative account. If you don’t have a user account for Xcode Server yet, one can be created during the setup process. Launch the Server app (if it’s not already running).

What happened to continuous integration in Xcode 9?

Prior to Xcode 9, using Apple continuous integration tools was a tedious and complex process that required the purchase and installation of an additional macOS Server app. This led many developers to abandon the idea of continuous integration for their iOS projects or resort to third-party solutions, with greatly varying levels of success.

How do I use Xcode on a Mac?

To use Xcode Server, you need to install and configure OS X Server and Xcode on a Mac. You can then write code on a development Mac and allow the server to perform continuous integrations of your software products on a schedule, whenever you commit a change to a source code repository, or manually as needed.

How do I find Xcode server on my Network?

Xcode Server advertises itself over Bonjour on your local network. If you and other team members will access Xcode Server from your local network only, you can use Bonjour to find Xcode Server. If you need the service to be visible more broadly, ask your DNS server administrator to add records for your Mac running OS X Server to a DNS server.


2 Answers

In order for emails to be sent out, all you have to do is set up postfix on your OSX machine.

Here's 2 guides I used when setting it up:

  • http://benjaminrojas.net/configuring-postfix-to-send-mail-from-mac-os-x-mountain-lion/
  • http://slashusr.wordpress.com/2012/02/14/enabling-postfix-for-outbound-relay-via-gmail-on-os-x-lion-11/

Afterwards, the emails got sent out without any issues.

like image 148
Toland Hon Avatar answered Oct 10 '22 01:10

Toland Hon


These instructions are specific to the use case of a Xcode server running on a host not previously set up as a server.

Xcode Server runs as a system user and does not have access to user email settings. When it generates emails, it uses the hostname and domain of the system and queues the email for delivery. Typically, unless the system has been set up as a server, the email goes nowhere from an email address unacceptable to ISPs and other mail providers.

OS X Server on Mavericks comes with a Mail server.

The following step set up the Mail server to relay all system mail to a mail service provider modifying the "From" address to a fixed name.

Step 1: Use the "Server" application and examine the server configuration by clicking on your computer in the server section. Record the "Host Name:".

Step 2: In /Library/Server/Mail/Config/postfix

Add to the file main.cf:

smtp_generic_map = hash:/Library/Server/Mail/Config/generic

Create a file generic:

@<host name> <user name>@<domain name>

Where <host name> is the host name recorded above and <user name>@<domain name> is the email address you want as the source of all emails from this host.

Step 3: Using the "Server" application, set the email relay in Services>Mail. Check Relay outgoing mail through ISP. Click edit to set the parameters.

Step 4: Turn on the mail server.

Step 5: Test from terminal:

bash$ mail xxxx@xxxxx
Subject: Test
Test
.
bash$
like image 22
David Bernard Avatar answered Oct 10 '22 03:10

David Bernard