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

Support for latest OS versions? #8922

Open
JustArchi opened this issue Dec 15, 2017 · 10 comments
Open

Support for latest OS versions? #8922

JustArchi opened this issue Dec 15, 2017 · 10 comments

Comments

@JustArchi
Copy link

JustArchi commented Dec 15, 2017

I'd really appreciate an option to have dist: latest and osx_image: latest that would right now map to dist: trusty and osx_image: xcode9.2, and new versions in the future. Currently I need to manually bump versions every once in a while, keeping an eye on when travis adds given newer version to the CI.

Since I need/want to test my project always in latest available environment during build, it would be really cool to have an option to do so, even if there is a possibility of new image not being fully tested - everybody using this option should be well aware of those issues in the first place.

Thank you in advance for considering this feature.

@stale
Copy link

stale bot commented Apr 12, 2018

Thanks for contributing to this issue. As it has been 90 days since the last activity, we are automatically closing the issue. This is often because the request was already solved in some way and it just wasn't updated or it's no longer applicable. If that's not the case, please do feel free to either reopen this issue or open a new one. We'll gladly take a look again! You can read more here: https://blog.travis-ci.com/2018-03-09-closing-old-issues

@stale stale bot added the stale label Apr 12, 2018
@JustArchi
Copy link
Author

Well, in case it wasn't obvious enough, this issue is still recent and I still want to see it in, if possible 🙂

@stale stale bot removed the stale label Apr 12, 2018
@macmade
Copy link

macmade commented Jun 8, 2018

Agree... Default macOS image is pretty old.
Xcode 8.3 was release in March 2017. Lots of things have happened since then.

I understand that providing an old version might be the best "default" option.
But using fixed versions in the configuration file is often not an option.

If I fix the version in my configuration files, I'll have to update them each time a new version is out.
Which is really painful, as I always want my builds to run on the latest SDKs.

osx_image: latest is the way to go...
Please add support for this.

@BanzaiMan
Copy link
Contributor

When the latest images as defined in this way change, I expect that there are enough significant changes to the image that human intervention is desirable.

@JustArchi
Copy link
Author

JustArchi commented Nov 13, 2018

@BanzaiMan I don't think it's as severe as you suspect. My current csharp project can be built on any version of linux (precise, trusty, xenial) and any version of xcode released until now, because the dependency is on the .NET Core SDK itself and not necessarily the underlying OS and its packages.

Sure, there obviously will be some changes for at least several projects, and this is why this setting will not be default or recommended but only a way for us to declare that we're always targetting latest versions regardless.

In my case, I want to use latest unless there is some problem with it, and if there is some problem then very likely it's travis-related problem and not my build problem. I'm pretty sure that there are more repos like that, as more and more projects start to depend less and less on underlying OSes. If somebody has a project that builds I don't know, docker images for example, then most likely he doesn't care if his X version of docker runs on ubuntu 12, 14, 16, or 18, it's the docker version that matters for him, and that one is already available with :latest (I'm looking at nodejs here for example). It's kinda weird to me that we allow latest runtimes and frameworks to be used, but we do not allow latest OSes that ship with them.

I'm bumping OS versions on usual basis, just today bumped trusty to xenial and xcode10 to xcode10.1, no issues whatsoever, as I had in precise->trusty and all older versions of xcode.

@macmade
Copy link

macmade commented Nov 13, 2018

I completely agree with @JustArchi

Most on my macOS/Xcode projects target the latest SDKs.
As Travis default image is quite old, it means I have to specify a newer version on my .travis.yml file, on each project.

And when a new version is out, it means I have to manually update each project to specify the latest version.

Otherwise, builds will continue running with on an old system, and any issue introduced by the new SDK won't be reported...
This defeats the CI concept IMHO...

@codygman
Copy link

codygman commented Dec 2, 2019

I also need this my test environment matches my actual deploy environment. osx_image:latest is a pretty tall ask, but if you can provide support for OSX 10.15.1 Catalina I'm sure a lot of people would be pretty happy.

@mpdifran
Copy link

I too would like to ask for a latest option, we're manually updating our travis scripts whenever there's a new Xcode out.

@umlaeute
Copy link

here's a "us too".

we usually do not touch the CI-configuration in our project at all. and this works nicely on Windows and all kinds of Linux flavours with different CI providers.
However, macOS is somewhat special with their aggressive deprecation strategy, and brew follows it.
This basically means that an OS-image that is able to build a project in a CI-environment right now, won't be able to build the project in two-three years from now - at least not if it has any external dependencies.
the reason being that those external dependencies can no longer be installed via homebrew - either because they need to be recompiled from scratch (which is not feasible in a CI-environment) or because brew simply refuses to work.

I just pushed a project that contains not much more than:

matrix:
  include:
    - os: linux
    - os: osx

addons:
  apt:
    packages:
      - libasound2-dev
      - libjack-dev
  homebrew:
    update: true
    packages:
      - libtool

script:
- make

The macOS-build happily fail with:

Warning: You are using macOS 10.13.
We (and Apple) do not provide support for this old version.
You will encounter build failures with some formulae.
Please create pull requests instead of asking for help on Homebrew's GitHub,
Twitter or any other official channels. You are responsible for resolving
any issues you experience while you are running this
old version.

Warning: Your Xcode (9.4.1) is outdated.
Please update to Xcode 10.1 (or delete it).
Xcode can be updated from the App Store.
Warning: A newer Command Line Tools release is available.
Update them from Software Update in the App Store or run:
  softwareupdate --all --install --force
If that doesn't show you any updates, run:
  sudo rm -rf /Library/Developer/CommandLineTools
  sudo xcode-select --install
Alternatively, manually download them from:
  https://developer.apple.com/download/more/.

No output has been received in the last 10m0s, this potentially indicates a stalled build or something wrong with the build itself.
Check the details on how to adjust your build configuration on: https://docs.travis-ci.com/user/common-build-problems/#Build-times-out-because-no-output-was-received

The build has been terminated

so: please provide a way to pull a usable image for OSX.
I don't really care about getting the very-latest all thrills system, but one that allows me to follow the official travis-ci instructions on The macOS Build Environment (give a generic name for the image (item 2: Using macOS); install dependencies (item 4: Homebrew) - it's not like those top-items in your documentation are weirdo edge cases...

@rleigh-codelibre
Copy link

As @umlaeute commented, the default (from the docs) "Travis CI uses macOS 10.13 and Xcode 9.4.1 by default." is now broken by default. The default should be functional. The current default is broken. It would be useful if the default tracked the current macos release and xcode release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants