# Notes:
#   - Minimal appveyor.yml file is an empty file. All sections are optional.
#   - Indent each level of configuration with 2 spaces. Do not use tabs!
#   - All section names are case-sensitive.
#   - Section names should be unique on each level.

#---------------------------------#
#      general configuration      #
#---------------------------------#

# version format
#version: 1.0.{build}                 # You can use {branch} to, for example

# you can use {branch} name in version format too
# version: 1.0.{build}-{branch}

# branches to build
branches:
  # whitelist
  # only:
  #   - master
  #   - production
  #
  # blacklist
  except:
    - gh-pages

# Do not build on tags (GitHub only)
skip_tags: true

# Skipping commits with particular message or from user
# skip_commits:
#   message: /Created.*\.(png|jpg|jpeg|bmp|gif)/       # Regex for matching commit message
#   author: John        # Commit author's username, name, email or regexp maching one of these.

#---------------------------------#
#    environment configuration    #
#---------------------------------#

# Operating system (build VM template)
os: Windows Server 2012

# scripts that are called at very beginning, before repo cloning
init:
  - git config --global core.autocrlf input

# clone directory
clone_folder: c:\projects\steroids

# fetch repository as zip archive
#shallow_clone: true                 # default is "false"

# set clone depth
clone_depth: 5                      # clone entire repository history if not defined

# setting up etc\hosts file
#hosts:
#  queue-server: 127.0.0.1
#  db.server.com: 127.0.0.2

# environment variables
environment:
  LONGCAT: IS_LOOOOOONG
#  my_var2: value2
  # this is how to set encrypted variable. Go to "Encrypt data" page in account menu to encrypt data.
  my_secure_var1:
    secure: FW3tJ3fMncxvs58/ifSP7w==

# environment:
#  global:
#    connection_string: server=12;password=13;
#    service_url: https://127.0.0.1:8090
#
#  matrix:
#  - db: mysql
#    provider: mysql
#
#  - db: mssql
#    provider: mssql
#    password:
#      secure: $#(JFDA)jQ@#$

# this is how to allow failing jobs in the matrix
# matrix:
#   fast_finish: true     # set this flag to immediately finish build once one of the jobs fails.
#   allow_failures:
#     - platform: x86
#       configuration: Debug
#     - platform: x64
#       configuration: Release

  matrix:
    - nodejs_version: 0.10

# enable service required for build/tests
# services:
#   - mssql2014           # start SQL Server 2014 Express
#   - mssql2014rs         # start SQL Server 2014 Express and Reporting Services
#   - mssql2012sp1        # start SQL Server 2012 SP1 Express
#   - mssql2012sp1rs      # start SQL Server 2012 SP1 Express and Reporting Services
#   - mssql2008r2sp2      # start SQL Server 2008 R2 SP2 Express
#   - mssql2008r2sp2rs    # start SQL Server 2008 R2 SP2 Express and Reporting Services
#   - mysql               # start MySQL 5.6 service
#   - postgresql          # start PostgreSQL 9.3 service
#   - iis                 # start IIS
#   - msmq                # start Queuing services

# scripts that run after cloning repository
install:
  # by default, all script lines are interpreted as batch
  - echo This is batch
  - ps: Install-Product node $env:nodejs_version
  - npm install -g steroids

# enable patching of AssemblyInfo.* files
# assembly_info:
#   patch: true
#   file: AssemblyInfo.*
#   assembly_version: "2.2.{build}"
#   assembly_file_version: "{version}"
#   assembly_informational_version: "{version}"


# Automatically register private account and/or project AppVeyor NuGet feeds.
# nuget:
#   account_feed: true
#   project_feed: true
#   disable_publish_on_pr: true     # disable publishing of .nupkg artifacts to
#                                   # account/project feeds for pull request builds

#---------------------------------#
#       build configuration       #
#---------------------------------#

# build platform, i.e. x86, x64, Any CPU. This setting is optional.
platform: Any CPU

# to add several platforms to build matrix:
#platform:
#  - x86
#  - Any CPU

# build Configuration, i.e. Debug, Release, etc.
#configuration: Release

# to add several configurations to build matrix:
#configuration:
#  - Debug
#  - Release

# build:
#   parallel: true                  # enable MSBuild parallel builds
#   project: MyTestAzureCS.sln      # path to Visual Studio solution or project
#   publish_wap: true               # package Web Application Projects (WAP) for Web Deploy
#   publish_wap_xcopy: true         # package Web Application Projects (WAP) for XCopy deployment
#   publish_azure: true             # package Azure Cloud Service projects and push to artifacts
#   publish_nuget: true             # package projects with .nuspec files and push to artifacts
#   publish_nuget_symbols: true     # generate and publish NuGet symbol packages
#
#   # MSBuild verbosity level
#   verbosity: quiet|minimal|normal|detailed


# scripts to run before build
#before_build:

# scripts to run after build
#after_build:

# to run your custom scripts instead of automatic MSBuild
#build_script:

# to disable automatic builds
build: off

#---------------------------------#
#       tests configuration       #
#---------------------------------#

# test:
#   assemblies:
#     - asm1.dll
#     - asm2.dll
#
#   categories:
#     - UI
#     - E2E

# to run tests from different categories as separate jobs in parallel
#test:
#  categories:
#    - A            # A category common for all jobs
#    - [UI]         # 1st job
#    - [DAL, BL]    # 2nd job

