Have "deploy" run only once in matrix job

oliver's Avatar


12 Jan, 2018 11:15 AM


this is related to https://help.appveyor.com/discussions/questions/16107-different-images

I want AppVeyor to run:

  • 1 job with VS2013
  • 1 job with the latest image
  • have AppVeyor to wait on Travis to complete with the tests on OSX and linux
  • I want the deploy code to run only once for all of these jobs described above

What do I need to do in the appveyor.yml file, so that only one (preferably the last) job of the matrix runs the deploy and before_deploy block?

Thanks for the help

  1. Support Staff 1 Posted by Ilya Finkelshte... on 13 Jan, 2018 10:46 AM

    Ilya Finkelshteyn's Avatar

    Here you go:

  2. 2 Posted by oliver on 13 Jan, 2018 12:06 PM

    oliver's Avatar

    Precisly what I needed!

    Is there a gallery for this kind of scripts of yours?

  3. 3 Posted by oliver on 14 Jan, 2018 11:30 AM

    oliver's Avatar

    Hey @Ilya.

    I just realized that the script for a job to wait on others will not do what I need.

    My appveyor.yml file contains this:

        - ps: Invoke-Build -Task Deploy

    deploy: provider: GitHub release: v$(appveyor_build_version) description: '' auth_token: secure: aaaaaaaaaaaaaaaaaaaaaaaaaaaa draft: false prerelease: false on: branch: master # release from master branch only appveyor_repo_tag: false # deploy on tag push only

    Of course I can add conditions to the powershell script, so that it will only be run in the last job...
    But what about the deployment of the release to github?

  4. Support Staff 4 Posted by Ilya Finkelshte... on 14 Jan, 2018 03:04 PM

    Ilya Finkelshteyn's Avatar

    You can set some special environment variable to true as a result of waiting script. Then use that variable in deployment condition.

    Lets say you define environment variable good_to_deploy with default value false in environment section of YAML or Environment tab in UI. Then set the following in deployment settings:

            branch: master                 # release from master branch only
            appveyor_repo_tag: false        # deploy on tag push only
            good_to_deploy: true

    Then in the script set something like $env:good_to_deploy = $success.

    Regarding scripts gallery, we usually create GitHub gist when customers ask something often. They are here:

  5. oliver closed this discussion on 19 Mar, 2018 12:58 PM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts


? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac