diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 731202f5f7..0000000000 --- a/.travis.yml +++ /dev/null @@ -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= diff --git a/ci/appveyor/after_build.bat b/ci/appveyor/after_build.bat deleted file mode 100644 index cdad0509e6..0000000000 --- a/ci/appveyor/after_build.bat +++ /dev/null @@ -1,17 +0,0 @@ -@echo on -cd %APPVEYOR_BUILD_FOLDER% - -build-msvc-release\bin\zig.exe version >version.txt -set /p ZIGVERSION=> /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 diff --git a/ci/azure/macos_script b/ci/azure/macos_script index dc108ad3c6..f6fdb9bfef 100755 --- a/ci/azure/macos_script +++ b/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 diff --git a/ci/azure/pipelines.yml b/ci/azure/pipelines.yml index d3bd237a3a..4748931831 100644 --- a/ci/azure/pipelines.yml +++ b/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' diff --git a/ci/azure/update_download_page b/ci/azure/update_download_page new file mode 100755 index 0000000000..43eb3f4b0a --- /dev/null +++ b/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" diff --git a/ci/azure/windows_install b/ci/azure/windows_install new file mode 100755 index 0000000000..345896cdbb --- /dev/null +++ b/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 diff --git a/ci/azure/windows_script.bat b/ci/azure/windows_script.bat new file mode 100644 index 0000000000..68291a64cd --- /dev/null +++ b/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 diff --git a/ci/azure/windows_upload b/ci/azure/windows_upload new file mode 100755 index 0000000000..0c253986a2 --- /dev/null +++ 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 diff --git a/ci/travis_linux_before_install b/ci/travis_linux_before_install deleted file mode 100755 index 7a3043be3a..0000000000 --- a/ci/travis_linux_before_install +++ /dev/null @@ -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 diff --git a/ci/travis_linux_install b/ci/travis_linux_install deleted file mode 100755 index ea2e931e6f..0000000000 --- a/ci/travis_linux_install +++ /dev/null @@ -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 diff --git a/ci/travis_linux_script b/ci/travis_linux_script deleted file mode 100755 index a1815be8ed..0000000000 --- a/ci/travis_linux_script +++ /dev/null @@ -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 diff --git a/ci/travis_osx_before_install b/ci/travis_osx_before_install deleted file mode 100755 index dba0d46734..0000000000 --- a/ci/travis_osx_before_install +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -set -x - -brew update diff --git a/ci/travis_osx_install b/ci/travis_osx_install deleted file mode 100755 index 2ad5e485c3..0000000000 --- a/ci/travis_osx_install +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -set -x - -brew install llvm@7 -brew outdated llvm@7 || brew upgrade llvm@7 - diff --git a/ci/travis_osx_script b/ci/travis_osx_script deleted file mode 100755 index 69c026f3a2..0000000000 --- a/ci/travis_osx_script +++ /dev/null @@ -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