mirror of
https://github.com/valitydev/osquery-1.git
synced 2024-11-06 09:35:20 +00:00
e51098b76a
All the tests under tests/ and plugins/from the root of the project were not run.
361 lines
9.7 KiB
YAML
361 lines
9.7 KiB
YAML
trigger:
|
|
- master
|
|
|
|
jobs:
|
|
|
|
# LINUX
|
|
|
|
- job: LinuxCMake
|
|
|
|
strategy:
|
|
matrix:
|
|
Release:
|
|
BUILD_TYPE: Release
|
|
EXTRA_CMAKE_ARGS:
|
|
Debug:
|
|
BUILD_TYPE: Debug
|
|
EXTRA_CMAKE_ARGS: -DOSQUERY_NO_DEBUG_SYMBOLS=ON
|
|
|
|
pool:
|
|
vmImage: 'Ubuntu-16.04'
|
|
|
|
container:
|
|
image: trailofbits/osquery:ubuntu-18.04
|
|
options: --privileged
|
|
|
|
timeoutInMinutes: 120
|
|
|
|
steps:
|
|
- script: mkdir $(Build.BinariesDirectory)/build
|
|
displayName: "Create build folder"
|
|
|
|
- task: CMake@1
|
|
displayName: "Configure osquery"
|
|
inputs:
|
|
workingDirectory: $(Build.BinariesDirectory)/build
|
|
cmakeArgs:
|
|
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE)
|
|
-DCMAKE_C_COMPILER=clang
|
|
-DCMAKE_CXX_COMPILER=clang++
|
|
-DOSQUERY_BUILD_TESTS=ON
|
|
$(EXTRA_CMAKE_ARGS)
|
|
$(Build.SourcesDirectory)
|
|
|
|
- task: CMake@1
|
|
displayName: "Check code formatting"
|
|
inputs:
|
|
workingDirectory: $(Build.BinariesDirectory)/build
|
|
cmakeArgs: --build . --target format_check
|
|
|
|
- task: CMake@1
|
|
displayName: "Build osquery"
|
|
inputs:
|
|
workingDirectory: $(Build.BinariesDirectory)/build
|
|
cmakeArgs: --build . -j 3
|
|
|
|
- script: |
|
|
ctest --build-nocmake -V
|
|
displayName: "Run tests"
|
|
workingDirectory: $(Build.BinariesDirectory)/build
|
|
|
|
- script: |
|
|
echo "##vso[task.setvariable variable=Status;isOutput=true]1"
|
|
name: JobResult
|
|
|
|
|
|
- job: LinuxBuck
|
|
displayName: "LinuxBuck Release"
|
|
|
|
pool:
|
|
vmImage: 'Ubuntu-16.04'
|
|
|
|
container:
|
|
image: trailofbits/osql-experimental:ubuntu-18.04
|
|
options: --privileged
|
|
|
|
steps:
|
|
- script: |
|
|
wget https://github.com/facebook/buck/releases/download/v2019.06.17.01/buck.2019.06.17.01_all.deb
|
|
sudo apt update
|
|
sudo apt install -q -y --no-install-recommends ./buck.2019.06.17.01_all.deb openjdk-8-jre python3-distutils
|
|
workingDirectory: $(Build.BinariesDirectory)
|
|
|
|
- script: |
|
|
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
|
|
buck build @mode/linux-x86_64/release osquery:osqueryd
|
|
displayName: "Build osquery"
|
|
|
|
- script: |
|
|
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
|
|
buck test @mode/linux-x86_64/release osquery/... tests/... plugins/...
|
|
displayName: "Run tests"
|
|
|
|
- script: |
|
|
echo "##vso[task.setvariable variable=Status;isOutput=true]1"
|
|
name: JobResult
|
|
|
|
|
|
- job: Linux
|
|
|
|
pool:
|
|
vmImage: 'Ubuntu-16.04'
|
|
|
|
condition: succeededOrFailed()
|
|
|
|
dependsOn:
|
|
- LinuxCMake
|
|
- LinuxBuck
|
|
|
|
variables:
|
|
LinuxCMakeReleaseStatus: $[ dependencies.LinuxCMake.outputs['Release.JobResult.Status'] ]
|
|
LinuxCMakeDebugStatus: $[ dependencies.LinuxCMake.outputs['Debug.JobResult.Status'] ]
|
|
LinuxBuckReleaseStatus: $[ dependencies.LinuxBuck.outputs['JobResult.Status'] ]
|
|
|
|
steps:
|
|
- checkout: none
|
|
|
|
- script: |
|
|
if [ -z "$(LinuxCMakeReleaseStatus)" ] || [ -z "$(LinuxCMakeDebugStatus)" ] || \
|
|
[ -z "$(LinuxBuckReleaseStatus)" ]
|
|
then
|
|
exit 1
|
|
fi
|
|
displayName: "Detect Linux jobs build statuses"
|
|
|
|
# LINUX
|
|
|
|
# MACOS
|
|
|
|
- job: macOSCMake
|
|
|
|
strategy:
|
|
matrix:
|
|
Release:
|
|
BUILD_TYPE: Release
|
|
EXTRA_CMAKE_ARGS:
|
|
Debug:
|
|
BUILD_TYPE: Debug
|
|
EXTRA_CMAKE_ARGS: -DOSQUERY_NO_DEBUG_SYMBOLS=ON
|
|
|
|
pool:
|
|
vmImage: macos-10.14
|
|
|
|
steps:
|
|
- script: |
|
|
brew upgrade
|
|
brew install ccache flex bison
|
|
displayName: "Install Homebrew and prerequisites"
|
|
timeoutInMinutes: 20
|
|
|
|
- script: mkdir $(Build.BinariesDirectory)/build
|
|
displayName: "Create build folder"
|
|
|
|
- task: CMake@1
|
|
displayName: "Configure osquery"
|
|
inputs:
|
|
workingDirectory: $(Build.BinariesDirectory)/build
|
|
cmakeArgs: -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DOSQUERY_BUILD_TESTS=ON $(EXTRA_CMAKE_ARGS) $(Build.SourcesDirectory)
|
|
|
|
- task: CMake@1
|
|
displayName: "Build osquery"
|
|
inputs:
|
|
workingDirectory: $(Build.BinariesDirectory)/build
|
|
cmakeArgs: --build . -j 3
|
|
|
|
- script: |
|
|
ctest --build-nocmake -V
|
|
displayName: "Run tests"
|
|
workingDirectory: $(Build.BinariesDirectory)/build
|
|
|
|
- script: |
|
|
echo "##vso[task.setvariable variable=Status;isOutput=true]1"
|
|
name: JobResult
|
|
|
|
|
|
- job: macOSBuck
|
|
displayName: "macOSBuck Release"
|
|
|
|
pool:
|
|
vmImage: macos-10.14
|
|
|
|
steps:
|
|
- script: |
|
|
brew tap facebook/fb
|
|
brew upgrade
|
|
brew cask install adoptopenjdk8
|
|
brew install buck watchman
|
|
displayName: "Install Homebrew and prerequisites"
|
|
timeoutInMinutes: 20
|
|
|
|
- script: |
|
|
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
|
|
buck build @mode/macos-x86_64/release osquery:osqueryd
|
|
displayName: "Build osquery"
|
|
|
|
- script: |
|
|
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
|
|
buck test @mode/macos-x86_64/release osquery/... tests/... plugins/...
|
|
displayName: "Run tests"
|
|
|
|
- script: |
|
|
echo "##vso[task.setvariable variable=Status;isOutput=true]1"
|
|
name: JobResult
|
|
|
|
|
|
- job: macOS
|
|
|
|
pool:
|
|
vmImage: 'Ubuntu-16.04'
|
|
|
|
condition: succeededOrFailed()
|
|
|
|
dependsOn:
|
|
- macOSCMake
|
|
- macOSBuck
|
|
|
|
variables:
|
|
macOSCMakeReleaseStatus: $[ dependencies.macOSCMake.outputs['Release.JobResult.Status'] ]
|
|
macOSCMakeDebugStatus: $[ dependencies.macOSCMake.outputs['Debug.JobResult.Status'] ]
|
|
macOSBuckReleaseStatus: $[ dependencies.macOSBuck.outputs['JobResult.Status'] ]
|
|
|
|
steps:
|
|
- checkout: none
|
|
|
|
- script: |
|
|
if [ -z "$(macOSCMakeReleaseStatus)" ] || [ -z "$(macOSCMakeDebugStatus)" ] || \
|
|
[ -z "$(macOSBuckReleaseStatus)" ]
|
|
then
|
|
exit 1
|
|
fi
|
|
displayName: "Detect macOS jobs build statuses"
|
|
|
|
# MACOS
|
|
|
|
# WINDOWS
|
|
|
|
- job: WindowsCMake
|
|
displayName: "WindowsCMake Release"
|
|
|
|
pool:
|
|
vmImage: vs2017-win2016
|
|
|
|
steps:
|
|
- powershell: |
|
|
git config --global core.autocrlf false
|
|
|
|
- checkout: self
|
|
|
|
- powershell: |
|
|
mkdir $(Build.BinariesDirectory)\build
|
|
displayName: "Create build folder"
|
|
|
|
- task: CMake@1
|
|
displayName: "Configure osquery"
|
|
inputs:
|
|
workingDirectory: $(Build.BinariesDirectory)\build
|
|
cmakeArgs: -G "Visual Studio 15 2017 Win64" -T host=x64 -DOSQUERY_BUILD_TESTS=ON $(Build.SourcesDirectory)
|
|
|
|
- task: CMake@1
|
|
displayName: "Build osquery"
|
|
inputs:
|
|
workingDirectory: $(Build.BinariesDirectory)\build
|
|
cmakeArgs: --build . -j 3 --config Release
|
|
|
|
- powershell: |
|
|
ctest --build-nocmake -C Release -V
|
|
displayName: "Run tests"
|
|
workingDirectory: $(Build.BinariesDirectory)/build
|
|
|
|
- powershell: |
|
|
echo "##vso[task.setvariable variable=Status;isOutput=true]1"
|
|
name: JobResult
|
|
|
|
|
|
- job: WindowsBuck
|
|
displayName: "WindowsBuck Release"
|
|
|
|
pool:
|
|
vmImage: vs2017-win2016
|
|
|
|
steps:
|
|
- powershell: |
|
|
git config --global core.autocrlf false
|
|
|
|
- checkout: self
|
|
|
|
- powershell: |
|
|
choco uninstall mingw -y
|
|
(New-Object System.Net.WebClient).DownloadFile("https://github.com/facebook/buck/releases/download/v2019.06.17.01/buck.2019.06.17.01.nupkg", `
|
|
"buck.2019.06.17.01.nupkg")
|
|
Install-Package buck -Source . -SkipDependencies
|
|
displayName: "Prepare Buck environment"
|
|
workingDirectory: $(Build.BinariesDirectory)
|
|
|
|
- powershell: |
|
|
$python2_path = (Get-Item C:\Python27amd64).FullName
|
|
|
|
if (-not $python2_path) {
|
|
$python2_path = ((Get-Item C:\hostedtoolcache\windows\Python\2*\x64) | Sort-Object -Descending)[0].FullName
|
|
}
|
|
|
|
$python3_path = ((Get-Item C:\hostedtoolcache\windows\Python\3*\x64) | Sort-Object -Descending)[0].FullName
|
|
|
|
echo "##vso[task.setvariable variable=python2]$python2_path"
|
|
echo "##vso[task.setvariable variable=python3]$python3_path"
|
|
|
|
displayName: "Detect python 2 and 3 installation folders"
|
|
|
|
- script: |
|
|
mklink /J $(Build.BinariesDirectory)\vsinstall "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"
|
|
|
|
- powershell: |
|
|
$vcvers = cat $(Build.BinariesDirectory)\vsinstall\VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt
|
|
.\tools\generate_buck_config.ps1 -VsInstall '$(Build.BinariesDirectory)\vsinstall' `
|
|
-VcToolsVersion "$vcvers" `
|
|
-SdkInstall '' `
|
|
-SdkVersion '' `
|
|
-Python3Path '$(python3)\python.exe' `
|
|
-BuckConfigRoot .\tools\buckconfigs\
|
|
displayName: "Generate Buck config"
|
|
|
|
- script: |
|
|
set PATH=$(python2);%PATH%
|
|
$(python2)\python.exe "C:\Program Files\PackageManagement\NuGet\Packages\buck.2019.06.17.01\tools\buck.pex" build @mode/windows-x86_64/release osquery:osqueryd
|
|
displayName: "Build osquery"
|
|
|
|
- script: |
|
|
set PATH=$(python2);%PATH%
|
|
$(python2)\python.exe "C:\Program Files\PackageManagement\NuGet\Packages\buck.2019.06.17.01\tools\buck.pex" test @mode/windows-x86_64/release osquery/... tests/... plugins/...
|
|
displayName: "Run tests"
|
|
|
|
- powershell: |
|
|
echo "##vso[task.setvariable variable=Status;isOutput=true]1"
|
|
name: JobResult
|
|
|
|
|
|
- job: Windows
|
|
|
|
pool:
|
|
vmImage: 'Ubuntu-16.04'
|
|
|
|
condition: succeededOrFailed()
|
|
|
|
dependsOn:
|
|
- WindowsCMake
|
|
- WindowsBuck
|
|
|
|
variables:
|
|
WindowsCMakeReleaseStatus: $[ dependencies.WindowsCMake.outputs['JobResult.Status'] ]
|
|
WindowsBuckReleaseStatus: $[ dependencies.WindowsBuck.outputs['JobResult.Status'] ]
|
|
|
|
steps:
|
|
- checkout: none
|
|
|
|
- script: |
|
|
if [ -z "$(WindowsCMakeReleaseStatus)" ] || [ -z "$(WindowsBuckReleaseStatus)" ]; then
|
|
exit 1
|
|
fi
|
|
displayName: "Detect Windows CMake and Buck build status"
|
|
|
|
# WINDOWS
|