Skip to content

Enable gstreamer and protobuf #2

Enable gstreamer and protobuf

Enable gstreamer and protobuf #2

Workflow file for this run

name: CI
on: [pull_request, push]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
build-docker:
strategy:
fail-fast: false
matrix:
include:
- container: wpilib/roborio-cross-ubuntu:2023-22.04
artifact-name: Athena
build-options: "-Pplatform=linux-athena"
- container: wpilib/raspbian-cross-ubuntu:bullseye-22.04
artifact-name: Arm32
build-options: "-Pplatform=linux-arm32"
- container: wpilib/aarch64-cross-ubuntu:bullseye-22.04
artifact-name: Arm64
build-options: "-Pplatform=linux-arm64"
- container: wpilib/ubuntu-base:22.04
artifact-name: Linux
build-options: ""
name: "Build - ${{ matrix.artifact-name }}"
runs-on: ubuntu-latest
container: ${{ matrix.container }}
steps:
- uses: actions/checkout@v3
with:
submodules: 'true'
- run: sudo apt-get update && sudo apt-get install ant -y && sudo rm -rf /var/lib/apt/lists/* && sudo rm -f /bin/ant && sudo ln -s /usr/share/ant/bin/ant /bin/ant
name: Install Ant
- run: rm -rf /usr/local/arm-linux-gnueabihf && curl -SL https://github.com/wpilibsuite/opensdk/releases/download/v2023-9/armhf-raspi-bullseye-2023-x86_64-linux-gnu-Toolchain-10.2.0.tgz | sh -c 'mkdir -p /usr/local && cd /usr/local && tar xzf - --strip-components=2'
name: Replace arm32 compiler
if: matrix.artifact-name == 'Arm32'
- run: ./gradlew build -PjenkinsBuild ${{ matrix.build-options }}
name: Build with Gradle
- uses: actions/upload-artifact@v3
with:
name: ${{ matrix.artifact-name }}
path: gradleDir/outputs/
build-windows:
strategy:
fail-fast: false
matrix:
include:
- artifact-name: Win64Release
architecture: x64
build-options: "-PskipDebug"
- artifact-name: Win32Release
architecture: x86
build-options: "-PskipDebug"
- artifact-name: WinArm64Release
architecture: x64
build-options: "-PskipDebug -Pplatform=windows-arm64"
- artifact-name: Win64
architecture: x64
build-options: "-PskipRelease -PskipSources"
- artifact-name: Win32
architecture: x86
build-options: "-PskipRelease -PskipSources"
- artifact-name: WinArm64
architecture: x64
build-options: "-PskipRelease -PskipSources -Pplatform=windows-arm64"
name: "Build - ${{ matrix.artifact-name }}"
runs-on: windows-2019
steps:
- uses: actions/checkout@v3
with:
submodules: 'true'
- uses: actions/setup-java@v3
with:
java-version: 11
distribution: 'zulu'
architecture: ${{ matrix.architecture }}
- name: Set Java Heap Size
run: sed -i 's/-Xmx2g/-Xmx1g/g' gradle.properties
if: matrix.architecture == 'x86'
- run: |
@call "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Auxiliary\\Build\\vcvars64.bat"
set PATH=%PATH%;%ANT_HOME%\bin
gradlew build -PjenkinsBuild ${{ matrix.build-options }}
shell: cmd
name: Build with Gradle
- uses: actions/upload-artifact@v3
with:
name: ${{ matrix.artifact-name }}
path: gradleDir/outputs/
build-mac:
name: "Build - macOS"
runs-on: macOS-11
steps:
- uses: actions/checkout@v3
with:
submodules: 'true'
- uses: actions/setup-java@v3
with:
java-version: 11
distribution: 'zulu'
- run: ./gradlew build -PjenkinsBuild
name: Build with Gradle
- uses: actions/upload-artifact@v3
with:
name: macOS
path: gradleDir/outputs/
build-mac-arm:
name: "Build - macOS (Arm)"
runs-on: macos-11
steps:
- uses: actions/checkout@v3
with:
submodules: 'true'
- uses: actions/setup-java@v3
with:
java-version: 11
distribution: 'zulu'
- run: ./gradlew build -PjenkinsBuild -Pforcealternatemacbuild
name: Build with Gradle
- uses: actions/upload-artifact@v3
with:
name: macOSArm
path: gradleDir/outputs/
make_universal:
name: Make Universal
needs: [build-mac, build-mac-arm]
runs-on: macos-11
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: macOS
path: build/downloads
- uses: actions/download-artifact@v3
with:
name: macOSArm
path: build/downloads
- uses: actions/setup-java@v3
with:
java-version: 11
distribution: 'zulu'
- run: ./gradlew copyToUpload -Prunmerge
name: Build with Gradle
if: |
github.repository_owner != 'wpilibsuite' ||
(github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/v'))
- name: Import Developer ID Certificate
uses: wpilibsuite/import-signing-certificate@v1
with:
certificate-data: ${{ secrets.APPLE_CERTIFICATE_DATA }}
certificate-passphrase: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
keychain-password: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}
if: |
github.repository_owner == 'wpilibsuite' &&
(github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v'))
- run: ./gradlew copyToUpload -Prunmerge -PdeveloperID=${{ secrets.APPLE_DEVELOPER_ID }}
name: Sign Binaries with Developer ID
if: |
github.repository_owner == 'wpilibsuite' &&
(github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v'))
- uses: actions/upload-artifact@v3
with:
name: macOSUniversal
path: build/toUpload/
combine:
name: Combine
needs: [build-docker, build-windows, make_universal]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
repository: wpilibsuite/build-tools
- uses: actions/download-artifact@v3
with:
path: combiner/products/build/allOutputs
- name: Flatten Artifacts
run: rsync -a --delete combiner/products/build/allOutputs/*/* combiner/products/build/allOutputs/
- name: Combine
if: |
!startsWith(github.ref, 'refs/tags/v')
run: ./gradlew publish -Pthirdparty
working-directory: combiner
- name: Combine (Release)
if: |
github.repository_owner == 'wpilibsuite' &&
startsWith(github.ref, 'refs/tags/v')
run: |
./gradlew publish -Pthirdparty
working-directory: combiner
env:
RUN_AZURE_ARTIFACTORY_RELEASE: 'TRUE'
ARTIFACTORY_PUBLISH_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PUBLISH_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
- uses: actions/upload-artifact@v3
with:
name: Maven
path: ~/releases