|
|
|
# Avoid lengthy LLVM rebuilds on each newly pushed branch. Pull requests will
|
|
|
|
# be built anyway.
|
|
|
|
trigger:
|
|
|
|
- master
|
|
|
|
- dev
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
- job: Build
|
|
|
|
timeoutInMinutes: 240 # 4h
|
|
|
|
pool:
|
|
|
|
vmImage: 'VS2017-Win2016'
|
|
|
|
steps:
|
|
|
|
- task: GoTool@0
|
|
|
|
inputs:
|
|
|
|
version: '1.13.8'
|
|
|
|
- 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: CacheBeta@0
|
|
|
|
displayName: Cache wasi-libc sysroot
|
|
|
|
inputs:
|
|
|
|
key: wasi-libc-sysroot-v1
|
|
|
|
path: lib/wasi-libc/sysroot
|
|
|
|
- task: Bash@3
|
|
|
|
displayName: Build wasi-libc
|
|
|
|
inputs:
|
|
|
|
targetType: inline
|
|
|
|
script: PATH=/usr/bin:$PATH make wasi-libc
|
|
|
|
- task: Bash@3
|
|
|
|
displayName: Test TinyGo
|
|
|
|
inputs:
|
|
|
|
targetType: inline
|
|
|
|
script: |
|
|
|
|
export PATH="$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="$PATH:./llvm-build/bin:/c/Program Files/qemu"
|
|
|
|
unset GOROOT
|
|
|
|
make release -j4
|
|
|
|
- publish: $(System.DefaultWorkingDirectory)/build/release/tinygo
|
|
|
|
displayName: Publish zip as artifact
|
|
|
|
artifact: tinygo
|
|
|
|
- task: Bash@3
|
|
|
|
displayName: Smoke tests
|
|
|
|
inputs:
|
|
|
|
targetType: inline
|
|
|
|
script: |
|
|
|
|
export PATH="$PATH:./llvm-build/bin:/c/Program Files/qemu"
|
|
|
|
unset GOROOT
|
|
|
|
make smoketest TINYGO=build/tinygo AVR=0
|