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

Documentation on APPVEYOR_BUILD_WORKER_IMAGE #1469

Closed
mloskot opened this Issue Apr 4, 2017 · 7 comments

Comments

Projects
None yet
4 participants
@mloskot

mloskot commented Apr 4, 2017

TL;TR: The APPVEYOR_BUILD_WORKER_IMAGE was introduced in #1417, but it was not fully documented.


The only doc about this env var is https://www.appveyor.com/docs/environment-variables/ which, kind of, suggests it's read-only variable.

Ilya's answer in the Help thread Question regarding Build Matrices and Visual Studio suggests the variable is read-write and can be used to tweak (or request) actual build worker image.

Similar suggestion was posted in #1179 (comment) followed by docs update was 'promise' #1179 (comment) which seems like never made it to the docs.


Given the multitude of Visual Studio's available and single appveyor.yml to configure all of them, importance of APPVEYOR_BUILD_WORKER_IMAGE variable seems to be critical, so it should rather be well documented on if/when/how to use it properly in order to support builds w/ multiple VS versions, etc.

Would it be possible to make the docs update?

@IlyaFinkelshteyn

This comment has been minimized.

Show comment
Hide comment
@IlyaFinkelshteyn

IlyaFinkelshteyn Apr 5, 2017

Member

Sorry for confusion. This variable is not standard. It is both “tweak” and “read”.

“Read” part is what we want to advertise (and this is documented). It just displays current working image, so it can be used during the build to and answer “where am I” question.

“Tweak” part was introduced for special cases when some image is not publicly available, and specific customer need to use it. However even for that case we now have better solution based on image: setting (which also supported in build matrix) and we do not remove “tweak” functionality of APPVEYOR_BUILD_WORKER_IMAGE only because we do not want to break people who are currently using it.

Member

IlyaFinkelshteyn commented Apr 5, 2017

Sorry for confusion. This variable is not standard. It is both “tweak” and “read”.

“Read” part is what we want to advertise (and this is documented). It just displays current working image, so it can be used during the build to and answer “where am I” question.

“Tweak” part was introduced for special cases when some image is not publicly available, and specific customer need to use it. However even for that case we now have better solution based on image: setting (which also supported in build matrix) and we do not remove “tweak” functionality of APPVEYOR_BUILD_WORKER_IMAGE only because we do not want to break people who are currently using it.

@msink

This comment has been minimized.

Show comment
Hide comment
@msink

msink Apr 5, 2017

environment:
  matrix:
    - arch: x86
      compiler: msvc2010
      backend: ninja
    - arch: x86
      compiler: msvc2010
      backend: vs2010
    - arch: x86
      compiler: msvc2015
      backend: ninja
    - arch: x86
      compiler: msvc2015
      backend: vs2015
    - arch: x86
      compiler: msys2-mingw
      backend: ninja
    - arch: x64
      compiler: msvc2017
      backend: ninja
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
    - arch: x64
      compiler: msvc2017
      backend: vs2017
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
    - arch: x64
      compiler: msys2-mingw
      backend: ninja

meson-build

Is something like this possible without that hack with APPVEYOR_BUILD_WORKER_IMAGE?

msink commented Apr 5, 2017

environment:
  matrix:
    - arch: x86
      compiler: msvc2010
      backend: ninja
    - arch: x86
      compiler: msvc2010
      backend: vs2010
    - arch: x86
      compiler: msvc2015
      backend: ninja
    - arch: x86
      compiler: msvc2015
      backend: vs2015
    - arch: x86
      compiler: msys2-mingw
      backend: ninja
    - arch: x64
      compiler: msvc2017
      backend: ninja
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
    - arch: x64
      compiler: msvc2017
      backend: vs2017
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
    - arch: x64
      compiler: msys2-mingw
      backend: ninja

meson-build

Is something like this possible without that hack with APPVEYOR_BUILD_WORKER_IMAGE?

@mloskot

This comment has been minimized.

Show comment
Hide comment
@mloskot

mloskot Apr 5, 2017

@IlyaFinkelshteyn Thanks for the clarification. I still think the docs should include an example of matrix targetting multiple Visual Studio versions, presumably, it would make use of the image condition.

I suppose, it would also answer @msink 's question above.

Would it be possible to update the docs?

mloskot commented Apr 5, 2017

@IlyaFinkelshteyn Thanks for the clarification. I still think the docs should include an example of matrix targetting multiple Visual Studio versions, presumably, it would make use of the image condition.

I suppose, it would also answer @msink 's question above.

