mirror of https://github.com/tinygo-org/tinygo.git
wasmstm32webassemblymicrocontrollerarmavrspiwasiadafruitarduinocircuitplayground-expressgpioi2cllvmmicrobitnrf51nrf52nrf52840samd21tinygo
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.5 KiB
88 lines
2.5 KiB
# 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.15'
|
|
- checkout: self
|
|
fetchDepth: 1
|
|
- task: Cache@2
|
|
displayName: Cache LLVM source
|
|
inputs:
|
|
key: llvm-source-10-windows-v1
|
|
path: llvm-project
|
|
- task: Bash@3
|
|
displayName: Download LLVM source
|
|
inputs:
|
|
targetType: inline
|
|
script: |
|
|
make llvm-source
|
|
# Workaround for bad symlinks:
|
|
# https://github.com/microsoft/azure-pipelines-tasks/issues/13418
|
|
rm -f llvm-project/libcxx/test/std/input.output/filesystems/Inputs/static_test_env/bad_symlink
|
|
- task: CacheBeta@0
|
|
displayName: Cache LLVM build
|
|
inputs:
|
|
key: llvm-build-10-windows-v1
|
|
path: llvm-build
|
|
- task: Bash@3
|
|
displayName: Build LLVM
|
|
inputs:
|
|
targetType: inline
|
|
script: |
|
|
if [ ! -f llvm-build/lib/liblldELF.a ]
|
|
then
|
|
choco install ninja
|
|
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-v3
|
|
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
|
|
|