224 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			224 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| # Azure Pipelines CI config
 | |
| 
 | |
| # trigger: none
 | |
| trigger:
 | |
|   branches:
 | |
|     include:
 | |
|     - master
 | |
|     # - releases/*
 | |
|   batch: true
 | |
|   paths:
 | |
|     # https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/file-matching-patterns
 | |
|     # include: # file paths which must match to trigger a build
 | |
|     # - docs/*
 | |
|     exclude: # file paths which will not trigger a build
 | |
|     - CHANGES*
 | |
|     - CONTRIBUTING*
 | |
|     - LICENSE*
 | |
|     - Makefile
 | |
|     - README*
 | |
|     - Shake.hs
 | |
|     - bin/*
 | |
|     - cabal-install.sh
 | |
|     - cabal.project
 | |
|     - checks/*
 | |
|     - dev.hs
 | |
|     - doc/*
 | |
|     - examples/*
 | |
|     - hledger-system.mk
 | |
|     - hledger-api/CHANGES*
 | |
|     - hledger-api/LICENSE*
 | |
|     - hledger-api/README*
 | |
|     - hledger-api/examples/*
 | |
|     - hledger-install/LICENSE*
 | |
|     - hledger-install/README*
 | |
|     - hledger-lib/CHANGES*
 | |
|     - hledger-lib/LICENSE*
 | |
|     - hledger-lib/README*
 | |
|     - hledger-ui/CHANGES*
 | |
|     - hledger-ui/LICENSE*
 | |
|     - hledger-ui/README*
 | |
|     - hledger-web/CHANGES*
 | |
|     - hledger-web/LICENSE*
 | |
|     - hledger-web/README*
 | |
|     - hledger-web/static/*
 | |
|     - hledger-web/templates/*
 | |
|     - hledger/CHANGES*
 | |
|     - hledger/LICENSE*
 | |
|     - hledger/README*
 | |
|     - hledger/bench/*
 | |
|     - hledger/embeddedfiles/*
 | |
|     - shell-completion/*
 | |
|     - site/*
 | |
|     - tools/*
 | |
| 
 | |
| # pr: none
 | |
| 
 | |
| # variables:
 | |
| #   imageName: 'simonmichael:$(build.buildId)'
 | |
| 
 | |
| strategy:
 | |
|   matrix:
 | |
|     windows:
 | |
|       imageName: 'vs2017-win2016'
 | |
|     # mac:
 | |
|     #   imageName: 'macos-10.13'
 | |
|     # linux:
 | |
|     #   imageName: 'ubuntu-16.04'
 | |
| 
 | |
| pool:
 | |
|   vmImage: $(imageName)
 | |
| 
 | |
| steps:
 | |
| 
 | |
| - script: curl -skL -ostack.zip http://www.stackage.org/stack/windows-x86_64
 | |
|   displayName: 'download stack'
 | |
| - script: 7z x stack.zip stack.exe
 | |
|   displayName: 'unzip stack'
 | |
| - script: stack --version
 | |
|   displayName: 'stack --version'
 | |
| - script: stack build --copy-bins --local-bin-path=.
 | |
|   displayName: 'stack install'
 | |
| - script: 7z a -tzip hledger.zip hledger.exe hledger-web.exe
 | |
|   displayName: 'zip executables'
 | |
| - task: PublishPipelineArtifact@0
 | |
|   inputs:
 | |
|     artifactName: 'hledger.zip'  #$(imageName)
 | |
|     targetPath: 'hledger.zip'
 | |
| 
 | |
| # - script: docker build -f Dockerfile -t $(imageName) .
 | |
| #   displayName: 'docker build'
 | |
| 
 | |
| # hledger-install won't run on ms windows agent: 
 | |
| # Sorry, this installer does not support your operating system: MINGW64_NT-10.0.
 | |
| # 2019-02-02T20:34:47.0085295Z See http://docs.haskellstack.org/en/stable/install_and_upgrade/
 | |
| #
 | |
| # - script: bash hledger-install/hledger-install.sh
 | |
| #   displayName: 'hledger-install.sh'
 | |
| #
 | |
| # - bash: hledger-install/hledger-install.sh
 | |
| #   displayName: 'hledger-install.sh'
 | |
| #   # workingDirectory: #
 | |
| #   # failOnStderr: #
 | |
| #   # env:  # mapping of environment variables to add
 | |
| 
 | |
| 
 | |
| # reference
 | |
| 
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema
 | |
| 
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema#trigger
 | |
| # Scheduled builds are not yet supported in YAML syntax. After you create your YAML build pipeline, you can use the designer to specify a scheduled trigger.
 | |
| # Someone must view a page in your organization regularly for CI and scheduled builds to run.
 | |
| # The YAML file in my branch is different than the YAML file in my master branch, which one is used?
 | |
| #   When you have configured a CI trigger or a PR trigger, the YAML file that is in the branch being pushed is used.
 | |
| #     For CI triggers, the YAML file that is in the branch you are pushing is evaluated to see if a CI build should be run.
 | |
| #     For PR triggers, the YAML file that is in the source branch of the PR is evaluated to see if a PR build should be run.
 | |
| 
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema#pr-trigger
 | |
| # A pull request trigger specifies what branches will cause a pull request build to run. 
 | |
| # If left unspecified, pull requests to every branch will trigger a build.
 | |
| # Note that pr is valid for GitHub, not any other Git provider.
 | |
| # pr: none
 | |
| # pr:
 | |
| #   #autoCancel: boolean # indicates whether additional pushes to a PR should cancel in-progress runs for the same PR. Defaults to true
 | |
| #   branches:
 | |
| #     include:
 | |
| #     - master
 | |
| #     - releases/*
 | |
| #   paths:
 | |
| #     include:
 | |
| #     - docs/*
 | |
| #     exclude:
 | |
| #     - docs/README.md
 | |
| 
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/process/phases
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?tabs=schema#job
 | |
| # You can skip the job syntax if you need only a single job with the standard options.
 | |
| # matrix and parallel are mutually-exclusive strategies for duplicating a job.
 | |
| #  The matrix strategy enables a job to be dispatched multiple times, with different variable sets. 
 | |
| #   matrix: { string1: { string2: string3 } }
 | |
| #    For each string1 in the matrix, a copy of the job will be generated. 
 | |
| #    string1 is the copy's name and will be appended to the name of the job. 
 | |
| #    For each string2, a variable called string2 with the value string3 will be available to the job.
 | |
| #  The parallel strategy specifies how many duplicates of the job should run. 
 | |
| #   This is useful for slicing up a large test matrix. The VS Test task understands how to divide the test load across the number of jobs scheduled.
 | |
| #   parallel: number
 | |
| #  The maxParallel tag restricts the amount of parallelism in both. It defaults to unlimited if not specified.
 | |
| 
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema#pool
 | |
| # pool:
 | |
| #   name: string  # name of the pool to run this job in
 | |
| #   demands: string | [ string ]  ## see below
 | |
| #   vmImage: string # name of the vm image you want to use, only valid in the Microsoft-hosted pool
 | |
| 
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema#script
 | |
| # - script: string  # contents of the script to run
 | |
| #   displayName: string  # friendly name displayed in the UI
 | |
| #   name: string  # identifier for this step (A-Z, a-z, 0-9, and underscore)
 | |
| #   workingDirectory: string  # initial working directory for the step
 | |
| #   failOnStderr: boolean  # if the script writes to stderr, should that be treated as the step failing?
 | |
| #   condition: string
 | |
| #   continueOnError: boolean  # 'true' if future steps should run even if this step fails; defaults to 'false'
 | |
| #   enabled: boolean  # whether or not to run this step; defaults to 'true'
 | |
| #   timeoutInMinutes: number
 | |
| #   env: { string: string }  # list of environment variables to add
 | |
| 
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/process/phases#artifact-download
 | |
| # # test and upload my code as an artifact named WebSite
 | |
| # jobs:
 | |
| # - job: Build
 | |
| #   pool:
 | |
| #     vmImage: 'ubuntu-16.04'
 | |
| #   steps:
 | |
| #   - script: npm test
 | |
| #   - task: PublishBuildArtifacts@1
 | |
| #     inputs:
 | |
| #       pathtoPublish: '$(System.DefaultWorkingDirectory)'
 | |
| #       artifactName: WebSite
 | |
| 
 | |
| # # download the artifact and deploy it only if the build job succeeded
 | |
| # - job: Deploy
 | |
| #   pool:
 | |
| #     vmImage: 'ubuntu-16.04'
 | |
| #   steps:
 | |
| #   - checkout: none #skip checking out the default repository resource
 | |
| #   - task: DownloadBuildArtifacts@0
 | |
| #     displayName: 'Download Build Artifacts'
 | |
| #     inputs:
 | |
| #       artifactName: WebSite
 | |
| #       downloadPath: $(System.DefaultWorkingDirectory)
 | |
| #
 | |
| #   dependsOn: Build
 | |
| #   condition: succeeded()
 | |
| 
 | |
| 
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/artifacts/pipeline-artifacts
 | |
| # - task: PublishPipelineArtifact@0
 | |
| #   inputs:
 | |
| #     artifactName: 'artifactName'
 | |
| #     targetPath: 'src/MyWebApp/bin/Release/netcoreapp2.0/linux-x64/publish'
 | |
| 
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/bash
 | |
| # - bash: # script path or inline
 | |
| #   workingDirectory: #
 | |
| #   displayName: #
 | |
| #   failOnStderr: #
 | |
| #   env:  # mapping of environment variables to add
 | |
| 
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/command-line
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/copy-files
 | |
| # https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/curl-upload-files
 | |
| 
 | |
| # Docker image
 | |
| # Build a Docker image to deploy, run, or push to a container registry.
 | |
| # Add steps that use Docker Compose, tag images, push to a registry, run an image, and more:
 | |
| # https://docs.microsoft.com/azure/devops/pipelines/languages/docker
 | |
| 
 | |
| # - script: |
 | |
| #     docker login -u $(dockerId) -p $(dockerPw)
 | |
| #     docker push $(dockerId)/$(imageName)
 | |
| 
 |