mirror of https://github.com/embarklabs/embark.git
179 lines
5.0 KiB
YAML
179 lines
5.0 KiB
YAML
# no PR triggers
|
||
pr: none
|
||
|
||
variables:
|
||
YARN_CACHE_FOLDER: $(Pipeline.Workspace)/.yarn
|
||
ipfsVersion: '0.4.22'
|
||
node10: '^10.17.0'
|
||
node12: '^12.0.0'
|
||
node13: '^13.0.0'
|
||
pythonVersion: '2.7.x'
|
||
yarnVersion: '1.19.1'
|
||
|
||
strategy:
|
||
matrix:
|
||
Node 10 / Linux:
|
||
nodeVersion: $(node10)
|
||
imageName: 'ubuntu-18.04'
|
||
Node 10 / macOS:
|
||
nodeVersion: $(node10)
|
||
imageName: 'macos-10.14'
|
||
Node 10 / Windows:
|
||
nodeVersion: $(node10)
|
||
imageName: 'vs2017-win2016'
|
||
Node 12 / Linux:
|
||
nodeVersion: $(node12)
|
||
imageName: 'ubuntu-18.04'
|
||
Node 12 / macOS:
|
||
nodeVersion: $(node12)
|
||
imageName: 'macos-10.14'
|
||
Node 12 / Windows:
|
||
nodeVersion: $(node12)
|
||
imageName: 'vs2017-win2016'
|
||
Node 13 / Linux:
|
||
nodeVersion: $(node13)
|
||
imageName: 'ubuntu-18.04'
|
||
Node 13 / macOS:
|
||
nodeVersion: $(node13)
|
||
imageName: 'macos-10.14'
|
||
Node 13 / Windows:
|
||
nodeVersion: $(node13)
|
||
imageName: 'vs2017-win2016'
|
||
|
||
pool:
|
||
vmImage: $(imageName)
|
||
|
||
steps:
|
||
- task: NodeTool@0
|
||
condition: succeeded()
|
||
displayName: 'Install Node.js'
|
||
inputs:
|
||
versionSpec: $(nodeVersion)
|
||
|
||
- task: UsepythonVersion@0
|
||
condition: succeeded()
|
||
displayName: 'Install Python'
|
||
inputs:
|
||
architecture: x64
|
||
versionSpec: $(pythonVersion)
|
||
|
||
- script: |
|
||
mkdir -p ../Downloads
|
||
cd ../Downloads
|
||
curl -L -o "solc" "https://github.com/ethereum/solidity/releases/download/v0.6.4/solc-static-linux"
|
||
chmod +x solc
|
||
displayName: Linux install Solc
|
||
condition: eq( variables['Agent.OS'], 'Linux' )
|
||
|
||
# NOTICE:
|
||
# Solc installation disabled for now until solc provides binaries for download.
|
||
# Installation on Mac via brew takes too long.
|
||
#
|
||
#- script: |
|
||
# brew update
|
||
# brew upgrade
|
||
# brew tap ethereum/ethereum
|
||
# brew install solidity
|
||
# displayName: Mac install Solc
|
||
# condition: eq( variables['Agent.OS'], 'Darwin' )
|
||
|
||
- powershell: |
|
||
mkdir -p ../Downloads
|
||
$client = new-object System.Net.WebClient
|
||
$client.DownloadFile("https://github.com/ethereum/solidity/releases/download/v0.6.4/solidity-windows.zip", "..\Downloads\solidity-windows.zip")
|
||
Expand-Archive –Path “..\Downloads\solidity-windows.zip” –Destination “..\Downloads\solidity-windows”
|
||
displayName: Windows install Solc
|
||
condition: eq( variables['Agent.OS'], 'Windows_NT' )
|
||
|
||
- bash: |
|
||
mkdir -p ../Downloads
|
||
cd ../Downloads
|
||
ARCHIVE_EXT="tar.gz"
|
||
if [[ "$AGENT_OS" = "Linux" ]]; then
|
||
OS="linux"
|
||
fi
|
||
if [[ "$AGENT_OS" = "Darwin" ]]; then
|
||
OS="darwin"
|
||
fi
|
||
if [[ "$AGENT_OS" = "Windows_NT" ]]; then
|
||
OS="windows"
|
||
ARCHIVE_EXT="zip"
|
||
fi
|
||
URL="https://dist.ipfs.io/go-ipfs/v${IPFSVERSION}/go-ipfs_v${IPFSVERSION}_${OS}-amd64.${ARCHIVE_EXT}"
|
||
curl -L -o "go-ipfs.${ARCHIVE_EXT}" "$URL"
|
||
if [[ "$AGENT_OS" = "Windows_NT" ]]; then
|
||
unzip go-ipfs.zip
|
||
else
|
||
tar xzvf go-ipfs.tar.gz
|
||
fi
|
||
condition: succeeded()
|
||
displayName: 'Install IPFS'
|
||
|
||
- bash: |
|
||
export PATH="$(cd ../Downloads && pwd)/go-ipfs:${PATH}"
|
||
ipfs version
|
||
ipfs init
|
||
condition: succeeded()
|
||
displayName: 'Initialize IPFS'
|
||
|
||
- bash: |
|
||
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version "$YARNVERSION"
|
||
export PATH="${HOME}/.yarn/bin:${HOME}/.config/yarn/global/node_modules/.bin:${PATH}"
|
||
yarn --version
|
||
mkdir -p ../Downloads/Yarn
|
||
condition: succeeded()
|
||
displayName: 'Install Yarn'
|
||
|
||
- task: Cache@2
|
||
inputs:
|
||
key: 'yarn | "$(Agent.OS)" | yarn.lock'
|
||
restoreKeys: |
|
||
yarn | "$(Agent.OS)"
|
||
yarn
|
||
path: $(YARN_CACHE_FOLDER)
|
||
displayName: 'Cache Yarn packages'
|
||
|
||
- bash: |
|
||
pushd "$PWD" &>/dev/null
|
||
cd ../Downloads
|
||
export PATH="${PWD}/go-ipfs:${PATH}"
|
||
export PATH="${PWD}:${PATH}"
|
||
export PATH="${HOME}/.yarn/bin:${HOME}/.config/yarn/global/node_modules/.bin:${PATH}"
|
||
yarn config set cache-folder "${YARN_CACHE_FOLDER}" &>/dev/null
|
||
popd &>/dev/null
|
||
npm run ci:full
|
||
condition: and( succeeded(), ne( variables['Agent.OS'], 'Windows_NT' ) )
|
||
displayName: 'Test (*nix)'
|
||
|
||
- powershell: |
|
||
pushd
|
||
cd ..\Downloads
|
||
$env:PATH="$($PWD.Path)\go-ipfs;$($env:PATH)"
|
||
$env:PATH="$($PWD.Path)\solidity-windows;$($env:PATH)"
|
||
$env:PATH="$($env:USERPROFILE)\.yarn\bin;$($env:USERPROFILE)\.config\yarn\global\node_modules\.bin;$($env:PATH)"
|
||
yarn config set cache-folder "$($YARN_CACHE_FOLDER)" | out-null
|
||
popd
|
||
npm run ci:full
|
||
condition: and( succeeded(), eq( variables['Agent.OS'], 'Windows_NT' ) )
|
||
displayName: 'Test (Windows)'
|
||
|
||
- bash: |
|
||
if [[ "$AGENT_OS" = "Linux" ]]; then
|
||
OS="Linux"
|
||
fi
|
||
if [[ "$AGENT_OS" = "Darwin" ]]; then
|
||
OS="macOS"
|
||
fi
|
||
if [[ "$AGENT_OS" = "Windows_NT" ]]; then
|
||
OS="Windows"
|
||
fi
|
||
export CI_PULL_REQUEST=$(node scripts/coveralls-pr-id)
|
||
if [[ -z "$CI_PULL_REQUEST" ]]; then
|
||
unset CI_PULL_REQUEST
|
||
fi
|
||
export COVERALLS_GIT_BRANCH=$(node scripts/coveralls-branch-name)
|
||
export COVERALLS_SERVICE_NAME="Azure Pipelines (${OS})"
|
||
npm run coveralls
|
||
condition: succeeded()
|
||
displayName: 'Coveralls'
|