Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for testing against a specific Xcode version #609

Merged
merged 2 commits into from Apr 12, 2019

Conversation

Projects
None yet
3 participants
@philwo
Copy link
Member

philwo commented Apr 12, 2019

@philwo philwo requested a review from fweikert Apr 12, 2019

@philwo philwo force-pushed the xcode-version branch from ba38085 to 8b98f0e Apr 12, 2019

xcode_version: "10.2"
build_targets:
- "..."
```

This comment has been minimized.

Copy link
@sergiocampama

sergiocampama Apr 12, 2019

Member

what's the policy going to be going forward? internally, we use the latest 2 minor versions, plus the last available version of the previous major version.

for example, if this is what would be available internally:

  • 10.2.1 <--
  • 10.2.0
  • 10.1.2 <--
  • 10.1.1
  • 10.1.0
  • 10.0.1
  • 10.0.0
  • 9.4.1 <--
  • 9.4.0
  • 9.3.1
  • 9.3.0

This simplifies the support needed to have multiple versions of Xcode.

One thing I'd like to point out, is to mention this Xcode version support specifically as a solution to avoid being broken because of latest Xcodes, but that the general policy is to not specify an Xcode version at all so that the default can be upgraded by your team more easily over time. If all clients start specifying the Xcode version, then it will be more work for your CI team to migrate to newer Xcode versions, as you'll also need to update client configs.

This comment has been minimized.

Copy link
@philwo

philwo Apr 12, 2019

Author Member

Good question. Let's say that the policy is that we won't remove Xcode versions for now, until it becomes a problem to do so. Recently Apple doesn't seem to release patch-level versions of Xcode, but if they start doing so, we could just adopt your scheme.

Do you think it's reasonable to just automatically transform e.g. "10.2" in a config file to "10.2.1" in case Apple releases that patch level version? Then we could simplify the regex to only allow MAJOR.MINOR and just always pick the latest patch-level version for that.

This comment has been minimized.

Copy link
@sergiocampama

sergiocampama Apr 12, 2019

Member

that depends on whether you'll have 10.2.0 and 10.2.1 at the same time. I'd recommend not having them at the same time, and when 10.2.1 comes out, replace 10.2.0 with the new one. Otherwise, specifying 10.2 is going to be confusing since there are 2 versions that match.

This comment has been minimized.

Copy link
@philwo

philwo Apr 12, 2019

Author Member

Yes, my idea would be that users just don't care about the patch-level version in their configs. They just say "xcode_version: 10.2" and that just maps to the latest patch-level version installed on the machine, whether that's 10.2, 10.2.1 or 10.2.2. The CI log would also show the exact version including the patch level.

Yeah, I would only keep the latest patch-level version of each MAJOR.MINOR pair.

Does that make sense?

This comment has been minimized.

Copy link
@sergiocampama
@philwo

This comment has been minimized.

Copy link
Member Author

philwo commented Apr 12, 2019

Show resolved Hide resolved buildkite/bazelci.py Outdated

philwo added some commits Apr 12, 2019

Protect against cache poisoning by including the Xcode version and pa…
…th in the host_platform_remote_properties_override

@philwo philwo force-pushed the xcode-version branch from 3e25d56 to 892ee13 Apr 12, 2019

@philwo philwo merged commit 380f1e6 into master Apr 12, 2019

2 checks passed

buildkite/continuous-integration Build #24 passed (17 seconds)
Details
cla/google All necessary CLAs are signed

@philwo philwo deleted the xcode-version branch Apr 15, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.