Skip to content

Instantly share code, notes, and snippets.

@curzona
Last active July 17, 2017 10:56
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save curzona/f50082bc67066484f706 to your computer and use it in GitHub Desktop.
Save curzona/f50082bc67066484f706 to your computer and use it in GitHub Desktop.
Comparison of config files
# see http://about.travis-ci.org/docs/user/languages/php/ for more hints
language: php
# list any PHP version you want to test against
php:
# using major version aliases
# aliased to 5.2.17
- 5.2
# aliased to 5.3.29
- 5.3
# aliased to a recent 5.4.x version
- 5.4
# aliased to a recent 5.5.x version
- 5.5
# aliased to a recent 5.6.x version
- 5.6
# aliased to a recent 7.x version
- 7.0
# aliased to a recent hhvm version
- hhvm
# optionally specify a list of environments, for example to test different RDBMS
env:
- DB=mysql
- DB=pgsql
# optionally set up exclutions and allowed failures in the matrix
matrix:
exclude:
- php: hhvm
env: DB=pgsql # PDO driver for pgsql is unsupported by HHVM (3rd party install for support)
allow_failures:
- php: 7.0
- php: hhvm
# execute any number of scripts before the test run, custom env's are available as variables
before_script:
- if [[ "$DB" == "pgsql" ]]; then psql -c "DROP DATABASE IF EXISTS hello_world_test;" -U postgres; fi
- if [[ "$DB" == "pgsql" ]]; then psql -c "create database hello_world_test;" -U postgres; fi
- if [[ "$DB" == "mysql" ]]; then mysql -e "create database IF NOT EXISTS hello_world_test;" -uroot; fi
# omitting "script:" will default to phpunit
# use the $DB env variable to determine the phpunit.xml to use
script: phpunit --configuration phpunit_$DB.xml --coverage-text
# configure notifications (email, IRC, campfire etc)
notifications:
irc: "irc.freenode.org#yourfavouriteroomfortravis"
application: myapp
version: alpha-001
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /
script: home.app
- url: /index\.html
script: home.app
- url: /stylesheets
static_dir: stylesheets
- url: /(.*\.(gif|png|jpg))$
static_files: static/\1
upload: static/.*\.(gif|png|jpg)$
- url: /admin/.*
script: admin.app
login: admin
- url: /.*
script: not_found.app
# 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} 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\myproject
# 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:
my_var1: value1
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
# build cache to preserve files/folders between builds
cache:
- packages -> **\packages.config # preserve "packages" directory in the root of build folder but will reset it if packages.config is modified
- projectA\libs
- node_modules # local npm modules
- %APPDATA%\npm-cache # npm cache
# 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
# to run script as a PowerShell command prepend it with ps:
- ps: Write-Host 'This is PowerShell'
# batch commands start from cmd:
- cmd: echo This is batch again
- cmd: set MY_VAR=12345
# 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
include_nuget_references: true # add -IncludeReferencedProjects option while packaging NuGet artifacts
# 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
# 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
incoming_webhook: http://incoming-webhook-url
# ...or using auth token
- 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
DATABASE_URL='postgres://dbuser:dbpass@localhost/mydb'
DEBUG=False
FACEBOOK_APP_ID='51821095311150'
FACEBOOK_API_SECRET='fj43dfe897f612cf3448ce34f0f6ad1a1'
box: wercker/ruby
services:
- mies/rethinkdb
build:
steps:
# Execute the bundle install step, a step provided by wercker
- bundle-install
# Execute a custom script step.
- script:
name: middleman build
code: bundle exec middleman build --verbose
deploy:
steps:
# Execute the heroku-deploy, heroku details can be edited
# online at http://app.wercker.com/
#- heroku-deploy
# Execute the s3sync deploy step, a step provided by wercker
- s3sync:
key_id: $AWS_ACCESS_KEY_ID
key_secret: $AWS_SECRET_ACCESS_KEY
bucket_url: $AWS_BUCKET_URL
source_dir: build/
after-steps:
- hipchat-notify:
token: $HIPCHAT_TOKEN
room-id: id
from-name: name
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment