Cygwin
Get that Linux feeling - on Windows
Package build service
After pushing to a package git repository, an automatic build of the package is queued:
remote: scallywag: build nnnn queued remote: scallywag: https://cygwin.com/cgi-bin2/jobs.cgi?id=nnnn
The results will appear (some time later) at https://cygwin.com/cgi-bin2/jobs.cgi (URL subject to change).
Caveats
Packages may fail to build correctly due to:
- missing or insufficient
BUILD_REQUIRES - missing prerequisites implied by an
inherit - other bugs in this service
- resource limits imposed by the free service used to perform the actual builds
(Note that a successful build doesn't always mean that you have reproduced
your local build: You'll also need to check the configuration step output
and/or dependencies of the produced packages are the same. Consider explicitly
enabling the functionality you are expecting in the options to the configure
script, if it supports that (e.g. CYGCONF_ARGS, etc.), to avoid it
potentially silently turning off in future, if it's requirements change.)
Controlling the build service
The behaviour of the build service can be controlled, with the tokens described below:- for an individual push
with
git push --push-option="token [token...]" - for a package
by setting the value of the
SCALLYWAGvariable in the.cygportfile - per-maintainer
The default value may be specified in a
!scallywagfile in the root of a maintainer's upload directory tree.Additionally, if that file contains
disable, this service is completely disabled for all of that maintainer's pushes.
Tokens from all the sources above are collected together, along with the
default set of build test. The presence of a negated token takes
priority over the presence of an unnegated token.
Interacting with build service jobs
Interactions with build service jobs which require authentication can be done
with ssh cygwin@cygwin.com jobs. Available sub-commands are:
-
cancel
request termination of a build job. -
deploy
hand-off built packages from a job to the package uploader (if it's suitable: i.e. successfully built, from master, etc.). -
rerun
rerun a job (e.g. if it failed due to some transient condition, or optionally with different tokens).
Build service tokens
-
build
Enables building packages. -
nobuild
Disables building packages. -
label
Label the packages astest:usingcygport package-test. -
test
Enables runningcygport test. -
notest
Disables runningcygport test. -
deploy
For the master branch, after a successful build, the built packages are handed-off to the package uploader. -
nodeploy
Take no action after a successful build. -
announce
After a successful deploy, send a mail to the cygwin-announce mailing list. -
noannounce
Do not send an announce mail. -
mock
Any announcement mail will only be sent to the uploader, not the announce list.