build #55
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "build" | |
on: | |
push: | |
branches: | |
- master | |
- develop | |
tags: | |
- v* | |
pull_request: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 0 * * 1' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
linux-x86_64: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- script: linux-x86_64/ubuntu-22.04 | |
image: rocstreaming/env-ubuntu:22.04 | |
- script: linux-x86_64/ubuntu-20.04 | |
image: rocstreaming/env-ubuntu:20.04 | |
- script: linux-x86_64/ubuntu-18.04 | |
image: rocstreaming/env-ubuntu:18.04 | |
- script: linux-x86_64/ubuntu-16.04 | |
image: rocstreaming/env-ubuntu:16.04 | |
- script: linux-x86_64/ubuntu-14.04 | |
image: rocstreaming/env-ubuntu:14.04 | |
- script: linux-x86_64/debian | |
image: rocstreaming/env-debian | |
- script: linux-x86_64/fedora | |
image: rocstreaming/env-fedora | |
- script: linux-x86_64/opensuse | |
image: rocstreaming/env-opensuse | |
- script: linux-x86_64/archlinux | |
image: rocstreaming/env-archlinux | |
- script: linux-x86_64/alpine | |
image: rocstreaming/env-alpine | |
name: ${{ matrix.script }} | |
steps: | |
- name: Pull docker image | |
run: docker pull ${{ matrix.image }} | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Build and test | |
run: | | |
scripts/ci_checks/docker.sh ${{ matrix.image }} scripts/ci_checks/${{ matrix.script }}.sh | |
- name: Handle failure | |
if: failure() | |
run: | | |
scripts/ci_checks/failure.sh | |
linux-arm: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- script: linux-arm/aarch64-linux-gnu-gcc-7.4 | |
image: rocstreaming/toolchain-aarch64-linux-gnu:gcc-7.4 | |
- script: linux-arm/arm-linux-gnueabihf-gcc-4.9 | |
image: rocstreaming/toolchain-arm-linux-gnueabihf:gcc-4.9 | |
- script: linux-arm/arm-bcm2708hardfp-linux-gnueabi-gcc-4.7 | |
image: rocstreaming/toolchain-arm-bcm2708hardfp-linux-gnueabi:gcc-4.7 | |
name: ${{ matrix.script }} | |
steps: | |
- name: Pull docker image | |
run: docker pull ${{ matrix.image }} | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Build and test | |
run: | | |
scripts/ci_checks/docker.sh ${{ matrix.image }} scripts/ci_checks/${{ matrix.script }}.sh | |
- name: Handle failure | |
if: failure() | |
run: | | |
scripts/ci_checks/failure.sh | |
linux-checks: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- script: linux-checks/conditional-build | |
image: rocstreaming/env-ubuntu:nolibs | |
- script: linux-checks/static-shared | |
image: rocstreaming/env-ubuntu:nolibs | |
- script: linux-checks/debug-build | |
image: rocstreaming/env-ubuntu:nolibs | |
- script: linux-checks/sanitizers | |
image: rocstreaming/env-ubuntu | |
- script: linux-checks/valgrind | |
image: rocstreaming/env-ubuntu | |
- script: linux-checks/check-formatting | |
image: rocstreaming/env-ubuntu | |
- script: linux-checks/pulseaudio-versions | |
image: rocstreaming/env-ubuntu | |
name: ${{ matrix.script }} | |
steps: | |
- name: Pull docker image | |
run: docker pull ${{ matrix.image }} | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Build and test | |
run: | | |
scripts/ci_checks/docker.sh ${{ matrix.image }} scripts/ci_checks/${{ matrix.script }}.sh | |
- name: Handle failure | |
if: failure() | |
run: | | |
scripts/ci_checks/failure.sh | |
android-linux: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- image: rocstreaming/toolchain-linux-android:ndk21 | |
toolchain: aarch64-linux-android29 | |
shortname: android29-aarch64 | |
- image: rocstreaming/toolchain-linux-android:ndk21 | |
toolchain: armv7a-linux-androideabi29 | |
shortname: android29-armv7a | |
- image: rocstreaming/toolchain-linux-android:ndk21 | |
toolchain: x86_64-linux-android29 | |
shortname: android29-x86_64 | |
- image: rocstreaming/toolchain-linux-android:ndk21 | |
toolchain: i686-linux-android29 | |
shortname: android29-i686 | |
runs-on: ubuntu-latest | |
name: ${{ matrix.shortname }}/linux | |
steps: | |
- name: Pull docker image | |
run: docker pull ${{ matrix.image }} | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Build | |
run: | | |
scripts/ci_checks/docker.sh ${{ matrix.image }} \ | |
scripts/ci_checks/android/linux.sh ${{ matrix.toolchain }} | |
- name: Handle failure | |
if: failure() | |
run: | | |
scripts/ci_checks/failure.sh | |
android-macos: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- abi: x86_64 | |
api: 29 | |
ndk: 25.2.9519653 | |
build_tools: 28.0.3 | |
cmake: 3.10.2.4988404 | |
avd_abi: x86_64 | |
avd_img: default | |
runs-on: macos-latest | |
env: | |
ABI: ${{ matrix.abi }} | |
API: ${{ matrix.api }} | |
NDK_VERSION: ${{ matrix.ndk }} | |
name: android${{ matrix.api }}-${{ matrix.abi }}/macos | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Install Android components | |
uses: maxim-lobanov/setup-android-tools@v1 | |
with: | |
cache: true | |
packages: | | |
platforms;android-${{ matrix.api }} | |
build-tools;${{ matrix.build_tools }} | |
ndk;${{ matrix.ndk }} | |
cmake;${{ matrix.cmake }} | |
system-images;android-${{ matrix.api }};${{ matrix.avd_img }};${{ matrix.avd_abi }} | |
emulator | |
- name: Install system dependencies | |
run: | | |
scripts/ci_checks/android/macos.sh | |
- name: Build | |
run: | | |
scripts/android_emu/run.sh build | |
- name: Run tests | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: ${{ matrix.api }} | |
arch: ${{ matrix.avd_abi }} | |
target: ${{ matrix.avd_img }} | |
avd-name: roc_device | |
ndk: ${{ matrix.ndk }} | |
cmake: ${{ matrix.cmake }} | |
force-avd-creation: false | |
emulator-options: -no-audio -no-boot-anim -no-window | |
disable-animations: true | |
script: | | |
scripts/android_emu/run.sh prep | |
scripts/android_emu/run.sh test | |
- name: Handle failure | |
if: failure() | |
run: | | |
scripts/ci_checks/failure.sh | |
macos: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- macos-arch: x86_64 | |
macos-version: 11 | |
script: standard-build | |
- macos-arch: x86_64 | |
macos-version: 12 | |
script: standard-build | |
- macos-arch: x86_64 | |
macos-version: 13 | |
script: standard-build | |
- macos-arch: x86_64 | |
macos-version: 13 | |
script: build-3rdparty | |
- macos-arch: x86_64 | |
macos-version: 13 | |
script: universal-binaries | |
runs-on: macos-${{ matrix.macos-version }} | |
name: macos${{ matrix.macos-version }}-${{ matrix.macos-arch }}/${{ matrix.script }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Build and test | |
run: | | |
scripts/ci_checks/macos/${{ matrix.script }}.sh | |
- name: Handle failure | |
if: failure() | |
run: | | |
scripts/ci_checks/failure.sh |