Search Unity

  1. Unity Asset Manager is now available in public beta. Try it out now and join the conversation here in the forums.
    Dismiss Notice

Feedback Unity Cloud Build and Alpha/Beta releases

Discussion in '2021.1 Beta' started by Peter77, Nov 6, 2020.

  1. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    6,609
    I just read that you don't add alpha/beta releases to Unity Cloud Build and I wonder why?

    It seems like the whole Unity + UCB thing is untested until you actually release the final version. But isn't it too late at that point already?

    Having alpha/betas in UCB should allow more people to easily build their existing projects and find (build) issues. Wouldn't this be a good thing for you?
     
  2. demonixis

    demonixis

    Joined:
    Aug 20, 2013
    Posts:
    185
    I agree, I use UCB for every projects, having at least beta could help
     
  3. Thaina

    Thaina

    Joined:
    Jul 13, 2012
    Posts:
    1,163
    Totally agreed

    Sometimes the fixed or required feature come only in beta version

    And not only that, even the latest stable version are not always in cloud build. Currently now 2020.2.3 and 2020.2.4 also not presented in cloud build

    Unity should always release every version on cloud build
     
  4. LeonhardP

    LeonhardP

    Unity Technologies

    Joined:
    Jul 4, 2016
    Posts:
    3,136
    Thanks for the feedback! I've forwarded it internally.
     
  5. Neonlyte

    Neonlyte

    Joined:
    Oct 17, 2013
    Posts:
    516
    If there is a build issue, it’s better to have it on the local machine for faster iteration than on the server. I can’t see why building a project with a beta version on a server can help identifying causes of specific issues beyond knowing if that Unity version would work or not — you’ll still have to download the beta version on local machine which defeats the purpose.
     
  6. Thaina

    Thaina

    Joined:
    Jul 13, 2012
    Posts:
    1,163
    Except unity building could take 10 minutes to 2 hours up to the size of project. Which consume high resource on our local machine, practically render it useless for whole times. I can't even surf internet properly without feeling of annoyance under that time. Not to mention ability to build 2 platforms at the same time even with the basic cloud build. I could build for ios in cloud build while build android version locally

    So cloud build was convenient in many aspect

    Build issue can be found on many difference platform. Especially ios that build issue might be found after building for a hour, or even crash in the app because of build configuration. There was also issue about the need to installing module per platform and much more

    No, build on local did not always give faster iteration than on the server
     
  7. Neonlyte

    Neonlyte

    Joined:
    Oct 17, 2013
    Posts:
    516
    If your computer is weaker than Unity's shared server instance, of course you would not get shorter local build time. On a MacBook I never have problems doing anything else while the build is running.

    Current Unity Teams Advanced plan only gives 1 concurrent build to start with and costs extra to add more, unless you have some older plan that gives 2 concurrent builds.

    The issue with Unity Cloud Build is that it wipes away the import cache once the build is finished. Every time you queue up a build, Unity would start by importing all assets from scratch. That's the behavior of Cloud Build 2~3 years ago when I stopped using it, but I doubt it has since changed because the cache is much bigger to store.

    Even if the cache is preserved between each build on Cloud Build, because OP suggested using Cloud Build to test beta version, the project would have to be reimported entirely anyway when building from a new Unity version.

    If you build on local machine, you will have the cached imports which takes much shorter time to pack for a new build after the first import, so it will be faster than Cloud Build. And now that IL2CPP does incremental build starting in 2020.2, having the cache present is even more important for fast iteration.

    For switching between platforms, configure Cache Server or Unity Accelerator to preserve the import cache.
     
    Last edited: Feb 21, 2021
  8. Thaina

    Thaina

    Joined:
    Jul 13, 2012
    Posts:
    1,163
    It's not related about which machine is weaker. Even my machine can be a bit faster than cloud build, pushing it to cloud build just freeing up my machine to be used on any other task I could switched to. Without the need to build in local I might try to find other bug or glitch not related to build process, until the cloud build finish and ping me to check it

    You need to imagine the actual scenario

    If you just try to understand instead of arguing you will see I have already mention

    > I could build for ios in cloud build while build android version locally

    Which means yes, I use only one slot, for ios. And then I use my own machine to build android which is a lot faster, then I could work only with android in local and always let ios build mainly on cloud build. This is virtually concurrent, not related to concurrent cloud build feature

    Your arguments is invalid
     
  9. Neonlyte

    Neonlyte

    Joined:
    Oct 17, 2013
    Posts:
    516
    Your original sentence was ambiguous on how the 2 concurrent builds are achieved. Plus, in my understanding, I never regard building on local machine as a part of the concurrency.

    I would like to also ask you to read my posts carefully before blanketing my argument as invalid. Again, this thread is about build-testing a project with alpha/beta version which is one of the most risky things when developing a Unity project, and my comments were made under that context.

    More than likely there will be issues, as opposed to just upgrading between builds of the same LTS branch. If there are build issues, it would most likely be API changes or build pipeline changes and it is always faster to compile and test in local editor than pushing to build server, waiting for server queue and reimport every time and crawling through build logs. Then when it comes to play-testing for other issues like visuals, it is always faster to test in editor than waiting for the player build.

    Surely your current workflow works well for you, and if this continues to work fast enough when you iterate your project while doing major Unity version upgrades, especially a pre-release build, you could have disregard my initial post, as that comment was never made specifically against your workflow anyway.
     
    Last edited: Feb 22, 2021
  10. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    6,609
    It allows you to test your game with a new Unity version with little effort early in the alpha/beta process to find regressions, that would otherwise be found too late in the beta cycle, rendering that Unity version useless with your game.

    The last studio I worked for integrated build jobs for Unity beta versions next to the regular build jobs. All this was done with a custom build server, but the idea would be the same with Unity Cloud Build.

    The game was automatically build every night with an Unity beta version and tested by QA every week or so. It allowed coders to fix beta related compile errors/warnings, it allowed QA to find beta related bugs in the game which were often caused by changed behavior or new bugs in Unity and it allowed to provide feedback to Unity Technologies beta channels/premium support early in the beta cycle, increasing chances they actually deliver a product we can use with our game.

    Having a build server building the game for you made this process much simpler than having multiple people to install Unity beta builds locally, wasting time building the game locally, etc. We sometimes had to install Unity beta locally to test certain bugs that weren't obvious. But having a build server doing this for you made it a whole lot easier in many cases.
     
  11. Neonlyte

    Neonlyte

    Joined:
    Oct 17, 2013
    Posts:
    516
    This is the part that I don't think I fully understand. Does this mean that your team developed for two versions of Unity at the same time?
     
  12. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    6,609
    Yes. Getting the second version of Unity running isn't a full-day job though. You need to spend some time at the beginning, but that's pretty much it. Unity Technologies makes it rather easy to get projects running in betas most of the time, at least the ones I worked on so far.

    It's still same project, just with some
    #if UNITY_20XX_OR_NEWER
    to make it compile in that new Unity version. This also allows to quickly spot obsolete/deprecated functionality btw.

    Once you got the project also running in the beta version, it's mostly just QA who have to test the game and programmers have to report bugs to Unity Technologies, if there are any bugs that cause the game to break. If you report those regressions/bugs during the alpha/beta cycle, chances are higher that you don't have to wait another Unity major version for them to fix those bugs.
     
    Neonlyte likes this.
  13. Thaina

    Thaina

    Joined:
    Jul 13, 2012
    Posts:
    1,163
    This is what I said

    > Not to mention ability to build 2 platforms at the same time even with the basic cloud build. I could build for ios in cloud build while build android version locally

    I don't even use the word `concurrent` by myself, you are. And still the `concurrent` don't have been patented by unity or anything. I build one on cloud build, I build another in my machine. It was at the same time so it is con+current

    Opening C# project and write a program to download 2 things while calculating pi and displaying it with `async` and `await` is already writing concurrent program

    So your argument is invalid in every aspect

    It also not related to any risk to use alpha or beta version of unity. Using beta to build project is not risky. Build some game in beta and it can run properly without crashing is usually what's happen to build in beta. Only sometimes there was breaking change in underlying structure

    Sometimes using unity in stable version was broken and the fixed might only exist in beta which means stable version is also at the same risk. This was frustrating me many times in the past and you just don't really know what beta is really capable of

    So your argument is invalid in every aspect. I said every aspect because every bit of your information is wrong. You don't even know what the concurrent really means

    There is also nothing defeating purpose to download unity instance in any version and start or migrate project into it, but then just push it to build in the cloud so we can continue doing any other thing with local machine without the need to wait for building process. This workflow working for everyone. Disk space is not a problem, time is far more precious. We save the build time which can take a hour or more wasted on compilation and aggregation is the most valuable thing cloud build provide us

    So your argument is invalid in every aspect
     
    Last edited: Feb 23, 2021
  14. Thaina

    Thaina

    Joined:
    Jul 13, 2012
    Posts:
    1,163
    Again, today 2020.2.6 was released. Yet it not available in cloud build. Only 2020.2.5 that was released for many days just available yesterday