Skip to content

ci: run alpine image against aarch64 #142

ci: run alpine image against aarch64

ci: run alpine image against aarch64 #142

Workflow file for this run

name: continuous integration on arch
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build_on_arch:
runs-on: ubuntu-22.04
name: Build on ${{ matrix.distro }} for ${{ matrix.arch }}
strategy:
matrix:
include:
- arch: aarch64
distro: alpine_latest
- arch: s390x
distro: alpine_latest
- arch: ppc64le
distro: alpine_latest
steps:
- uses: actions/checkout@v4
- uses: uraimo/run-on-arch-action@v2
name: Build
id: build
with:
arch: ${{ matrix.arch }}
distro: ${{ matrix.distro }}
githubToken: ${{ github.token }}
setup: |
mkdir -p "${PWD}/bear_build"
mkdir -p "${PWD}/bear_install"
dockerRunArgs: |
--volume "${PWD}:/work"
env: |
SOURCE_DIR: /work
BUILD_DIR: /work/bear_build
INSTALL_DIR: /work/bear_install
C_FLAGS: -Wall -Wextra -pedantic
CXX_FLAGS: -Wall -Wextra -pedantic
CTEST_OUTPUT_ON_FAILURE: 1
# Install some dependencies in the container. This speeds up builds if
# you are also using githubToken. Any dependencies installed here will
# be part of the container image that gets cached, so subsequent
# builds don't have to re-install them. The image layer is cached
# publicly in your project's package repository, so it is vital that
# no secrets are present in the container state or logs.
install: |
case "${{ matrix.distro }}" in
fedora*)
dnf -y update
dnf -y install python cmake gcc gcc-c++ pkg-config json-devel spdlog-devel fmt-devel grpc-devel grpc-plugins gtest-devel gmock-devel
;;
alpine*)
apk update
apk add python3 cmake gcc g++ pkgconf make fmt-dev spdlog-dev nlohmann-json protobuf-dev grpc grpc-dev c-ares-dev re2-dev gtest-dev
;;
arch*)
pacman -Sy --noconfirm python cmake make gcc pkg-config grpc spdlog fmt nlohmann-json gtest gmock
;;
esac
run: |
cmake -B "$BUILD_DIR" -S "$SOURCE_DIR" -DCMAKE_INSTALL_PREFIX:PATH="$INSTALL_DIR" -DENABLE_FUNC_TESTS=OFF
cmake --build "$BUILD_DIR" --parallel 2 --target install