2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 <2020> 2021 2022 2023 2024 2025 | Index | 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 <2020> 2021 2022 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: AppVeyor native Windows build support for ci-scripts (Beta) |
From: | Freddie Akeroyd - UKRI STFC via Core-talk <core-talk at aps.anl.gov> |
To: | "EPICS core-talk (core-talk at aps.anl.gov)" <core-talk at aps.anl.gov> |
Date: | Sun, 19 Apr 2020 17:23:33 +0000 |
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 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. Check out the scripts (and the README files!) at https://github.com/ralphlange/ci-scripts/tree/devel/add-appveyor. 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'):
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. Cheers, |