Commit c2df9236c4

Andrew Kelley <superjoe30@gmail.com>
2018-11-04 22:24:46
ci: use azure for all CI
* appveyor and travis are removed * add a job to update the download page when all targets pass. closes #1046
1 parent 5d014d4
ci/appveyor/after_build.bat
@@ -1,17 +0,0 @@
-@echo on
-cd %APPVEYOR_BUILD_FOLDER%
-
-build-msvc-release\bin\zig.exe version >version.txt
-set /p ZIGVERSION=<version.txt
-appveyor UpdateBuild -Version "%ZIGVERSION%"
-SET "RELEASEDIR=zig-%ZIGVERSION%"
-mkdir "%RELEASEDIR%"
-move build-msvc-release\bin\zig.exe "%RELEASEDIR%"
-move build-msvc-release\lib "%RELEASEDIR%"
-move zig-cache\langref.html "%RELEASEDIR%"
-move LICENSE "%RELEASEDIR%"
-
-SET "RELEASEZIP=zig-%ZIGVERSION%.zip"
-
-7z a "%RELEASEZIP%" "%RELEASEDIR%"
-appveyor PushArtifact "%RELEASEZIP%"
ci/appveyor/appveyor.yml
@@ -1,9 +0,0 @@
-image: Visual Studio 2017
-platform:
-  - x64
-build_script:
-  - '%APPVEYOR_BUILD_FOLDER%\ci\appveyor\build_script.bat'
-after_build:
-  - '%APPVEYOR_BUILD_FOLDER%\ci\appveyor\after_build.bat'
-cache:
-  - 'llvm+clang-7.0.0-win64-msvc-release.tar.xz'
ci/appveyor/build_script.bat
@@ -1,26 +0,0 @@
-@echo on
-cd %APPVEYOR_BUILD_FOLDER%
-SET "PREVPATH=%PATH%"
-SET "PREVMSYSEM=%MSYSTEM%"
-
-SET "PATH=C:\msys64\mingw64\bin;C:\msys64\usr\bin;%PATH%"
-SET "MSYSTEM=MINGW64"
-SET "APPVEYOR_CACHE_ENTRY_ZIP_ARGS=-m0=Copy"
-
-bash -lc "cd ${APPVEYOR_BUILD_FOLDER} && if [ -s ""llvm+clang-7.0.0-win64-msvc-release.tar.xz"" ]; then echo 'skipping LLVM download'; else wget 'https://s3.amazonaws.com/ziglang.org/deps/llvm%%2bclang-7.0.0-win64-msvc-release.tar.xz'; fi && tar xf llvm+clang-7.0.0-win64-msvc-release.tar.xz" || exit /b
-
-
-SET "PATH=%PREVPATH%"
-SET "MSYSTEM=%PREVMSYSTEM%"
-SET "ZIGBUILDDIR=%APPVEYOR_BUILD_FOLDER%\build-msvc-release"
-SET "ZIGPREFIXPATH=%APPVEYOR_BUILD_FOLDER%\llvm+clang-7.0.0-win64-msvc-release"
-
-call "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64
-call "C:\Program Files (x86)\Microsoft Visual Studio 15.0\VC\vcvarsall.bat" x86_amd64
-
-mkdir %ZIGBUILDDIR%
-cd %ZIGBUILDDIR%
-cmake.exe .. -Thost=x64 -G"Visual Studio 15 2017 Win64" "-DCMAKE_INSTALL_PREFIX=%ZIGBUILDDIR%" "-DCMAKE_PREFIX_PATH=%ZIGPREFIXPATH%" -DCMAKE_BUILD_TYPE=Release || exit /b
-msbuild /p:Configuration=Release INSTALL.vcxproj || exit /b
-
-bin\zig.exe build --build-file ..\build.zig test -Dskip-release || exit /b
ci/azure/linux_script
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+set -x
+set -e
+
+BUILDDIR="$(pwd)"
+
+sudo sh -c 'echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main" >> /etc/apt/sources.list'
+wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
+sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
+sudo apt-get update -q
+
+sudo apt-get remove -y llvm-*
+sudo rm -rf /usr/local/*
+sudo apt-get install -y libxml2-dev libclang-7-dev llvm-7 llvm-7-dev cmake s3cmd gcc-7 g++-7
+
+export CC=gcc-7
+export CXX=g++-7
+mkdir build
+cd build
+cmake .. -DCMAKE_BUILD_TYPE=Release
+make -j2 install
+./zig build --build-file ../build.zig test
+
+if [ "${BUILD_REASON}" != "PullRequest" ]; then
+  ARTIFACTSDIR="$BUILDDIR/artifacts"
+  mkdir "$ARTIFACTSDIR"
+  docker run -i --mount type=bind,source="$ARTIFACTSDIR",target=/z ziglang/static-base:llvm7-1 -j2 $BUILD_SOURCEVERSION
+  TARBALL="$(ls $ARTIFACTSDIR)"
+  mv "$DOWNLOADSECUREFILE_SECUREFILEPATH" "$HOME/.s3cfg"
+  s3cmd put -P "$ARTIFACTSDIR/$TARBALL" s3://ziglang.org/builds/
+  touch empty
+  s3cmd put -P empty s3://ziglang.org/builds/zig-linux-x86_64-$BUILD_SOURCEBRANCHNAME.tar.xz --add-header="Cache-Control: max-age=0, must-revalidate" --add-header=x-amz-website-redirect-location:/builds/$TARBALL
+
+  SHASUM=$(sha256sum $ARTIFACTSDIR/$TARBALL)
+  BYTESIZE=$(wc -c < $ARTIFACTSDIR/$TARBALL)
+  echo "##vso[task.setvariable variable=tarball;isOutput=true]$TARBALL"
+  echo "##vso[task.setvariable variable=shasum;isOutput=true]$SHASUM"
+  echo "##vso[task.setvariable variable=bytesize;isOutput=true]$BYTESIZE"
+fi
ci/azure/macos_script
@@ -95,4 +95,10 @@ if [ "${BUILD_REASON}" != "PullRequest" ]; then
   s3cmd put -P "$TARBALL" s3://ziglang.org/builds/
   touch empty
   s3cmd put -P empty s3://ziglang.org/builds/zig-macos-x86_64-$BUILD_SOURCEBRANCHNAME.tar.xz --add-header="Cache-Control: max-age=0, must-revalidate" --add-header="x-amz-website-redirect-location:/builds/$TARBALL"
+
+  SHASUM=$(sha256sum $TARBALL)
+  BYTESIZE=$(wc -c < $TARBALL)
+  echo "##vso[task.setvariable variable=tarball;isOutput=true]$TARBALL"
+  echo "##vso[task.setvariable variable=shasum;isOutput=true]$SHASUM"
+  echo "##vso[task.setvariable variable=bytesize;isOutput=true]$BYTESIZE"
 fi
ci/azure/pipelines.yml
@@ -1,5 +1,5 @@
 jobs:
-- job: Build
+- job: BuildMacOS
   pool:
     vmImage: 'macOS 10.13'
 
@@ -10,4 +10,60 @@ jobs:
     inputs:
       secureFile: s3cfg
   - script: ci/azure/macos_script
-    displayName: 'macOS build and test'
+    name: main
+    displayName: 'Build and test'
+- job: BuildLinux
+  pool:
+    vmImage: 'ubuntu-16.04'
+
+  timeoutInMinutes: 360
+
+  steps:
+  - task: DownloadSecureFile@1
+    inputs:
+      secureFile: s3cfg
+  - script: ci/azure/linux_script
+    name: main
+    displayName: 'Build and test'
+- job: BuildWindows
+  pool:
+    vmImage: 'vs2017-win2016'
+
+  timeoutInMinutes: 360
+
+  steps:
+  - script: |
+      git clone https://github.com/lazka/msys2-ci-base.git %CD:~0,2%\msys64
+      %CD:~0,2%\msys64\usr\bin\rm -rf %CD:~0,2%\msys64\.git
+      set PATH=%CD:~0,2%\msys64\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem
+      %CD:~0,2%\msys64\usr\bin\pacman --noconfirm -Syyuu
+    displayName: Install and Update MSYS2
+  - task: DownloadSecureFile@1
+    inputs:
+      secureFile: s3cfg
+  - script: ci/azure/windows_script.bat
+    name: main
+    displayName: 'Build and test'
+- job: UpdateDownloadPage
+  dependsOn:
+  - BuildMacOS
+  - BuildLinux
+  - BuildWindows
+  condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
+  pool:
+    vmImage: 'ubuntu-16.04'
+  variables:
+    macos_tarball: $[ dependencies.BuildMacOS.outputs['main.tarball'] ]
+    macos_shasum: $[ dependencies.BuildMacOS.outputs['main.shasum'] ]
+    macos_bytesize: $[ dependencies.BuildMacOS.outputs['main.bytesize'] ]
+    linux_tarball: $[ dependencies.BuildLinux.outputs['main.tarball'] ]
+    linux_shasum: $[ dependencies.BuildLinux.outputs['main.shasum'] ]
+    linux_bytesize: $[ dependencies.BuildLinux.outputs['main.bytesize'] ]
+    windows_tarball: $[ dependencies.BuildWindows.outputs['main.tarball'] ]
+    windows_shasum: $[ dependencies.BuildWindows.outputs['main.shasum'] ]
+    windows_bytesize: $[ dependencies.BuildWindows.outputs['main.bytesize'] ]
+  - task: DownloadSecureFile@1
+    inputs:
+      secureFile: s3cfg
+  - script: ci/azure/update_download_page
+    displayName: 'Update download page'
ci/azure/update_download_page
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+set -x
+set -e
+
+cd "$HOME"
+wget "https://ziglang.org/builds/$LINUX_TARBALL"
+tar xf $LINUX_TARBALL
+rm $LINUX_TARBALL
+ZIG="$(ls zig-*)/zig"
+LANGREF="$(ls zig-*)/langref.html"
+
+git clone https://github.com/ziglang/www.ziglang.org --depth 1
+cd www.ziglang.org
+export MASTER_DATE=$(date +%Y-%m-%d)
+"$ZIG" run update-download-page.zig
+
+mv "$DOWNLOADSECUREFILE_SECUREFILEPATH" "$HOME/.s3cfg"
+s3cmd put -P "$LANGREF" s3://ziglang.org/documentation/master/index.html --add-header="Cache-Control: max-age=0, must-revalidate"
+s3cmd put -P www/download/index.html s3://ziglang.org/download/index.html --add-header="Cache-Control: max-age=0, must-revalidate"
ci/azure/windows_install
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -x
+set -e
+
+pacman -S --needed --noconfirm wget zip python3-pip
+pip install s3cmd
+wget "https://ziglang.org/deps/llvm%2bclang-7.0.0-win64-msvc-release.tar.xz"
+tar xf llvm+clang-7.0.0-win64-msvc-release.tar.xz
ci/azure/windows_script.bat
@@ -0,0 +1,27 @@
+@echo on
+SET "SRCROOT=%cd%"
+SET "PREVPATH=%PATH%"
+SET "PREVMSYSEM=%MSYSTEM%"
+
+set "PATH=%CD:~0,2%\msys64\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem"
+SET "MSYSTEM=MINGW64"
+bash -lc "cd ${SRCROOT} && ci/azure/windows_install" || exit /b
+SET "PATH=%PREVPATH%"
+SET "MSYSTEM=%PREVMSYSTEM%"
+
+SET "ZIGBUILDDIR=%SRCROOT%\build"
+SET "ZIGINSTALLDIR=%ZIGBUILDDIR%\release"
+SET "ZIGPREFIXPATH=%SRCROOT%\llvm+clang-7.0.0-win64-msvc-release"
+
+call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
+
+mkdir %ZIGBUILDDIR%
+cd %ZIGBUILDDIR%
+cmake.exe .. -Thost=x64 -G"Visual Studio 15 2017 Win64" "-DCMAKE_INSTALL_PREFIX=%ZIGINSTALLDIR%" "-DCMAKE_PREFIX_PATH=%ZIGPREFIXPATH%" -DCMAKE_BUILD_TYPE=Release || exit /b
+msbuild /p:Configuration=Release INSTALL.vcxproj || exit /b
+
+"%ZIGINSTALLDIR%\bin\zig.exe" build --build-file ..\build.zig test || exit /b
+
+set "PATH=%CD:~0,2%\msys64\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem"
+SET "MSYSTEM=MINGW64"
+bash -lc "cd ${SRCROOT} && ci/azure/windows_upload" || exit /b
ci/azure/windows_upload
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+set -x
+set -e
+
+if [ "${BUILD_REASON}" != "PullRequest" ]; then
+  cd "$ZIGBUILDDIR"
+
+  mv ../LICENSE release/
+  mv ../zig-cache/langref.html release/
+  mv release/bin/zig.exe release/
+  rmdir release/bin
+
+  VERSION=$(release/zig.exe version)
+  DIRNAME="zig-windows-x86_64-$VERSION"
+  TARBALL="$DIRNAME.zip"
+  mv release "$DIRNAME"
+  zip -r "$TARBALL" "$DIRNAME"
+
+  mv "$DOWNLOADSECUREFILE_SECUREFILEPATH" "$HOME/.s3cfg"
+  s3cmd put -P "$TARBALL" s3://ziglang.org/builds/
+  touch empty
+  s3cmd put -P empty s3://ziglang.org/builds/zig-windows-x86_64-$BUILD_SOURCEBRANCHNAME.tar.xz --add-header="Cache-Control: max-age=0, must-revalidate" --add-header="x-amz-website-redirect-location:/builds/$TARBALL"
+
+  SHASUM=$(sha256sum $TARBALL)
+  BYTESIZE=$(wc -c < $TARBALL)
+  echo "##vso[task.setvariable variable=tarball;isOutput=true]$TARBALL"
+  echo "##vso[task.setvariable variable=shasum;isOutput=true]$SHASUM"
+  echo "##vso[task.setvariable variable=bytesize;isOutput=true]$BYTESIZE"
+fi
ci/travis_linux_before_install
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-set -x
-
-sudo sh -c 'echo "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-7 main" >> /etc/apt/sources.list'
-wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
-sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
-sudo apt-get update -q
ci/travis_linux_install
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-set -x
-
-sudo apt-get remove -y llvm-*
-sudo rm -rf /usr/local/*
-sudo apt-get install -y libxml2-dev libclang-7-dev llvm-7 llvm-7-dev cmake s3cmd gcc-7 g++-7
ci/travis_linux_script
@@ -1,26 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-export CC=gcc-7
-export CXX=g++-7
-echo $PATH
-mkdir build
-cd build
-cmake .. -DCMAKE_BUILD_TYPE=Release
-make -j2 install
-./zig build --build-file ../build.zig test -Dskip-release-small
-
-if [ "${TRAVIS_PULL_REQUEST}" = "false" ]; then
-  mkdir $TRAVIS_BUILD_DIR/artifacts
-  docker run -it --mount type=bind,source="$TRAVIS_BUILD_DIR/artifacts",target=/z ziglang/static-base:llvm7-1 -j2 $TRAVIS_COMMIT
-  echo "access_key = $AWS_ACCESS_KEY_ID" >> ~/.s3cfg
-  echo "secret_key = $AWS_SECRET_ACCESS_KEY" >> ~/.s3cfg
-  s3cmd put -P $TRAVIS_BUILD_DIR/artifacts/* s3://ziglang.org/builds/
-  touch empty
-  s3cmd put -P empty s3://ziglang.org/builds/zig-linux-x86_64-$TRAVIS_BRANCH.tar.xz --add-header="Cache-Control: max-age=0, must-revalidate" --add-header=x-amz-website-redirect-location:/builds/$(ls $TRAVIS_BUILD_DIR/artifacts)
-  if [ "${TRAVIS_BRANCH}" = "master" ]; then
-    s3cmd put -P ../zig-cache/langref.html s3://ziglang.org/documentation/master/index.html --add-header="Cache-Control: max-age=0, must-revalidate"
-  fi
-fi
ci/travis_osx_before_install
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-set -x
-
-brew update
ci/travis_osx_install
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-set -x
-
-brew install llvm@7
-brew outdated llvm@7 || brew upgrade llvm@7
-
ci/travis_osx_script
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-mkdir build
-cd build
-cmake .. -DCMAKE_PREFIX_PATH=/usr/local/opt/llvm@7/ -DCMAKE_BUILD_TYPE=Release
-make VERBOSE=1
-make install
-
-./zig build --build-file ../build.zig test -Dskip-release-small
.travis.yml
@@ -1,22 +0,0 @@
-sudo: required
-services:
-- docker
-os:
-- linux
-- osx
-dist: trusty
-osx_image: xcode8.3
-language: cpp
-before_install:
-- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ci/travis_linux_before_install; fi
-- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ci/travis_osx_before_install; fi
-install:
-- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ci/travis_linux_install; fi
-- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ci/travis_osx_install; fi
-script:
-- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ci/travis_linux_script; fi
-- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ci/travis_osx_script; fi
-env:
-  global:
-  - secure: QmJ+eLOxj3Irl5SHxt6lQvrj7++1AIz8bYri6RScAQGHQPIztkmbpBjAkpFgYaWPkZ04ROtamFXdS7oHtJHSECesgPoqM/CHIychQkgpDq30+TsFyYbBpDGHY+N6r2WnQTvg+9EuAp6P365us6qFS0D5zQ3P40c56uMbazFu3J4W1HZP+pLWlLjEXaN88ePhHWqNZyvwGMkLpYl3ghcrE9H4vGZQ7jenRW4UmskLEkuhUPJbQiow3Td8arJiRmLVISzWqneqNraLUpGyUVr4F3Rbjzacfoo3r9ZZynhY0mFsEye82x6TMGgH2xsNGkd91zpQuckWUT+pQv/G6FXpnEnjIJSO2Z5WAxXrx6xB1k2HZ17/4NWLF3fJVhdQJm3mS6odeGzUjgGrl1A42evxU+7VbcofEJq1aMiLgU1jUT2pt+pefCwmKJYLpEsSzuyrVxgvskQz0QpC053TAYSNf2Jj6Qhg9YDWyOeemYmDgffTqErF7AYhc6NKH0s0XKkIiNFSxorkEsfG/Ck1o+15slHNmWZXlmXToxDqFkLDoPvfGKg7koU5YTGvci/F9ZKb1juhGLxZbwap/18zN40BqA+Ip2yDBJAKxsIiwSjSIguy6g/Z1I50s0xNGOr36urfRRQX5H+rqr/xCZ63B6WSe6qBcZboWAQMDn8HLS9Xiwc=
-  - secure: dnb7r5guUeMOX9e7XlPUSZzmga8VW3G9Q1aa7LxEKiTjSnWhu5KpPDe8o1X3Rj6nc5iXDqmBH/C/7eNXPDyXJJWPvpE2YRpGymyUkRaakul0QBKJEaMvwy2SuAfS69CWC+TSzfGRvtSYkdpBhhLvs0h5S819S5jYbCNSCmOKfFucaP5NsHNIZ/I19oIeTPTa0/UnVm7DLFZXZjvbS+czkdyH1DhbT85sLj+XqNTzLePImE68efrjaHnlSy/CzBVJzj55UgD5i9fxNCQWzGWim/SD5xZ0zKtLycSOf6wQN2lCo0lkjw9rDlYz69mM5L9ikfYL9oHDPZnh84oXKglQ5miOHCgqs/qs4439I05lIu8i/EfbFA55YG4NyO3rL9YVOOt5gwiwvJYhDcnkVVzSl0o5bsoZgQfYvPWaIQKNkl3C53zfDQjgqS54CeDzlZpFrQTDQ1RrH8oeVC1gfYAeMabMDadox5rfZmLIN5JTf/F8iD/QdxGcoUvkEENcQgfP9PnubExtexgHGsEmqbm6ORSZ1MkEh2m3fo0f8KE6TbN1UigmcQ8nTkWBHsSmfHnB8HwJQp8mwQmDamXA+Hl3e3w4LOdYkJVlNW1/TTyJJOOvjMQCjF8SJmPHuh+QpqKbSaT9XM/vBhxbIZEufH8kawJKCBBcCNspGMNjhXfNjM0=