mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
262 lines
7.4 KiB
YAML
262 lines
7.4 KiB
YAML
# Gradle
|
|
# Build your Java projects and run tests with Gradle using a Gradle wrapper script.
|
|
# Add steps that analyze code, save build artifacts, deploy, and more:
|
|
# https://docs.microsoft.com/vsts/pipelines/languages/java
|
|
|
|
resources:
|
|
containers:
|
|
- container: wpilib2020
|
|
image: wpilib/roborio-cross-ubuntu:2020-18.04
|
|
- container: raspbian
|
|
image: wpilib/raspbian-cross-ubuntu:18.04
|
|
- container: ubuntu18
|
|
image: ubuntu:18.04
|
|
options: "--name ci-container -v /usr/bin/docker:/tmp/docker:ro"
|
|
|
|
stages:
|
|
- stage: Build
|
|
jobs:
|
|
- job: Linux_Arm
|
|
pool:
|
|
vmImage: 'Ubuntu 16.04'
|
|
|
|
container: wpilib2020
|
|
|
|
steps:
|
|
- task: Gradle@2
|
|
inputs:
|
|
workingDirectory: ''
|
|
gradleWrapperFile: 'gradlew'
|
|
gradleOptions: '-Xmx3072m'
|
|
publishJUnitResults: false
|
|
testResultsFiles: '**/TEST-*.xml'
|
|
tasks: 'build'
|
|
options: '-Ponlylinuxathena'
|
|
# checkStyleRunAnalysis: true
|
|
# pmdRunAnalysis: true
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
inputs:
|
|
artifactName: 'Athena'
|
|
targetPath: 'build/allOutputs'
|
|
|
|
- job: Linux_Raspbian
|
|
pool:
|
|
vmImage: 'Ubuntu 16.04'
|
|
|
|
container: raspbian
|
|
|
|
steps:
|
|
- task: Gradle@2
|
|
inputs:
|
|
workingDirectory: ''
|
|
gradleWrapperFile: 'gradlew'
|
|
gradleOptions: '-Xmx3072m'
|
|
publishJUnitResults: true
|
|
testResultsFiles: '**/TEST-*.xml'
|
|
tasks: 'build'
|
|
options: '-Ponlylinuxraspbian'
|
|
# checkStyleRunAnalysis: true
|
|
# pmdRunAnalysis: true
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
inputs:
|
|
artifactName: 'Raspbian'
|
|
targetPath: 'build/allOutputs'
|
|
|
|
- job: Linux
|
|
pool:
|
|
vmImage: 'Ubuntu 16.04'
|
|
|
|
container: wpilib2020
|
|
|
|
steps:
|
|
- task: Gradle@2
|
|
inputs:
|
|
workingDirectory: ''
|
|
gradleWrapperFile: 'gradlew'
|
|
gradleOptions: '-Xmx3072m'
|
|
publishJUnitResults: true
|
|
testResultsFiles: '**/TEST-*.xml'
|
|
tasks: 'build'
|
|
options: '-Pskiplinuxathena -Pskiplinuxraspbian'
|
|
# checkStyleRunAnalysis: true
|
|
# pmdRunAnalysis: true
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
inputs:
|
|
artifactName: 'Linux'
|
|
targetPath: 'build/allOutputs'
|
|
|
|
- job: Styleguide
|
|
pool:
|
|
vmImage: 'Ubuntu 16.04'
|
|
|
|
container: ubuntu18
|
|
|
|
steps:
|
|
- script: |
|
|
/tmp/docker exec -t -u 0 ci-container \
|
|
sh -c "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confold" -y install sudo"
|
|
displayName: Set up sudo
|
|
- script: |
|
|
sudo apt-get update -y
|
|
sudo apt-get install clang-format-6.0 python3-setuptools python3-pip git -y
|
|
sudo pip3 install wpiformat
|
|
git checkout -b master
|
|
displayName: 'Install Dependencies'
|
|
- script: |
|
|
wpiformat -clang 6.0
|
|
displayName: 'Run wpiformat'
|
|
- script: |
|
|
# Ensure formatter made no changes
|
|
git --no-pager diff --exit-code HEAD
|
|
displayName: 'Check wpiformat Output'
|
|
|
|
- job: CMakeBuild
|
|
pool:
|
|
vmImage: 'Ubuntu 16.04'
|
|
|
|
container: wpilib2020
|
|
|
|
steps:
|
|
- task: CMake@1
|
|
inputs:
|
|
cmakeArgs: '-DWITHOUT_ALLWPILIB=OFF ..'
|
|
- script: |
|
|
make -j3
|
|
workingDirectory: 'build'
|
|
displayName: 'Build'
|
|
|
|
- job: Windows_64_Bit
|
|
pool:
|
|
vmImage: 'windows-2019'
|
|
steps:
|
|
- task: Gradle@2
|
|
inputs:
|
|
workingDirectory: ''
|
|
gradleWrapperFile: 'gradlew'
|
|
gradleOptions: '-Xmx3072m'
|
|
jdkVersionOption: '1.11'
|
|
publishJUnitResults: true
|
|
testResultsFiles: '**/TEST-*.xml'
|
|
tasks: 'build'
|
|
options: '-PskipPMD'
|
|
# checkStyleRunAnalysis: true
|
|
# pmdRunAnalysis: true
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
inputs:
|
|
artifactName: 'Win64'
|
|
targetPath: 'build/allOutputs'
|
|
|
|
- job: Windows_32_Bit
|
|
pool:
|
|
vmImage: 'windows-2019'
|
|
steps:
|
|
- powershell: |
|
|
mkdir build
|
|
$ProgressPreference = 'SilentlyContinue'
|
|
wget "https://github.com/wpilibsuite/frc-openjdk-windows/releases/download/v11.0.0u28-1/jdk-x86-11.0.0u28-1.zip" -O "build\jdk.zip"
|
|
displayName: 'Download JDK'
|
|
- task: JavaToolInstaller@0
|
|
inputs:
|
|
jdkSourceOption: localDirectory
|
|
jdkFile: 'build/jdk.zip'
|
|
jdkDestinationDirectory: 'build/jdkinst'
|
|
jdkArchitectureOption: x86
|
|
- task: Gradle@2
|
|
inputs:
|
|
workingDirectory: ''
|
|
gradleWrapperFile: 'gradlew'
|
|
gradleOptions: '-Xmx1024m'
|
|
publishJUnitResults: true
|
|
testResultsFiles: '**/TEST-*.xml'
|
|
tasks: 'build'
|
|
options: '-PskipPMD'
|
|
# checkStyleRunAnalysis: true
|
|
# pmdRunAnalysis: true
|
|
- task: PublishPipelineArtifact@0
|
|
inputs:
|
|
artifactName: 'Win32'
|
|
targetPath: 'build/allOutputs'
|
|
|
|
- job: Mac
|
|
pool:
|
|
vmImage: 'macOS-10.14'
|
|
steps:
|
|
- script: |
|
|
mkdir build
|
|
export JAVA_HOME=`/usr/libexec/java_home -v 11`
|
|
displayName: 'Setup JDK'
|
|
- script: |
|
|
rm /Users/vsts/.gradle/init.d/log-gradle-version-plugin.gradle
|
|
displayName: 'Delete Version init script'
|
|
- task: Gradle@2
|
|
inputs:
|
|
workingDirectory: ''
|
|
gradleWrapperFile: 'gradlew'
|
|
gradleOptions: '-Xmx3072m'
|
|
jdkVersionOption: '1.11'
|
|
publishJUnitResults: true
|
|
testResultsFiles: '**/TEST-*.xml'
|
|
tasks: 'build'
|
|
#options: ''
|
|
# checkStyleRunAnalysis: true
|
|
# pmdRunAnalysis: true
|
|
|
|
- task: PublishPipelineArtifact@0
|
|
inputs:
|
|
artifactName: 'Mac'
|
|
targetPath: 'build/allOutputs'
|
|
|
|
- stage: Combine
|
|
jobs:
|
|
- job: CombineJob
|
|
pool:
|
|
vmImage: 'macOS-10.14'
|
|
|
|
steps:
|
|
- checkout: none
|
|
- script: |
|
|
git clone https://github.com/wpilibsuite/build-tools
|
|
displayName: 'Clone Combiner'
|
|
- task: DownloadPipelineArtifact@0
|
|
inputs:
|
|
artifactName: 'Mac'
|
|
targetPath: 'build-tools/combiner/products/build/allOutputs'
|
|
- task: DownloadPipelineArtifact@0
|
|
inputs:
|
|
artifactName: 'Win32'
|
|
targetPath: 'build-tools/combiner/products/build/allOutputs'
|
|
- task: DownloadPipelineArtifact@0
|
|
inputs:
|
|
artifactName: 'Win64'
|
|
targetPath: 'build-tools/combiner/products/build/allOutputs'
|
|
- task: DownloadPipelineArtifact@0
|
|
inputs:
|
|
artifactName: 'Linux'
|
|
targetPath: 'build-tools/combiner/products/build/allOutputs'
|
|
- task: DownloadPipelineArtifact@0
|
|
inputs:
|
|
artifactName: 'Raspbian'
|
|
targetPath: 'build-tools/combiner/products/build/allOutputs'
|
|
- task: DownloadPipelineArtifact@0
|
|
inputs:
|
|
artifactName: 'Athena'
|
|
targetPath: 'build-tools/combiner/products/build/allOutputs'
|
|
- task: Gradle@2
|
|
inputs:
|
|
workingDirectory: 'build-tools/combiner'
|
|
gradleWrapperFile: 'build-tools/combiner/gradlew'
|
|
gradleOptions: '-Xmx3072m'
|
|
tasks: 'publish '
|
|
options: '-Pallwpilib'
|
|
- script: |
|
|
echo "##vso[task.setvariable variable=UserHome]$HOME"
|
|
displayName: 'Set Home Variable'
|
|
- task: PublishPipelineArtifact@0
|
|
inputs:
|
|
artifactName: 'Maven'
|
|
targetPath: $(UserHome)/releases
|