
This is only very minimal support. More support (such as tinygo flash, or peripheral access) should be added in later commits, to keep this one focused. Importantly, this commit changes the LLVM repo from llvm/llvm-project to tinygo-org/llvm-project. This provides a little bit of versioning in case something changes in the Espressif fork. If we want to upgrade to LLVM 11 it's easy to switch back to llvm/llvm-project until Espressif has updated their fork.
87 строки
2,4 КиБ
YAML
87 строки
2,4 КиБ
YAML
# 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
|
|
- 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
|