|
|
|
# Avoid lengthy LLVM rebuilds on each newly pushed branch. Pull requests will
|
|
|
|
# be built anyway.
|
|
|
|
trigger:
|
|
|
|
- master
|
|
|
|
- dev
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
- job: Build
|
|
|
|
timeoutInMinutes: 180
|
|
|
|
pool:
|
|
|
|
vmImage: 'VS2017-Win2016'
|
|
|
|
steps:
|
|
|
|
- checkout: self
|
|
|
|
- task: CacheBeta@0
|
|
|
|
displayName: Cache LLVM source
|
|
|
|
inputs:
|
|
|
|
key: llvm-source-9-windows-v0
|
|
|
|
path: llvm-project
|
|
|
|
- task: Bash@3
|
|
|
|
displayName: Download LLVM source
|
|
|
|
inputs:
|
|
|
|
targetType: inline
|
|
|
|
script: make llvm-source
|
|
|
|
- task: CacheBeta@0
|
|
|
|
displayName: Cache LLVM build
|
|
|
|
inputs:
|
|
|
|
key: llvm-build-9-windows-v0
|
|
|
|
path: llvm-build
|
|
|
|
- task: Bash@3
|
|
|
|
displayName: Build LLVM
|
|
|
|
inputs:
|
|
|
|
targetType: inline
|
|
|
|
script: |
|
|
|
|
if [ ! -f llvm-build/lib/liblldELF.a ]
|
|
|
|
then
|
|
|
|
choco install ninja
|
|
|
|
# LLVM 9 cannot be built with MinGW 8.
|
|
|
|
# For details: https://reviews.llvm.org/D70266
|
|
|
|
choco uninstall mingw
|
|
|
|
choco install mingw --version=7.3.0
|
|
|
|
make llvm-build
|
|
|
|
fi
|
|
|
|
- task: Bash@3
|
|
|
|
displayName: Install QEMU
|
|
|
|
inputs:
|
|
|
|
targetType: inline
|
|
|
|
script: choco install qemu
|
|
|
|
- task: Bash@3
|
|
|
|
displayName: Test TinyGo
|
|
|
|
inputs:
|
|
|
|
targetType: inline
|
|
|
|
script: |
|
|
|
|
export PATH="/c/Go1.13/bin:$PATH:./llvm-build/bin:/c/Program Files/qemu"
|
|
|
|
unset GOROOT
|
|
|
|
make test
|
|
|
|
- task: Bash@3
|
|
|
|
displayName: Build TinyGo release tarball
|
|
|
|
inputs:
|
|
|
|
targetType: inline
|
|
|
|
script: |
|
|
|
|
export PATH="/c/Go1.13/bin:$PATH:./llvm-build/bin:/c/Program Files/qemu"
|
|
|
|
unset GOROOT
|
|
|
|
make release -j4
|
|
|
|
- publish: $(System.DefaultWorkingDirectory)/build/release.tar.gz
|
|
|
|
displayName: Publish tarball as artifact
|
|
|
|
artifact: tinygo.windows-amd64.tar.gz
|
|
|
|
- task: Bash@3
|
|
|
|
displayName: Smoke tests
|
|
|
|
inputs:
|
|
|
|
targetType: inline
|
|
|
|
script: |
|
|
|
|
export PATH="/c/Go1.13/bin:$PATH:./llvm-build/bin:/c/Program Files/qemu"
|
|
|
|
unset GOROOT
|
|
|
|
make smoketest TINYGO=build/tinygo AVR=0
|