Would it be possible to update the docs?

@IlyaFinkelshteyn

This comment has been minimized.

Show comment
Hide comment
@IlyaFinkelshteyn

IlyaFinkelshteyn Apr 5, 2017

Member

@mloskot @msink I tried to make something work for @msink using recently implemented Exclude configuration from the matrix and managed to make it work, but this looks too complicated. I believe that hack with APPVEYOR_BUILD_WORKER_IMAGE is actually nicer so I will document "tweak" side of this variable.
I will keep this issue open and assigned to myself while documenting.
Here is how complicated it would look if you do not use hack/tweak and I don't believe you like it:

image:
- Visual Studio 2015
- Visual Studio 2017
environment:
  matrix:
    - arch: x86
      compiler: msvc2010
      backend: ninja

    - arch: x86
      compiler: msvc2010
      backend: vs2010

    - arch: x86
      compiler: msvc2015
      backend: ninja

    - arch: x86
      compiler: msvc2015
      backend: vs2015

    - arch: x86
      compiler: msys2-mingw
      backend: ninja

    - arch: x64
      compiler: msvc2017
      backend: ninja
      #APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017

    - arch: x64
      compiler: msvc2017
      backend: vs2017
      #APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017

    - arch: x64
      compiler: msys2-mingw
      backend: ninja

matrix:
  exclude:
    - image: Visual Studio 2017
      arch: x86
      
    - image: Visual Studio 2017
      compiler: msys2-mingw
      
    - image: Visual Studio 2015
      arch: x64
      compiler: msvc2010      
      
    - image: Visual Studio 2015
      arch: x64
      compiler: msvc2015
      
    - image: Visual Studio 2015
      arch: x64
      compiler: msvc2017
Member

IlyaFinkelshteyn commented Apr 5, 2017

@mloskot @msink I tried to make something work for @msink using recently implemented Exclude configuration from the matrix and managed to make it work, but this looks too complicated. I believe that hack with APPVEYOR_BUILD_WORKER_IMAGE is actually nicer so I will document "tweak" side of this variable.
I will keep this issue open and assigned to myself while documenting.
Here is how complicated it would look if you do not use hack/tweak and I don't believe you like it:

image:
- Visual Studio 2015
- Visual Studio 2017
environment:
  matrix:
    - arch: x86
      compiler: msvc2010
      backend: ninja

    - arch: x86
      compiler: msvc2010
      backend: vs2010

    - arch: x86
      compiler: msvc2015
      backend: ninja

    - arch: x86
      compiler: msvc2015
      backend: vs2015

    - arch: x86
      compiler: msys2-mingw
      backend: ninja

    - arch: x64
      compiler: msvc2017
      backend: ninja
      #APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017

    - arch: x64
      compiler: msvc2017
      backend: vs2017
      #APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017

    - arch: x64
      compiler: msys2-mingw
      backend: ninja

matrix:
  exclude:
    - image: Visual Studio 2017
      arch: x86
      
    - image: Visual Studio 2017
      compiler: msys2-mingw
      
    - image: Visual Studio 2015
      arch: x64
      compiler: msvc2010      
      
    - image: Visual Studio 2015
      arch: x64
      compiler: msvc2015
      
    - image: Visual Studio 2015
      arch: x64
      compiler: msvc2017

@IlyaFinkelshteyn IlyaFinkelshteyn self-assigned this Apr 5, 2017

@IlyaFinkelshteyn IlyaFinkelshteyn added this to the 9-Apr-2017 milestone Apr 5, 2017

@mloskot

This comment has been minimized.

Show comment
Hide comment
@mloskot

mloskot Apr 5, 2017

@IlyaFinkelshteyn Sounds great. Thanks a lot!

mloskot commented Apr 5, 2017

@IlyaFinkelshteyn Sounds great. Thanks a lot!

@FeodorFitsner FeodorFitsner modified the milestones: 9-Apr-2017, 16-Apr-2017 Apr 9, 2017

reupen added a commit to reupen/columns_ui that referenced this issue Apr 23, 2017

reupen added a commit to reupen/columns_ui that referenced this issue Apr 23, 2017

Add VS2017 build to Appveyor (#54)
Uses APPVEYOR_BUILD_WORKER_IMAGE as per appveyor/ci#1469
@mloskot

This comment has been minimized.

Show comment
Hide comment
@mloskot

mloskot Apr 24, 2017

Good one, cheers!

mloskot commented Apr 24, 2017

Good one, cheers!

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