|
|
|
# Avoid lengthy LLVM rebuilds on each newly pushed branch. Pull requests will
|
|
|
|
# be built anyway.
|
|
|
|
trigger:
|
|
|
|
- release
|
|
|
|
- dev
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
- job: Build
|
|
|
|
timeoutInMinutes: 240 # 4h
|
|
|
|
pool:
|
|
|
|
vmImage: 'VS2017-Win2016'
|
|
|
|
steps:
|
|
|
|
- task: GoTool@0
|
|
|
|
inputs:
|
|
|
|
version: '1.17'
|
|
|
|
- checkout: self
|
|
|
|
fetchDepth: 1
|
|
|
|
- task: Cache@2
|
|
|
|
displayName: Cache LLVM source
|
|
|
|
inputs:
|
|
|
|
key: llvm-source-11-windows-v1
|
|
|
|
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-11-windows-v5
|
|
|
|
path: llvm-build
|
|
|
|
- task: Bash@3
|
|
|
|
displayName: Build LLVM
|
|
|
|
inputs:
|
|
|
|
targetType: inline
|
|
|
|
script: |
|
|
|
|
if [ ! -f llvm-build/lib/liblldELF.a ]
|
|
|
|
then
|
|
|
|
# install dependencies
|
|
|
|
choco install ninja
|
|
|
|
# hack ninja to use fewer jobs
|
|
|
|
echo -e 'C:\\ProgramData\\Chocolatey\\bin\\ninja -j4 %*' > /usr/bin/ninja.bat
|
|
|
|
# build!
|
|
|
|
make llvm-build
|
|
|
|
fi
|
|
|
|
- task: Bash@3
|
|
|
|
displayName: Install QEMU
|
|
|
|
inputs:
|
|
|
|
targetType: inline
|
|
|
|
script: choco install qemu --version=2020.06.12
|
|
|
|
- task: CacheBeta@0
|
|
|
|
displayName: Cache wasi-libc sysroot
|
|
|
|
inputs:
|
|
|
|
key: wasi-libc-sysroot-v4
|
|
|
|
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 build/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 XTENSA=0
|