Windows build changed to one done by the datalad-extensions project using Github actions

This is a cleaner build than on Jenkins because the whole environment setup
is handled by the CI config, at least up to the point of "get a random bag
of Windows bytes".

Also, the Jenkins autobuilder has been intermittently failing for a long
time, not due to any problem with git-annex but just a failure to clean up
directories.

Also, this build runs the test suite, and it is (mostly) passing. Test
suite always failed in the jenkins environment.

Also, this build includes libmagic.

Here is the build workflow used by github actions:
https://github.com/datalad/datalad-extensions/blob/master/.github/workflows/build-git-annex-windows.yaml
The libmagic build has its own workflow:
https://github.com/datalad/file-windows/blob/master/.github/workflows/build.yml

(Also cleaned up some windows build cruft I don't use anymore.)

There is no build-version file to link to. I've opened a todo requesting
one: https://github.com/datalad/datalad-extensions/issues/55
This commit is contained in:
Joey Hess 2020-10-26 13:06:50 -04:00
parent 401f734a34
commit f3070d2d7d
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
7 changed files with 11 additions and 154 deletions

View file

@ -15,6 +15,8 @@ git-annex (8.20201008) UNRELEASED; urgency=medium
* Fixed some problems that prevented this command from working:
git submodule foreach git annex init
* testremote: Display exceptions when tests fail, to aid debugging.
* Windows build changed to one done by the datalad-extensions project
using Github actions.
-- Joey Hess <id@joeyh.name> Thu, 08 Oct 2020 10:48:17 -0400

55
Jenkinsfile vendored
View file

@ -1,55 +0,0 @@
currentBuild.result = 'SUCCESS'
def caught_exception = null
final def EMAIL_RECIPIENTS = 'joey+git-annex@joeyh.name'
properties([
buildDiscarder(logRotator(artifactNumToKeepStr: '1')),
pipelineTriggers([[$class: 'hudson.triggers.SCMTrigger', scmpoll_spec: ''],]) // pollScm('') in 2.22+
])
try {
node('windows') {
dir('git-annex') {
stage('Checkout') {
checkout scm
}
stage('Build') {
bat 'c:/cygwin/bin/sh standalone/windows/build.sh'
}
stage('Archive') {
archiveArtifacts 'git-annex-installer.exe,dist/build-version'
}
stage('Upload') {
withCredentials([usernamePassword(credentialsId: 'rsync-downloads-kitenet-net', passwordVariable: 'RSYNC_PASSWORD', usernameVariable: 'DUMMY')]) {
bat 'c:/cygwin/bin/rsync git-annex-installer.exe winautobuild@downloads.kitenet.net::winautobuild'
bat 'c:/cygwin/bin/rsync dist/build-version winautobuild@downloads.kitenet.net::winautobuild'
}
}
}
}
} catch (exception) {
caught_exception = exception
currentBuild.result = 'FAILURE'
} finally {
node('master') {
step([$class: 'Mailer', notifyEveryUnstableBuild: false, recipients: EMAIL_RECIPIENTS, sendToIndividuals: false])
}
if (caught_exception) {
throw caught_exception
}
}

View file

@ -1 +0,0 @@
sh standalone/windows/build-simple.sh

View file

@ -22,7 +22,7 @@
<iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/x86_64-apple-yosemite/build-version">
</iframe>
<h2>Windows</h2>
<iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/windows/build-version">
<iframe width=1024 height=20em scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="fixme">
</iframe>
"""]]
@ -47,6 +47,10 @@
<iframe width=1024 scrolling=no frameborder=0 marginheight=0 marginwidth=0 src="https://downloads.kitenet.net/git-annex/autobuild/x86_64-apple-yosemite/">
</iframe>
<h2>Debian standalone packages</h2>
<a href="https://github.com/datalad/datalad-extensions/actions?query=workflow%3A%22Build+git-annex+snapshot%22"><img src="https://github.com/datalad/datalad-extensions/workflows/Build%20git-annex%20snapshot/badge.svg"></a>
<a href="https://github.com/datalad/datalad-extensions/actions?query=workflow%3A%22Build+git-annex+snapshot%22">
<img src="https://github.com/datalad/datalad-extensions/workflows/Build%20git-annex%20snapshot/badge.svg">
</a>
<h2>Windows</h2>
<a href="http://vps.zaytsev.net:8080/">here (limited access)</a>
<a href="https://github.com/datalad/datalad-extensions/actions?query=workflow%3A%22Build+git-annex+snapshot+on+Windows%22">
<img src="https://github.com/datalad/datalad-extensions/workflows/Build%20git-annex%20snapshot%20on%20Windows/badge.svg">
</a>

View file

@ -9,17 +9,11 @@ git-annex. The assistant and webapp are also usable. There are some known
problems and parts that don't work. See [[todo/windows_support]] for
current status.
To verify that the build of git-annex works in your Windows system, you are
encouraged to run the test suite before using git-annex on real data. After
installation, run `git annex test`. There will be a lot of output; the
important thing is that it should end with "All tests passed".
## autobuilds
An hourly autobuild is also available, thanks to Yury V. Zaytsev and
Dartmouth College.
An autobuild is also available, thanks to the Datalad project.
* [download](https://downloads.kitenet.net/git-annex/autobuild/windows/)
* [download](http://datasets.datalad.org/datalad/packages/windows/)
## building it yourself

View file

@ -1,16 +0,0 @@
#!/bin/sh
# Script to build git-annex on windows. Run by build.bat
set -e
set -x
PATH="/c/Program Files/Git/cmd:/c/Program Files/NSIS:$PATH"
stack setup
stack build --dependencies-only
# Build git-annex
stack build
# Build the installer
stack runghc --package nsis Build/NullSoftInstaller.hs

View file

@ -1,71 +0,0 @@
#!/bin/sh
#
# This script is run by the jenkins autobuilder, in a mingw environment,
# to build git-annex for Windows.
set -x
set -e
PATH="/cygdrive/c/git/cmd:/cygdrive/c/Program Files (x86)/NSIS/Bin:/cygdrive/c/Program Files (x86)/NSIS:/usr/local/bin:/usr/bin:/cygdrive/c/Users/jenkins/AppData/Roaming/local/bin:$PATH"
# Run a command with the cygwin environment available.
# However, programs not from cygwin are preferred.
withcyg () {
PATH="$PATH:/c/cygwin/bin" "$@"
}
# Prefer programs from cygwin.
withcygpreferred () {
PATH="/c/cygwin/bin:$PATH" "$@"
}
# This tells git-annex where to upgrade itself from.
UPGRADE_LOCATION=http://downloads.kitenet.net/git-annex/windows/current/git-annex-installer.exe
export UPGRADE_LOCATION
# This can be used to force git-annex to build supporting a particular
# version of git, instead of the version installed at build time.
#FORCE_GIT_VERSION=1.9.5
#export FORCE_GIT_VERSION
# Don't allow build artifact from a past successful build to be extracted
# if we fail.
rm -f git-annex-installer.exe
rm -f git-annex.exe
rm -rf dist
# Upgrade stack
stack --version
#stack upgrade --force-download
#stack --version
# Get stack build environment set up before trying to build any binaries.
stack setup
stack build --only-dependencies
# Update version info for git rev being built.
mkdir -p dist
stack ghc --no-haddock Build/BuildVersion.hs
./Build/BuildVersion > dist/build-version
# Build git-annex
stack install -j 1 --no-haddock --local-bin-path .
# Build the installer
withcygpreferred stack ghc --no-haddock \
--package nsis Build/NullSoftInstaller.hs
./Build/NullSoftInstaller
# Test git-annex
# The test is run in c:/WINDOWS/Temp, because running it in the autobuilder
# directory runs afoul of Windows's short PATH_MAX.
PATH="$(pwd):$PATH"
export PATH
mkdir -p c:/WINDOWS/Temp/git-annex-test/
cd c:/WINDOWS/Temp/git-annex-test/
rm -rf .t
# Currently the test fails in the autobuilder environment for reasons not
# yet understood. Windows users are encouraged to run the test suite
# themseves.
#withcyg git-annex.exe test || true