Hi Ralph,
This works really well – I just noticed a few things when trying to add it to the EPICS galil driver on GitHub
The initial git clone didn’t seem to be recursive for me, so I didn’t get the .ci submodule checked out unless I added the following
to my appveyor.yml file:
clone_script:
- cmd: git clone -q --recursive --branch=%APPVEYOR_REPO_BRANCH% https://github.com/%APPVEYOR_REPO_NAME%.git %APPVEYOR_BUILD_FOLDER%
- cmd: git checkout -qf %APPVEYOR_REPO_COMMIT%
Am I missing a setting somewhere?
You have a couple of lines commented out as examples in the in_failure: section of appveyor.yml. The line with “$blockRdp = $true”
would work well there and halt on a failed build, but I think the line
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
Isn’t needed there in addition to the other line and on its own would just print the RDP connections and not stop a build. I think
this line was probably meant to be in the “init:” section and to allow you to monitor a build in progress and analyse why it had hung rather than failed.
The galil driver has an extra directory level i.e. the root of the Github repository with the appveyor.yml is not $(TOP) and also lacks
a configure directory in that location. I see the CI script prepare() method copies the RELEASE.local to a configure directory if it exists, but if one does not exist then it doesn’t copy the file. To get the galil main build to work I had to create a configure
directory at this level and use $(TOP)/../configure/RELEASE.local in the galil module RELEASE file. I wondered if the prepare() method should copy the generated RELEASE.local to the top of the build/checkout area if there is no configure directory, so allowing
$(TOP)/../RELEASE.local to work in the galil RELEASE file?
Regards,
Freddie
From: Core-talk <core-talk-bounces at aps.anl.gov>
On Behalf Of Ralph Lange via Core-talk
Sent: 14 April 2020 17:17
To: EPICS Core Talk <core-talk at aps.anl.gov>
Subject: AppVeyor native Windows build support for ci-scripts (Beta)
Dear colleagues,
With a lot of help from Michael Davidsaver, the AppVeyor based native Windows build support for the ci-scripts module is ready for beta testing.
The ci-scripts configuration of dependency modules (including setup files) can be shared between Travis and AppVeyor.
To update your source module to use this Pull Request branch, you need to do something like this in your module that uses ci-scripts (choose any branch
name instead of 'win-beta'):
git fetch origin pull/29/head:win-beta
Once you have an AppVeyor account, you need to enable the repository - any following commit to GitHub should be built if it happens on a branch with the .appveyor.yml configuration in place.
Careful: Since AppVeyor only offers one builder VM and no usable caching, every job you define in your build matrix will be complete and take its full time (~10min for Base plus all other modules) every time the
build is run.
Please test and feed back any irregularities and/or missing documentation.