Skip to content

Other-architectures-isolated #1564

Other-architectures-isolated

Other-architectures-isolated #1564

name: Other-architectures-isolated
# https://www.jeffgeerling.com/blog/2020/running-github-actions-workflow-on-schedule-and-other-events
# https://github.com/uraimo/run-on-arch-action
on:
pull_request:
types: [opened, reopened, synchronize]
schedule:
- cron: '0 2 * * SUN'
# https://stackoverflow.com/questions/66335225/how-to-cancel-previous-runs-in-the-pr-when-you-push-new-commitsupdate-the-curre#comment133398800_72408109
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#concurrency
concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: true
jobs:
build-other-architectures-isolated:
# The host should always be linux
runs-on: ubuntu-latest
name: Build on ${{ matrix.distro }} ${{ matrix.arch }} ${{ matrix.endianness }}
# Run steps on a matrix of different arch/distro combinations
strategy:
fail-fast: false
matrix:
include:
# - arch: armv6
# distro: bullseye
# target: ARMV6
#- arch: armv7
# distro: ubuntu:latest
# target: ARMV7
# endianness: (Little Endian)
- arch: aarch64
distro: ubuntu:latest
endianness: (Little Endian)
- arch: riscv64
distro: ubuntu:latest
target: RISC-V
endianness: (Little Endian)
- arch: ppc64le
distro: ubuntu:latest
target: POWER8
endianness: (Little Endian)
- arch: s390x
distro: ubuntu:latest
target: Z13
endianness: (Big Endian)
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run on arch
uses: uraimo/run-on-arch-action@v2
# See issue https://github.com/uraimo/run-on-arch-action/issues/155 for the explanation on the weird use of the arch and distro
# that resulted in error
# ERROR: failed to solve: ${arch}/ubuntu:latest: failed to resolve source metadata for docker.io/${arch}/ubuntu:latest: no match for platform in manifest: not found
with:
githubToken: ${{ github.token }}
arch: none
distro: none
base_image: "--platform=linux/${{ matrix.arch }} ${{ matrix.distro }}"
run: |
lscpu
apt-get update && apt-get install -y lsb-release git build-essential cmake
lsb_release -a
dpkg --list | grep compiler
pwd
mkdir build && cd build
cmake .. -DBUILD_DEMOS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TUTORIALS=OFF -DBUILD_JAVA=OFF \
-DUSE_JPEG=OFF -DUSE_PNG=OFF -DUSE_X11=OFF -DUSE_XML2=OFF -DBUILD_JAVA=OFF -DUSE_BLAS/LAPACK=OFF
cat ViSP-third-party.txt
make -j$(nproc)
ctest -j$(nproc) --output-on-failure