# scripts to run before tests
# before_test:
#   - echo script1
#   - ps: Write-Host "script1"

# scripts to run after tests
# after_test:

# to run your custom scripts instead of automatic tests
# test_script:
#   - echo This is my custom test script

test_script:
  - node --version
  - npm --version
  - ps: steroids version
  - cmd: steroids version
  - cmd: steroids create __testApp --type=mpa --language=coffee
  - cd __testApp
  - steroids make
  - steroids generate

# to disable automatic tests
#test: off


#---------------------------------#
#      artifacts configuration    #
#---------------------------------#

# artifacts:
#
#   # pushing a single file
#   - path: test.zip
#
#   # pushing a single file with environment variable in path and "Deployment name" specified
#   - path: MyProject\bin\$(configuration)
#     name: myapp
#
#   # pushing entire folder as a zip archive
#   - path: logs
#
#   # pushing all *.nupkg files in directory
#   - path: out\*.nupkg


#---------------------------------#
#     deployment configuration    #
#---------------------------------#

# providers: Local, FTP, WebDeploy, AzureCS, AzureBlob, S3, NuGet, Environment
# provider names are case-sensitive!
# deploy:
#
#     # FTP deployment provider settings
#   - provider: FTP
#     protocol: ftps
#     host: ftp.myserver.com
#     username: admin
#     password:
#       secure: eYKZKFkkEvFYWX6NfjZIVw==
#     folder:
#     application:
#     active_mode: false
#
#     # Amazon S3 deployment provider settings
#   - provider: S3
#     access_key_id:
#       secure: ABcd==
#     secret_access_key:
#       secure: ABcd==
#     bucket: my_bucket
#     folder:
#     artifact:
#     set_public: false
#
#     # Azure Blob storage deployment provider settings
#   - provider: AzureBlob
#     storage_account_name:
#       secure: ABcd==
#     storage_access_key:
#       secure: ABcd==
#     container: my_container
#     folder:
#     artifact:
#
#     # Web Deploy deployment provider settings
#   - provider: WebDeploy
#     server: http://www.deploy.com/myendpoint
#     website: mywebsite
#     username: user
#     password:
#       secure: eYKZKFkkEvFYWX6NfjZIVw==
#     ntlm: false
#     remove_files: false
#     app_offline: false
#     skip_dirs: \\App_Data
#     skip_files: web.config
#     on:
#       branch: release
#       platform: x86
#       configuration: debug
#
#     # Deploying to Azure Cloud Service
#   - provider: AzureCS
#     subscription_id:
#       secure: fjZIVw==
#     subscription_certificate:
#       secure: eYKZKFkkEv...FYWX6NfjZIVw==
#     storage_account_name: my_storage
#     storage_access_key:
#       secure: ABcd==
#     service: my_service
#     slot: Production
#     target_profile: Cloud
#     artifact: MyPackage.cspkg
#
#     # Deploying to NuGet feed
#   - provider: NuGet
#     server: https://my.nuget.server/feed
#     api_key:
#       secure: FYWX6NfjZIVw==
#     skip_symbols: false
#     symbol_server: https://your.symbol.server/feed
#     artifact: MyPackage.nupkg
#
#     # Deploy to GitHub Releases
#   - provider: GitHub
#     artifact: /.*\.nupkg/           # upload all NuGet packages to release assets
#     draft: false
#     prerelease: false
#     on:
#       branch: master                # release from master branch only
#       appveyor_repo_tag: true       # deploy on tag push only
#
#     # Deploying to a named environment
#   - provider: Environment
#     name: staging
#     on:
#       branch: staging
#       env_var1: value1
#       env_var2: value2

# scripts to run before deployment
#before_deploy:

# scripts to run after deployment
#after_deploy:

# to run your custom scripts instead of provider deployments
#deploy_script:

# to disable deployment
#deploy: off

#---------------------------------#
#        global handlers          #
#---------------------------------#

# # on successful build
# on_success:
#   - do something
#
# # on build failure
# on_failure:
#   - do something
#
# # after build failure or success
# on_finish:
#   - do something


#---------------------------------#
#         notifications           #
#---------------------------------#

# notifications:
#
#   # Email
#   - provider: Email
#     to:
#       - user1@email.com
#       - user2@email.com
#     subject: 'Build {{status}}'                  # optional
#     message: "{{message}}, {{commitId}}, ..."    # optional
#     on_build_status_changed: true
#
#   # HipChat
#   - provider: HipChat
#     auth_token:
#       secure: RbOnSMSFKYzxzFRrxM1+XA==
#     room: ProjectA
#     template: "{message}, {commitId}, ..."
#
#   # Slack
#   - provider: Slack
#     auth_token:
#       secure: kBl9BlxvRMr9liHmnBs14A==
#     channel: development
#     template: "{message}, {commitId}, ..."
#
#   # Campfire
#   - provider: Campfire
#     account: appveyor
#     auth_token:
#       secure: RifLRG8Vfyol+sNhj9u2JA==
#     room: ProjectA
#     template: "{message}, {commitId}, ..."
#
#   # Webhook
#   - provider: Webhook
#     url: http://www.myhook2.com
#     headers:
#       User-Agent: myapp 1.0
#       Authorization:
#         secure: GhD+5xhLz/tkYY6AO3fcfQ==
#     on_build_success: false
#     on_build_failure: true
#     on_build_status_changed: true
