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.