aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaëtan Gilbert2018-12-12 14:10:52 +0100
committerGaëtan Gilbert2018-12-17 16:42:36 +0100
commitbb1c89a486d47dbf497756b8374337a6857a96de (patch)
tree82e30800cd9c23a903b5cd6d528d1b8243e4a98f
parent9349e0367d2d50b11ccd31c8f6d1979ebd52e555 (diff)
Set up CI with Azure Pipelines
-rw-r--r--.github/CODEOWNERS3
-rw-r--r--azure-pipelines.yml31
-rw-r--r--dev/ci/README-developers.md3
-rwxr-xr-xdev/ci/azure-build.sh9
-rwxr-xr-xdev/ci/azure-opam.sh13
-rwxr-xr-xdev/ci/azure-test.sh9
6 files changed, 68 insertions, 0 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 98fe2546b5..0f2dd89975 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -37,6 +37,9 @@
*.nix @coq/nix-maintainers
+azure-pipelines.yml @coq/ci-maintainers
+/dev/ci/azure* @coq/ci-maintainers
+
########## Documentation ##########
/README.md @Zimmi48
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
new file mode 100644
index 0000000000..e217601ae2
--- /dev/null
+++ b/azure-pipelines.yml
@@ -0,0 +1,31 @@
+
+pool:
+ vmImage: 'vs2017-win2016'
+
+steps:
+- checkout: self
+ fetchDepth: 10
+
+# cygwin package list not checked for minimality
+- script: |
+ powershell -Command "(New-Object Net.WebClient).DownloadFile('http://www.cygwin.com/setup-x86_64.exe', 'setup-x86_64.exe')"
+ SET CYGROOT=C:\cygwin64
+ SET CYGCACHE=%CYGROOT%\var\cache\setup
+ setup-x86_64.exe -qnNdO -R %CYGROOT% -l %CYGCACHE% -s %CYGMIRROR% -P rsync -P patch -P diffutils -P make -P unzip -P m4 -P findutils -P time -P wget -P curl -P git -P mingw64-x86_64-binutils,mingw64-x86_64-gcc-core,mingw64-x86_64-gcc-g++,mingw64-x86_64-pkg-config,mingw64-x86_64-windows_default_manifest -P mingw64-x86_64-headers,mingw64-x86_64-runtime,mingw64-x86_64-pthreads,mingw64-x86_64-zlib -P python
+
+ SET TARGET_ARCH=x86_64-w64-mingw32
+ SET CD_MFMT=%cd:\=/%
+ SET RESULT_INSTALLDIR_CFMT=%CD_MFMT:C:/=/cygdrive/c/%
+ C:\cygwin64\bin\bash -l %cd%\dev\build\windows\configure_profile.sh
+ displayName: 'Install cygwin'
+ env:
+ CYGMIRROR: "http://mirror.easyname.at/cygwin"
+
+- script: C:\cygwin64\bin\bash -l %cd%\dev\ci\azure-opam.sh
+ displayName: 'Install opam'
+
+- script: C:\cygwin64\bin\bash -l %cd%\dev\ci\azure-build.sh
+ displayName: 'Build Coq'
+
+- script: C:\cygwin64\bin\bash -l %cd%\dev\ci\azure-test.sh
+ displayName: 'Test Coq'
diff --git a/dev/ci/README-developers.md b/dev/ci/README-developers.md
index 6ca3aa2981..fa8962a06f 100644
--- a/dev/ci/README-developers.md
+++ b/dev/ci/README-developers.md
@@ -20,6 +20,9 @@ We are currently running tests on the following platforms:
- AppVeyor is used to test the compilation of Coq and run the test-suite on
Windows.
+- Azure Pipelines is used to test the compilation of Coq and run the
+ test-suite on Windows. It is expected to replace appveyor eventually.
+
You can anticipate the results of most of these tests prior to submitting your
PR by running GitLab CI on your private branches. To do so follow these steps:
diff --git a/dev/ci/azure-build.sh b/dev/ci/azure-build.sh
new file mode 100755
index 0000000000..c0030c566f
--- /dev/null
+++ b/dev/ci/azure-build.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+set -e -x
+
+cd $(dirname $0)/../..
+
+./configure -local
+make -j 2 byte
+make -j 2 world
diff --git a/dev/ci/azure-opam.sh b/dev/ci/azure-opam.sh
new file mode 100755
index 0000000000..8a1e36659c
--- /dev/null
+++ b/dev/ci/azure-opam.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+set -e -x
+
+OPAM_VARIANT=ocaml-variants.4.07.1+mingw64c
+
+wget https://github.com/fdopen/opam-repository-mingw/releases/download/0.0.0.2/opam64.tar.xz -O opam64.tar.xz
+tar -xf opam64.tar.xz
+bash opam64/install.sh
+
+opam init default -a -y "https://github.com/fdopen/opam-repository-mingw.git#opam2" -c $OPAM_VARIANT --disable-sandboxing
+eval "$(opam env)"
+opam install -y num ocamlfind ounit
diff --git a/dev/ci/azure-test.sh b/dev/ci/azure-test.sh
new file mode 100755
index 0000000000..8813245e5a
--- /dev/null
+++ b/dev/ci/azure-test.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+set -e -x
+
+#NB: if we make test-suite from the main makefile we get environment
+#too large for exec error
+cd $(dirname $0)/../../test-suite
+make -j 2 clean
+make -j 2 PRINT_LOGS=1