appveyor: update example and README files

This commit is contained in:
Ralph Lange
2020-04-08 15:56:00 +02:00
parent 22d3a9db15
commit 11e0a60e3b
3 changed files with 69 additions and 12 deletions

View File

@@ -1,5 +1,6 @@
<a target="_blank" href="http://semver.org">![Version][badge.version]</a>
<a target="_blank" href="https://travis-ci.org/epics-base/ci-scripts">![Travis status][badge.travis]</a>
<a target="_blank" href="https://ci.appveyor.com/project/epics-base/ci-scripts">![AppVeyor status][badge.appveyor]</a>
# 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.
<!-- Links -->
[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/

View File

@@ -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:

53
appveyor/README.md Normal file
View File

@@ -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.