rarearchs #654
Workflow file for this run
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: rarearchs | |
defaults: | |
run: | |
# Use a bash shell so we can use the same syntax for environment variable | |
# access regardless of the host operating system | |
shell: bash -e -x {0} | |
on: | |
# https://github.community/t/how-to-trigger-an-action-on-push-or-pull-request-but-not-both/16662 | |
workflow_dispatch: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
jobs: | |
rarearchs: | |
if: | | |
(!contains(github.event.head_commit.message, 'skip all')) || | |
(!contains(github.event.head_commit.message, 'skip rarearchs')) || | |
contains(github.event.head_commit.message, 'only rarearchs') | |
name: ${{matrix.arch}}/c++${{matrix.std}}/${{matrix.bt}}${{matrix.suffix}} | |
continue-on-error: true | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- {std: 11, bt: Release, arch: aarch64, distro: ubuntu20.04, suffix: .O0, cxxflags: ' -O0 '} | |
- {std: 11, bt: Release, arch: aarch64, distro: ubuntu20.04, suffix: .O1, cxxflags: ' -O1 '} | |
- {std: 11, bt: Release, arch: aarch64, distro: ubuntu20.04, suffix: .O2, cxxflags: ' -O2 '} | |
- {std: 11, bt: Release, arch: aarch64, distro: ubuntu20.04, suffix: .O3, cxxflags: ' -O3 '} | |
- {std: 11, bt: Release, arch: aarch64, distro: ubuntu20.04, suffix: .O2dbg, cxxflags: ' -O2 -g -DNDEBUG '} | |
- {std: 11, bt: Debug , arch: aarch64, distro: ubuntu20.04, suffix: } | |
- {std: 11, bt: Release, arch: aarch64, distro: ubuntu20.04, suffix: } | |
- {std: 14, bt: Debug , arch: aarch64, distro: ubuntu20.04, suffix: } | |
- {std: 14, bt: Release, arch: aarch64, distro: ubuntu20.04, suffix: } | |
- {std: 17, bt: Debug , arch: aarch64, distro: ubuntu20.04, suffix: } | |
- {std: 17, bt: Release, arch: aarch64, distro: ubuntu20.04, suffix: } | |
# | |
- {std: 11, bt: Release, arch: ppc64le, distro: ubuntu20.04, suffix: .O0, cxxflags: ' -O0 '} | |
- {std: 11, bt: Release, arch: ppc64le, distro: ubuntu20.04, suffix: .O1, cxxflags: ' -O1 '} | |
- {std: 11, bt: Release, arch: ppc64le, distro: ubuntu20.04, suffix: .O2, cxxflags: ' -O2 '} | |
- {std: 11, bt: Release, arch: ppc64le, distro: ubuntu20.04, suffix: .O3, cxxflags: ' -O3 '} | |
- {std: 11, bt: Release, arch: ppc64le, distro: ubuntu20.04, suffix: .O2dbg, cxxflags: ' -O2 -g -DNDEBUG '} | |
- {std: 11, bt: Debug , arch: ppc64le, distro: ubuntu20.04, suffix: } | |
- {std: 11, bt: Release, arch: ppc64le, distro: ubuntu20.04, suffix: } | |
- {std: 14, bt: Debug , arch: ppc64le, distro: ubuntu20.04, suffix: } | |
- {std: 14, bt: Release, arch: ppc64le, distro: ubuntu20.04, suffix: } | |
- {std: 17, bt: Debug , arch: ppc64le, distro: ubuntu20.04, suffix: } | |
- {std: 17, bt: Release, arch: ppc64le, distro: ubuntu20.04, suffix: } | |
# | |
- {std: 11, bt: Release, arch: s390x , distro: ubuntu20.04, suffix: .O0, cxxflags: ' -O0 '} | |
- {std: 11, bt: Release, arch: s390x , distro: ubuntu20.04, suffix: .O1, cxxflags: ' -O1 '} | |
- {std: 11, bt: Release, arch: s390x , distro: ubuntu20.04, suffix: .O2, cxxflags: ' -O2 '} | |
- {std: 11, bt: Release, arch: s390x , distro: ubuntu20.04, suffix: .O3, cxxflags: ' -O3 '} | |
- {std: 11, bt: Release, arch: s390x , distro: ubuntu20.04, suffix: .O2dbg, cxxflags: ' -O2 -g -DNDEBUG '} | |
- {std: 11, bt: Debug , arch: s390x , distro: ubuntu20.04, suffix: } | |
- {std: 11, bt: Release, arch: s390x , distro: ubuntu20.04, suffix: } | |
- {std: 14, bt: Debug , arch: s390x , distro: ubuntu20.04, suffix: } | |
- {std: 14, bt: Release, arch: s390x , distro: ubuntu20.04, suffix: } | |
- {std: 17, bt: Debug , arch: s390x , distro: ubuntu20.04, suffix: } | |
- {std: 17, bt: Release, arch: s390x , distro: ubuntu20.04, suffix: } | |
# | |
#- {std: 11, bt: Debug , arch: armv6 , distro: bullseye, suffix: } | |
#- {std: 11, bt: Release, arch: armv6 , distro: bullseye, suffix: } | |
#- {std: 14, bt: Debug , arch: armv6 , distro: bullseye, suffix: } | |
#- {std: 14, bt: Release, arch: armv6 , distro: bullseye, suffix: } | |
#- {std: 17, bt: Debug , arch: armv6 , distro: bullseye, suffix: } | |
#- {std: 17, bt: Release, arch: armv6 , distro: bullseye, suffix: } | |
# | |
#- {std: 11, bt: Debug , arch: armv7 , distro: ubuntu20.04, suffix: } | |
#- {std: 11, bt: Release, arch: armv7 , distro: ubuntu20.04, suffix: } | |
#- {std: 14, bt: Debug , arch: armv7 , distro: ubuntu20.04, suffix: } | |
#- {std: 14, bt: Release, arch: armv7 , distro: ubuntu20.04, suffix: } | |
#- {std: 17, bt: Debug , arch: armv7 , distro: ubuntu20.04, suffix: } | |
#- {std: 17, bt: Release, arch: armv7 , distro: ubuntu20.04, suffix: } | |
steps: | |
- {name: checkout, uses: actions/checkout@v4, with: {submodules: recursive}} | |
- name: test | |
uses: uraimo/run-on-arch-action@v2.7.2 | |
with: | |
arch: ${{matrix.arch}} | |
distro: ${{matrix.distro}} | |
install: | | |
set -x | |
start_time=$SECONDS | |
time apt-get update -y | |
time apt-get install -y \ | |
git \ | |
build-essential | |
# arm platforms need an up-to-date cmake: | |
# https://gitlab.kitware.com/cmake/cmake/-/issues/20568 | |
if [ "${{matrix.arch}}" == "armv6" ] || [ "${{matrix.arch}}" == "armv7" ] ; then | |
time apt-get install -y \ | |
gpg \ | |
wget \ | |
apt-transport-https | |
wget --no-check-certificate -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null | |
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null | |
time apt-get update -y | |
rm /usr/share/keyrings/kitware-archive-keyring.gpg | |
time apt-get install kitware-archive-keyring | |
time apt-get update -y | |
fi | |
time apt-get install -y cmake cmake-data | |
cmake --version | |
echo "install took $((SECONDS - start_time))" | |
run: | | |
set -x | |
start_time=$SECONDS | |
uname -a | |
pwd | |
ls -lFhp . | |
# | |
# https://stackoverflow.com/questions/5470257/how-to-see-which-flags-march-native-will-activate | |
c++ -O0 -E -v - </dev/null 2>&1 | grep cc1 | |
echo ----- | |
c++ -O1 -E -v - </dev/null 2>&1 | grep cc1 | |
echo ----- | |
c++ -O2 -E -v - </dev/null 2>&1 | grep cc1 | |
echo ----- | |
c++ -O3 -E -v - </dev/null 2>&1 | grep cc1 | |
echo ----- | |
echo | c++ -dM -E - -O0 | sort | |
echo ----- | |
echo | c++ -dM -E - -O1 | sort | |
echo ----- | |
echo | c++ -dM -E - -O2 | sort | |
echo ----- | |
echo | c++ -dM -E - -O3 | sort | |
echo ----- | |
# | |
bdir=build_${{matrix.arch}}_${{matrix.bt}}_${{matrix.std}} | |
idir=install_${{matrix.arch}}_${{matrix.bt}}_${{matrix.std}} | |
mkdir -p $bdir | |
# | |
cmd="cmake -S . -B $bdir \ | |
-DCMAKE_INSTALL_PREFIX=$idir \ | |
-DCMAKE_BUILD_TYPE=${{matrix.bt}} \ | |
-DC4_CXX_STANDARD=${{matrix.std}} \ | |
-DCXX_STANDARD=${{matrix.std}} \ | |
-DRYML_DEV=ON \ | |
-DRYML_TEST_SUITE=ON \ | |
-DRYML_BUILD_BENCHMARKS=OFF \ | |
-DRYML_SANITIZE=OFF \ | |
-DRYML_LINT=OFF \ | |
-DRYML_VALGRIND=OFF" | |
echo $cmd | |
if [ -z "${{matrix.cxxflags}}" ] ; then | |
time $cmd | |
else | |
time $cmd -DCMAKE_CXX_FLAGS_RELEASE:STRING="${{matrix.cxxflags}}" | |
fi | |
# | |
time cmake --build $bdir -j 3 --target ryml-test-build | |
# | |
time cmake --build $bdir -j 3 --target ryml-test-run | |
echo "run took $((SECONDS - start_time))" |