From 11e0a60e3b6975470af97b4d408da0e85c4bc2bb Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Wed, 8 Apr 2020 15:56:00 +0200 Subject: [PATCH] appveyor: update example and README files --- README.md | 20 +++++++---- appveyor/.appveyor.yml.example-full | 8 ++--- appveyor/README.md | 53 +++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 12 deletions(-) create mode 100644 appveyor/README.md diff --git a/README.md b/README.md index bcda044..ed7071f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ ![Version][badge.version] ![Travis status][badge.travis] +![AppVeyor status][badge.appveyor] # Continuous Integration Scripts for EPICS Modules @@ -56,11 +57,17 @@ example. - Compile on MacOS - Built dependencies are cached (for faster builds) +### AppVeyor + - Use different compilers (Visual Studio, MinGW) + - Use different Visual Studio versions: \ + 2008, 2010, 2012, 2013, 2015, 2017, 2019 + - Compile for Windows 32bit and 64bit + ## How to Use the CI-Scripts 1. Get an account on a supported CI service provider platform. (e.g. [Travis-CI](https://travis-ci.org/), - AppVeyor, Azure Pipelines...) + [AppVeyor](https://www.appveyor.com/), Azure Pipelines...) (More details in the specific README of the subdirectory.) @@ -79,10 +86,10 @@ example. BASE=3.15 ASYN=R4-34 - SNCSEQ=R2-2-7 + SNCSEQ=R2-2-8 ``` will compile against the EPICS Base 3.15 branch, the Sequencer - release 2.2.7 and release 4.34 of asyn. + release 2.2.8 and release 4.34 of asyn. (Any settings can be overridden from the specific job configuration in e.g. `.travis.yml`.) @@ -214,16 +221,16 @@ This will make all builds (not just for your module) verbose. Update the submodule in `.ci` first, then change your CI configuration (if needed) and commit both to your module. E.g., to update your Travis -setup to release 2.1.0 of ci-scripts: +setup to release 2.2.1 of ci-scripts: ```bash cd .ci -git pull origin v2.1.0 +git pull origin v2.2.1 cd - git add .ci # if needed: edit .travis.yml git add .travis.yml -git commit -m "Update ci-scripts submodule to v2.1.0" +git commit -m "Update ci-scripts submodule to v2.2.1" ``` Check the example configuration files inside ci-scripts (and their @@ -266,6 +273,7 @@ in file LICENSE that is included with this distribution. [badge.version]: https://badge.fury.io/gh/epics-base%2Fci-scripts.svg [badge.travis]: https://travis-ci.org/epics-base/ci-scripts.svg?branch=master +[badge.appveyor]: https://ci.appveyor.com/api/projects/status/xwdv8fpxu0byp3hn?svg=true [reddit.bash]: https://www.reddit.com/r/bash/comments/393oqv/why_is_the_version_of_bash_included_in_os_x_so_old/ diff --git a/appveyor/.appveyor.yml.example-full b/appveyor/.appveyor.yml.example-full index 5288650..ee1f0da 100644 --- a/appveyor/.appveyor.yml.example-full +++ b/appveyor/.appveyor.yml.example-full @@ -10,7 +10,7 @@ # to be used for the dependency builds. cache: - - C:\Users\appveyor\.tools -> appveyor\do.py + - C:\Users\appveyor\.tools #---------------------------------# # additional packages # @@ -59,7 +59,6 @@ configuration: environment: # common / default variables for all jobs SETUP_PATH: .ci-local:.ci - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 matrix: - CMP: vs2019 @@ -108,11 +107,8 @@ matrix: # building & testing # #---------------------------------# -install: - - cmd: git submodule update --init --recursive - - cmd: python .ci/appveyor/do.py prepare - build_script: + - cmd: python .ci/appveyor/do.py prepare - cmd: python .ci/appveyor/do.py build test_script: diff --git a/appveyor/README.md b/appveyor/README.md new file mode 100644 index 0000000..d7e1175 --- /dev/null +++ b/appveyor/README.md @@ -0,0 +1,53 @@ +# AppVeyor Scripts for EPICS Modules + +## Features + + - Use different compilers (Visual Studio, MinGW) + - Use different VS versions (2008, 2010, 2012, 2013, 2015, 2017, 2019) + - Compile for Windows 32bit and 64bit + - Create static libraries or DLLs (plus the matching executables) + - Create optimized or debug builds + +## How to Use these Scripts + + 1. Get an account on [AppVeyor](https://www.appveyor.com/), connect + it to your GitHub account and activate your support module's + repository. For more details, please refer to the + [AppVeyor documentation](https://www.appveyor.com/docs/). + + 2. Add the ci-scripts respository as a Git Submodule + (see [README](../README.md) one level above). + + 3. Add settings files defining which dependencies in which versions + you want to build against + (see [README](../README.md) one level above). + + 4. Create an AppVeyor configuration by copying one of the examples into + the root directory of your module. + ``` + $ cp .ci/appveyor/.appveyor.yml.example-full .appveyor.yml + ``` + + 5. Edit the `.appveyor.yml` configuration to include the jobs you want + AppVeyor to run. + + AppVeyor automatically creates a build matrix with the following axes: + 1. `configuration:` \ + Select static or dynamic (DLL) as well as regular or debug builds. + 2. `platform:` \ + Select 32bit or 64bit processor architecture. + 3. `environment: / matrix:` \ + List of environment variable settings. Each list element (starting with + a dash) is one step on the axis of the build matrix. + + Your builds will take long. + + AppVeyor only grants a single worker VM - all jobs of the matrix are + executed sequentially. Each job will take around 10 minutes. + + The `matrix: / exclude:` setting can be used to reduce the number of + jobs. Check the [AppVeyor docs](https://www.appveyor.com/docs/build-configuration/#build-matrix) + for more ways to reduce the build matrix size. + + 6. Push your changes and check + [ci.appveyor.com](https://ci.appveyor.com/) for your build results.