Skip to content

Update dependency rules_python to v2.3.2 #2029

Update dependency rules_python to v2.3.2

Update dependency rules_python to v2.3.2 #2029

Workflow file for this run

#
# ci.yml
# RVO2 Library
#
# SPDX-FileCopyrightText: 2008 University of North Carolina at Chapel Hill
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Please send all bug reports to <geom@cs.unc.edu>.
#
# The authors may be contacted via:
#
# Jur van den Berg, Stephen J. Guy, Jamie Snape, Ming C. Lin, Dinesh Manocha
# Dept. of Computer Science
# 201 S. Columbia St.
# Frederick P. Brooks, Jr. Computer Science Bldg.
# Chapel Hill, N.C. 27599-3175
# United States of America
#
# <https://gamma.cs.unc.edu/RVO2/>
#
---
name: ci
on: # yamllint disable-line rule:truthy
push:
branches:
- main
pull_request:
branches:
- main
schedule:
- cron: '0 5 * * *'
jobs:
bazel-almalinux:
name: bazel almalinux amd64
runs-on: ubuntu-latest
container: almalinux:10
timeout-minutes: 30
steps:
- name: setup
run: |
dnf makecache -q --refresh || (sleep 15; dnf makecache -q --refresh)
dnf install -q -y \
ca-certificates \
git \
glibc-devel \
wget \
which
dnf clean all
rm -rf /var/cache/yum
wget -qO /usr/local/bin/bazelisk \
https://github.com/bazelbuild/bazelisk/releases/latest/download/bazelisk-linux-amd64
chmod +x /usr/local/bin/bazelisk
ln -s /usr/local/bin/bazelisk /usr/local/bin/bazel
shell: bash
- name: checkout
uses: actions/checkout@v7
- name: cache
uses: actions/cache@v6
with:
path: |
~/.cache/bazel
~/.cache/bazelisk
key: |
${{ runner.os }}-${{ runner.arch }}-bazel-${{ hashFiles('.bazelversion', 'MODULE.bazel', '**/*.bazel', '**/*.bzl') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-bazel-
- name: build test package
run: |
bazel test \
--features=treat_warnings_as_errors \
--flaky_test_attempts=3 \
...
shell: bash
bazel-alpine:
name: bazel alpine linux amd64
runs-on: ubuntu-latest
container: alpine:3
timeout-minutes: 30
steps:
- name: setup
run: |
echo "https://dl-cdn.alpinelinux.org/alpine/edge/testing" \
>> /etc/apk/repositories
apk add --no-cache \
bazel8 \
ca-certificates \
git
shell: sh
- name: checkout
uses: actions/checkout@v7
- name: cache
uses: actions/cache@v6
with:
path: ~/.cache/bazel
key: |
${{ runner.os }}-${{ runner.arch }}-bazel-${{ hashFiles('MODULE.bazel', '**/*.bazel', '**/*.bzl') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-bazel-
- name: build test package
run: |
bazel test \
--config=alpine \
--features=treat_warnings_as_errors \
--flaky_test_attempts=3 \
...
shell: sh
bazel-arch:
name: bazel arch linux amd64
runs-on: ubuntu-latest
container: archlinux:latest
timeout-minutes: 30
steps:
- name: setup
run: |
pacman --needed --noconfirm --noprogressbar -Sy \
ca-certificates \
git \
wget \
which
rm -rf \
/var/cache/pacman/pkg/* \
/var/lib/pacman/sync/*
wget -qO /usr/local/bin/bazelisk \
https://github.com/bazelbuild/bazelisk/releases/latest/download/bazelisk-linux-amd64
chmod +x /usr/local/bin/bazelisk
ln -s /usr/local/bin/bazelisk /usr/local/bin/bazel
shell: bash
- name: checkout
uses: actions/checkout@v7
- name: cache
uses: actions/cache@v6
with:
path: |
~/.cache/bazel
~/.cache/bazelisk
key: |
${{ runner.os }}-${{ runner.arch }}-bazel-${{ hashFiles('.bazelversion', 'MODULE.bazel', '**/*.bazel', '**/*.bzl') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-bazel-
- name: build test package
run: |
bazel test \
--features=treat_warnings_as_errors \
--flaky_test_attempts=3 \
...
shell: bash
bazel-fedora:
name: bazel fedora linux amd64
runs-on: ubuntu-latest
container: fedora:44
timeout-minutes: 30
steps:
- name: setup
run: |
dnf makecache -q --refresh || (sleep 15; dnf makecache -q --refresh)
dnf install -q -y \
ca-certificates \
git \
glibc-devel \
wget \
which
dnf clean all
rm -rf /var/cache/yum
wget -qO /usr/local/bin/bazelisk \
https://github.com/bazelbuild/bazelisk/releases/latest/download/bazelisk-linux-amd64
chmod +x /usr/local/bin/bazelisk
ln -s /usr/local/bin/bazelisk /usr/local/bin/bazel
shell: bash
- name: checkout
uses: actions/checkout@v7
- name: cache
uses: actions/cache@v6
with:
path: |
~/.cache/bazel
~/.cache/bazelisk
key: |
${{ runner.os }}-${{ runner.arch }}-bazel-${{ hashFiles('.bazelversion', 'MODULE.bazel', '**/*.bazel', '**/*.bzl') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-bazel-
- name: build test package
run: |
bazel test \
--features=treat_warnings_as_errors \
--flaky_test_attempts=3 \
...
shell: bash
bazel-macos:
name: bazel macos arm64
runs-on: macos-26
timeout-minutes: 30
steps:
- name: checkout
uses: actions/checkout@v7
- name: cache homebrew
uses: actions/cache@v6
with:
path: ~/Library/Caches/Homebrew/downloads
key: |
${{ runner.os }}-${{ runner.arch }}-brew-${{ hashFiles('Brewfile') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-brew-
- name: setup
run: |
brew update -q || (sleep 15; brew update -q)
brew bundle install -q
brew cleanup -q -s
env:
HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HOMEBREW_NO_ANALYTICS: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
shell: zsh -efuo pipefail {0}
- name: cache bazel
uses: actions/cache@v6
with:
path: |
~/.cache/bazel
~/Library/Caches/bazelisk
key: |
${{ runner.os }}-${{ runner.arch }}-bazel-${{ hashFiles('.bazelversion', 'MODULE.bazel', '**/*.bazel', '**/*.bzl') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-bazel-
- name: build test package
run: |
bazel test \
--features=treat_warnings_as_errors \
--flaky_test_attempts=3 \
...
shell: zsh -efuo pipefail {0}
bazel-macos-x86_64:
name: bazel macos x86_64
runs-on: macos-26-intel
timeout-minutes: 30
steps:
- name: checkout
uses: actions/checkout@v7
- name: cache homebrew
uses: actions/cache@v6
with:
path: ~/Library/Caches/Homebrew/downloads
key: |
${{ runner.os }}-${{ runner.arch }}-brew-${{ hashFiles('Brewfile') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-brew-
- name: setup
run: |
brew update -q || (sleep 15; brew update -q)
brew bundle install -q
brew cleanup -q -s
env:
HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HOMEBREW_NO_ANALYTICS: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
shell: zsh -efuo pipefail {0}
- name: cache bazel
uses: actions/cache@v6
with:
path: |
~/.cache/bazel
~/Library/Caches/bazelisk
key: |
${{ runner.os }}-${{ runner.arch }}-bazel-${{ hashFiles('.bazelversion', 'MODULE.bazel', '**/*.bazel', '**/*.bzl') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-bazel-
- name: build test package
run: |
bazel test \
--features=treat_warnings_as_errors \
--flaky_test_attempts=3 \
...
shell: zsh -efuo pipefail {0}
bazel-opensuse:
name: bazel opensuse leap amd64
runs-on: ubuntu-latest
container: opensuse/leap:16.0
timeout-minutes: 30
steps:
- name: setup
run: |
zypper -n -q ref || (sleep 15; zypper -n -q ref)
zypper -n -q in --no-recommends \
ca-certificates \
git \
glibc-devel \
wget \
which
zypper -n -q cc -a
wget -qO /usr/local/bin/bazelisk \
https://github.com/bazelbuild/bazelisk/releases/latest/download/bazelisk-linux-amd64
chmod +x /usr/local/bin/bazelisk
ln -s /usr/local/bin/bazelisk /usr/local/bin/bazel
shell: bash
- name: checkout
uses: actions/checkout@v7
- name: cache
uses: actions/cache@v6
with:
path: |
~/.cache/bazel
~/.cache/bazelisk
key: |
${{ runner.os }}-${{ runner.arch }}-bazel-${{ hashFiles('.bazelversion', 'MODULE.bazel', '**/*.bazel', '**/*.bzl') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-bazel-
- name: build test package
run: |
bazel test \
--features=treat_warnings_as_errors \
--flaky_test_attempts=3 \
...
shell: bash
bazel-ubuntu:
name: bazel ubuntu amd64
runs-on: ubuntu-latest
container: ubuntu:26.04
timeout-minutes: 30
steps:
- name: setup
run: |
apt-get -qq -o APT::Acquire::Retries=4 update \
|| (sleep 15; apt-get -qq -o APT::Acquire::Retries=4 update)
apt-get -qq -o APT::Acquire::Retries=4 -o Dpkg::Use-Pty=0 \
upgrade
apt-get -qq -o APT::Acquire::Retries=4 -o Dpkg::Use-Pty=0 \
--no-install-recommends install \
ca-certificates \
g++ \
git \
wget
apt-get -qq -o Dpkg::Use-Pty=0 autoremove
rm -rf /var/lib/apt/lists/*
wget -q https://github.com/bazelbuild/bazelisk/releases/latest/download/bazelisk-amd64.deb
dpkg -i bazelisk-amd64.deb
rm -rf bazelisk-amd64.deb
env:
DEBIAN_FRONTEND: noninteractive
shell: bash
- name: checkout
uses: actions/checkout@v7
- name: cache
uses: actions/cache@v6
with:
path: |
~/.cache/bazel
~/.cache/bazelisk
key: |
${{ runner.os }}-${{ runner.arch }}-bazel-${{ hashFiles('.bazelversion', 'MODULE.bazel', '**/*.bazel', '**/*.bzl') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-bazel-
- name: build test package
run: |
bazel test \
--features=treat_warnings_as_errors \
--flaky_test_attempts=3 \
...
shell: bash
bazel-ubuntu-arm64:
name: bazel ubuntu arm64
runs-on: ubuntu-24.04-arm
container: ubuntu:26.04
timeout-minutes: 30
steps:
- name: setup
run: |
apt-get -qq -o APT::Acquire::Retries=4 update \
|| (sleep 15; apt-get -qq -o APT::Acquire::Retries=4 update)
apt-get -qq -o APT::Acquire::Retries=4 -o Dpkg::Use-Pty=0 \
upgrade
apt-get -qq -o APT::Acquire::Retries=4 -o Dpkg::Use-Pty=0 \
--no-install-recommends install \
ca-certificates \
g++ \
git \
wget
apt-get -qq -o Dpkg::Use-Pty=0 autoremove
rm -rf /var/lib/apt/lists/*
wget -q https://github.com/bazelbuild/bazelisk/releases/latest/download/bazelisk-arm64.deb
dpkg -i bazelisk-arm64.deb
rm -rf bazelisk-arm64.deb
env:
DEBIAN_FRONTEND: noninteractive
shell: bash
- name: checkout
uses: actions/checkout@v7
- name: cache
uses: actions/cache@v6
with:
path: |
~/.cache/bazel
~/.cache/bazelisk
key: |
${{ runner.os }}-${{ runner.arch }}-bazel-${{ hashFiles('.bazelversion', 'MODULE.bazel', '**/*.bazel', '**/*.bzl') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-bazel-
- name: build test package
run: |
bazel test \
--features=treat_warnings_as_errors \
--flaky_test_attempts=3 \
...
shell: bash
bazel-windows:
name: bazel windows x64
runs-on: windows-latest
timeout-minutes: 30
steps:
- name: cache winget
uses: actions/cache@v6
with:
path: |
~\AppData\Local\Microsoft\WinGet\Links
~\AppData\Local\Microsoft\WinGet\SourceData
key: |
${{ runner.os }}-${{ runner.arch }}-winget-${{ hashFiles('.github/workflows/*.yml') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-winget-
- name: setup
run: |
Install-Module -Force -Name Microsoft.WinGet.Client
Repair-WinGetPackageManager -Force -Latest
$package = Get-WinGetPackage -Id Bazel.Bazelisk `
-MatchOption Equals -ErrorAction SilentlyContinue
if (-not $package) {
Install-WinGetPackage -Id Bazel.Bazelisk `
-MatchOption Equals -Mode Silent
} elseif ($package.IsUpdateAvailable) {
Update-WinGetPackage -Id Bazel.Bazelisk `
-MatchOption Equals -Mode Silent
}
$package = Get-WinGetPackage -Id Git.Git `
-MatchOption Equals -ErrorAction SilentlyContinue
if (-not $package) {
Install-WinGetPackage -Id Git.Git `
-MatchOption Equals -Mode Silent
} elseif ($package.IsUpdateAvailable) {
Update-WinGetPackage -Id Git.Git `
-MatchOption Equals -Mode Silent
}
Add-Content $env:GITHUB_PATH (
[System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + `
[System.Environment]::GetEnvironmentVariable("Path", "User"))
shell: pwsh
- name: checkout
uses: actions/checkout@v7
- name: cache bazel
uses: actions/cache@v6
with:
path: |
~\_bazel_RUNNERADMIN
~\AppData\Local\bazelisk
key: |
${{ runner.os }}-${{ runner.arch }}-bazel-${{ hashFiles('.bazelversion', 'MODULE.bazel', '**/*.bazel', '**/*.bzl') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-bazel-
- name: build test package
run: |
bazelisk test `
--features=treat_warnings_as_errors `
--flaky_test_attempts=3 `
...
shell: pwsh
bazel-windows-arm64:
name: bazel windows arm64
runs-on: windows-11-arm
timeout-minutes: 30
steps:
- name: cache winget
uses: actions/cache@v6
with:
path: |
~\AppData\Local\Microsoft\WinGet\Links
~\AppData\Local\Microsoft\WinGet\SourceData
key: |
${{ runner.os }}-${{ runner.arch }}-winget-${{ hashFiles('.github/workflows/*.yml') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-winget-
- name: setup
run: |
Install-Module -Force -Name Microsoft.WinGet.Client
Repair-WinGetPackageManager -Force -Latest
$package = Get-WinGetPackage -Id Bazel.Bazelisk `
-MatchOption Equals -ErrorAction SilentlyContinue
if (-not $package) {
Install-WinGetPackage -Id Bazel.Bazelisk `
-MatchOption Equals -Mode Silent
} elseif ($package.IsUpdateAvailable) {
Update-WinGetPackage -Id Bazel.Bazelisk `
-MatchOption Equals -Mode Silent
}
$package = Get-WinGetPackage -Id Git.Git `
-MatchOption Equals -ErrorAction SilentlyContinue
if (-not $package) {
Install-WinGetPackage -Id Git.Git `
-MatchOption Equals -Mode Silent
} elseif ($package.IsUpdateAvailable) {
Update-WinGetPackage -Id Git.Git `
-MatchOption Equals -Mode Silent
}
Add-Content $env:GITHUB_PATH (
[System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + `
[System.Environment]::GetEnvironmentVariable("Path", "User"))
shell: pwsh
- name: checkout
uses: actions/checkout@v7
- name: cache bazel
uses: actions/cache@v6
with:
path: |
~\_bazel_RUNNERADMIN
~\AppData\Local\bazelisk
key: |
${{ runner.os }}-${{ runner.arch }}-bazel-${{ hashFiles('.bazelversion', 'MODULE.bazel', '**/*.bazel', '**/*.bzl') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-bazel-
- name: build test package
run: |
bazelisk test `
--features=treat_warnings_as_errors `
--flaky_test_attempts=3 `
...
shell: pwsh
cmake-almalinux:
name: cmake almalinux amd64
runs-on: ubuntu-latest
container: almalinux:10
steps:
- name: setup
run: |
dnf makecache -q --refresh || (sleep 15; dnf makecache -q --refresh)
dnf install -q -y \
ca-certificates \
cmake \
dnf-plugins-core \
gcc-c++ \
git \
glibc-langpack-en \
graphviz \
make \
pkgconf-pkg-config \
rpm-build
dnf config-manager --set-enabled crb
dnf install -q -y doxygen
dnf clean all
rm -rf /var/cache/yum
shell: bash
- name: checkout
uses: actions/checkout@v7
- name: build test package
run: |
mkdir _build
cd _build
cmake \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=install \
-DENABLE_HARDENING:BOOL=ON \
-DENABLE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON \
-DENABLE_OPENMP:BOOL=ON \
-DOUTPUT_TIME_AND_POSITIONS:BOOL=OFF \
-DSEED_RANDOM_NUMBER_GENERATOR:BOOL=OFF \
-DWARNINGS_AS_ERRORS:BOOL=ON \
--warn-uninitialized \
..
cmake --build .
ctest . --repeat after-timeout:3
cmake --install .
cpack -G RPM
cpack -G RPM --config CPackSourceConfig.cmake
shell: bash
cmake-alpine:
name: cmake alpine linux amd64
runs-on: ubuntu-latest
container: alpine:3
steps:
- name: setup
run: |
apk add -q --no-cache \
ca-certificates \
cmake \
doxygen \
g++ \
git \
graphviz \
make \
pkgconf
shell: sh
- name: checkout
uses: actions/checkout@v7
- name: build test package
run: |
mkdir _build
cd _build
cmake \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=install \
-DENABLE_HARDENING:BOOL=ON \
-DENABLE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON \
-DENABLE_OPENMP:BOOL=ON \
-DOUTPUT_TIME_AND_POSITIONS:BOOL=OFF \
-DSEED_RANDOM_NUMBER_GENERATOR:BOOL=OFF \
-DWARNINGS_AS_ERRORS:BOOL=ON \
--warn-uninitialized \
..
cmake --build .
ctest . --repeat after-timeout:3
cmake --install .
cpack -G TGZ
cpack -G TGZ --config CPackSourceConfig.cmake
shell: sh
cmake-arch:
name: cmake arch linux amd64
runs-on: ubuntu-latest
container: archlinux:latest
steps:
- name: setup
run: |
pacman --needed --noconfirm --noprogressbar -Sy \
ca-certificates \
cmake \
doxygen \
gcc \
git \
graphviz \
make \
pkgconf
rm -rf \
/var/cache/pacman/pkg/* \
/var/lib/pacman/sync/*
shell: bash
- name: checkout
uses: actions/checkout@v7
- name: build test package
run: |
mkdir _build
cd _build
cmake \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=install \
-DENABLE_HARDENING:BOOL=ON \
-DENABLE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON \
-DENABLE_OPENMP:BOOL=ON \
-DOUTPUT_TIME_AND_POSITIONS:BOOL=OFF \
-DSEED_RANDOM_NUMBER_GENERATOR:BOOL=OFF \
-DWARNINGS_AS_ERRORS:BOOL=ON \
--warn-uninitialized \
..
cmake --build .
ctest . --repeat after-timeout:3
cmake --install .
cpack -G TGZ
cpack -G TGZ --config CPackSourceConfig.cmake
shell: bash
cmake-fedora:
name: cmake fedora linux amd64
runs-on: ubuntu-latest
container: fedora:44
steps:
- name: setup
run: |
dnf makecache -q --refresh || (sleep 15; dnf makecache -q --refresh)
dnf install -q -y \
ca-certificates \
cmake \
doxygen \
gcc-c++ \
git \
glibc-langpack-en \
graphviz \
make \
pkgconf-pkg-config \
rpm-build
dnf clean all
rm -rf /var/cache/yum
shell: bash
- name: checkout
uses: actions/checkout@v7
- name: build test package
run: |
mkdir _build
cd _build
cmake \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=install \
-DENABLE_HARDENING:BOOL=ON \
-DENABLE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON \
-DENABLE_OPENMP:BOOL=ON \
-DOUTPUT_TIME_AND_POSITIONS:BOOL=OFF \
-DSEED_RANDOM_NUMBER_GENERATOR:BOOL=OFF \
-DWARNINGS_AS_ERRORS:BOOL=ON \
--warn-uninitialized \
..
cmake --build .
ctest . --repeat after-timeout:3
cmake --install .
cpack -G RPM
cpack -G RPM --config CPackSourceConfig.cmake
shell: bash
cmake-macos:
name: cmake macos arm64
runs-on: macos-26
steps:
- name: checkout
uses: actions/checkout@v7
- name: cache
uses: actions/cache@v6
with:
path: ~/Library/Caches/Homebrew/downloads
key: |
${{ runner.os }}-${{ runner.arch }}-brew-${{ hashFiles('Brewfile') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-brew-
- name: setup
run: |
brew update -q || (sleep 15; brew update -q)
brew bundle install -q
brew cleanup -q -s
env:
HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HOMEBREW_NO_ANALYTICS: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
shell: zsh -efuo pipefail {0}
- name: build test package
run: |
mkdir _build
cd _build
cmake \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=install \
-DENABLE_HARDENING:BOOL=ON \
-DENABLE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON \
-DENABLE_OPENMP:BOOL=OFF \
-DOUTPUT_TIME_AND_POSITIONS:BOOL=OFF \
-DSEED_RANDOM_NUMBER_GENERATOR:BOOL=OFF \
-DWARNINGS_AS_ERRORS:BOOL=ON \
--warn-uninitialized \
..
cmake --build .
ctest . --repeat after-timeout:3
cmake --install .
cpack -G TGZ
cpack -G TGZ --config CPackSourceConfig.cmake
shell: zsh -efuo pipefail {0}
cmake-macos-x86_64:
name: cmake macos x86_64
runs-on: macos-26-intel
steps:
- name: checkout
uses: actions/checkout@v7
- name: cache
uses: actions/cache@v6
with:
path: ~/Library/Caches/Homebrew/downloads
key: |
${{ runner.os }}-${{ runner.arch }}-brew-${{ hashFiles('Brewfile') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-brew-
- name: setup
run: |
brew update -q || (sleep 15; brew update -q)
brew bundle install -q
brew cleanup -q -s
env:
HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HOMEBREW_NO_ANALYTICS: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
shell: zsh -efuo pipefail {0}
- name: build test package
run: |
mkdir _build
cd _build
cmake \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=install \
-DENABLE_HARDENING:BOOL=ON \
-DENABLE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON \
-DENABLE_OPENMP:BOOL=OFF \
-DOUTPUT_TIME_AND_POSITIONS:BOOL=OFF \
-DSEED_RANDOM_NUMBER_GENERATOR:BOOL=OFF \
-DWARNINGS_AS_ERRORS:BOOL=ON \
--warn-uninitialized \
..
cmake --build .
ctest . --repeat after-timeout:3
cmake --install .
cpack -G TGZ
cpack -G TGZ --config CPackSourceConfig.cmake
shell: zsh -efuo pipefail {0}
cmake-opensuse:
name: cmake opensuse leap amd64
runs-on: ubuntu-latest
container: opensuse/leap:16.0
steps:
- name: setup
run: |
zypper -n -q ref || (sleep 15; zypper -n -q ref)
zypper -n -q in --no-recommends \
ca-certificates \
cmake \
doxygen \
gcc-c++ \
git \
graphviz \
make \
pkgconf \
rpm-build
zypper -n -q cc -a
shell: bash
- name: checkout
uses: actions/checkout@v7
- name: build test package
run: |
mkdir _build
cd _build
cmake \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=install \
-DENABLE_HARDENING:BOOL=ON \
-DENABLE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON \
-DENABLE_OPENMP:BOOL=ON \
-DOUTPUT_TIME_AND_POSITIONS:BOOL=OFF \
-DSEED_RANDOM_NUMBER_GENERATOR:BOOL=OFF \
-DWARNINGS_AS_ERRORS:BOOL=ON \
--warn-uninitialized \
..
cmake --build .
ctest . --repeat after-timeout:3
cmake --install .
cpack -G RPM
cpack -G RPM --config CPackSourceConfig.cmake
shell: bash
cmake-ubuntu:
name: cmake ubuntu amd64
runs-on: ubuntu-latest
container: ubuntu:26.04
steps:
- name: setup
run: |
apt-get -qq -o APT::Acquire::Retries=4 update \
|| (sleep 15; apt-get -qq -o APT::Acquire::Retries=4 update)
apt-get -qq -o APT::Acquire::Retries=4 -o Dpkg::Use-Pty=0 \
--no-install-recommends install \
ca-certificates \
cmake \
doxygen \
dpkg-dev \
file \
g++ \
git \
graphviz \
make \
pkgconf
apt-get -qq -o Dpkg::Use-Pty=0 autoremove
rm -rf /var/lib/apt/lists/*
env:
DEBIAN_FRONTEND: noninteractive
shell: bash
- name: checkout
uses: actions/checkout@v7
- name: build test package
run: |
mkdir _build
cd _build
cmake \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=install \
-DENABLE_HARDENING:BOOL=ON \
-DENABLE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON \
-DENABLE_OPENMP:BOOL=ON \
-DOUTPUT_TIME_AND_POSITIONS:BOOL=OFF \
-DSEED_RANDOM_NUMBER_GENERATOR:BOOL=OFF \
-DWARNINGS_AS_ERRORS:BOOL=ON \
--warn-uninitialized \
..
cmake --build .
ctest . --repeat after-timeout:3
cmake --install .
cpack -G DEB
cpack -G DEB --config CPackSourceConfig.cmake
shell: bash
cmake-ubuntu-arm64:
name: cmake ubuntu arm64
runs-on: ubuntu-24.04-arm
container: ubuntu:26.04
steps:
- name: setup
run: |
apt-get -qq -o APT::Acquire::Retries=4 update \
|| (sleep 15; apt-get -qq -o APT::Acquire::Retries=4 update)
apt-get -qq -o APT::Acquire::Retries=4 -o Dpkg::Use-Pty=0 \
--no-install-recommends install \
ca-certificates \
cmake \
doxygen \
dpkg-dev \
file \
g++ \
git \
graphviz \
make \
pkgconf
apt-get -qq -o Dpkg::Use-Pty=0 autoremove
rm -rf /var/lib/apt/lists/*
env:
DEBIAN_FRONTEND: noninteractive
shell: bash
- name: checkout
uses: actions/checkout@v7
- name: build test package
run: |
mkdir _build
cd _build
cmake \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=install \
-DENABLE_HARDENING:BOOL=ON \
-DENABLE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON \
-DENABLE_OPENMP:BOOL=ON \
-DOUTPUT_TIME_AND_POSITIONS:BOOL=OFF \
-DSEED_RANDOM_NUMBER_GENERATOR:BOOL=OFF \
-DWARNINGS_AS_ERRORS:BOOL=ON \
--warn-uninitialized \
..
cmake --build .
ctest . --repeat after-timeout:3
cmake --install .
cpack -G DEB
cpack -G DEB --config CPackSourceConfig.cmake
shell: bash
cmake-windows:
name: cmake windows x64
runs-on: windows-latest
steps:
- name: cache
uses: actions/cache@v6
with:
path: |
~\AppData\Local\Microsoft\WinGet\Links
~\AppData\Local\Microsoft\WinGet\SourceData
key: |
${{ runner.os }}-${{ runner.arch }}-winget-${{ hashFiles('.github/workflows/*.yml') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-winget-
- name: setup
run: |
Install-Module -Force -Name Microsoft.WinGet.Client
Repair-WinGetPackageManager -Force -Latest
$package = Get-WinGetPackage -Id Git.Git `
-MatchOption Equals -ErrorAction SilentlyContinue
if (-not $package) {
Install-WinGetPackage -Id Git.Git `
-MatchOption Equals -Mode Silent
} elseif ($package.IsUpdateAvailable) {
Update-WinGetPackage -Id Git.Git `
-MatchOption Equals -Mode Silent
}
$package = Get-WinGetPackage -Id Kitware.CMake `
-MatchOption Equals -ErrorAction SilentlyContinue
if (-not $package) {
Install-WinGetPackage -Id Kitware.CMake `
-MatchOption Equals -Mode Silent
} elseif ($package.IsUpdateAvailable) {
Update-WinGetPackage -Id Kitware.CMake `
-MatchOption Equals -Mode Silent
}
Add-Content $env:GITHUB_PATH (
[System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + `
[System.Environment]::GetEnvironmentVariable("Path", "User"))
shell: pwsh
- name: checkout
uses: actions/checkout@v7
- name: build test package
run: |
mkdir _build
cd _build
cmake `
-DBUILD_DOCUMENTATION:BOOL=ON `
-DBUILD_TESTING:BOOL=ON `
-DCMAKE_INSTALL_PREFIX:PATH=install `
-DENABLE_HARDENING:BOOL=ON `
-DENABLE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON `
-DENABLE_OPENMP:BOOL=ON `
-DOUTPUT_TIME_AND_POSITIONS:BOOL=OFF `
-DSEED_RANDOM_NUMBER_GENERATOR:BOOL=OFF `
-DWARNINGS_AS_ERRORS:BOOL=ON `
--warn-uninitialized `
..
cmake --build . --config Release
ctest . --build-config Release --repeat after-timeout:3
cmake --install .
cpack -C Release -G ZIP
cpack -C Release -G ZIP --config CPackSourceConfig.cmake
shell: pwsh
cmake-windows-arm64:
name: cmake windows arm64
runs-on: windows-11-arm
steps:
- name: cache
uses: actions/cache@v6
with:
path: |
~\AppData\Local\Microsoft\WinGet\Links
~\AppData\Local\Microsoft\WinGet\SourceData
key: |
${{ runner.os }}-${{ runner.arch }}-winget-${{ hashFiles('.github/workflows/*.yml') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-winget-
- name: setup
run: |
Install-Module -Force -Name Microsoft.WinGet.Client
Repair-WinGetPackageManager -Force -Latest
$package = Get-WinGetPackage -Id Git.Git `
-MatchOption Equals -ErrorAction SilentlyContinue
if (-not $package) {
Install-WinGetPackage -Id Git.Git `
-MatchOption Equals -Mode Silent
} elseif ($package.IsUpdateAvailable) {
Update-WinGetPackage -Id Git.Git `
-MatchOption Equals -Mode Silent
}
$package = Get-WinGetPackage -Id Kitware.CMake `
-MatchOption Equals -ErrorAction SilentlyContinue
if (-not $package) {
Install-WinGetPackage -Id Kitware.CMake `
-MatchOption Equals -Mode Silent
} elseif ($package.IsUpdateAvailable) {
Update-WinGetPackage -Id Kitware.CMake `
-MatchOption Equals -Mode Silent
}
Add-Content $env:GITHUB_PATH (
[System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + `
[System.Environment]::GetEnvironmentVariable("Path", "User"))
shell: pwsh
- name: checkout
uses: actions/checkout@v7
- name: build test package
run: |
mkdir _build
cd _build
cmake `
-DBUILD_DOCUMENTATION:BOOL=ON `
-DBUILD_TESTING:BOOL=ON `
-DCMAKE_INSTALL_PREFIX:PATH=install `
-DENABLE_HARDENING:BOOL=ON `
-DENABLE_INTERPROCEDURAL_OPTIMIZATION:BOOL=ON `
-DENABLE_OPENMP:BOOL=ON `
-DOUTPUT_TIME_AND_POSITIONS:BOOL=OFF `
-DSEED_RANDOM_NUMBER_GENERATOR:BOOL=OFF `
-DWARNINGS_AS_ERRORS:BOOL=ON `
--warn-uninitialized `
..
cmake --build . --config Release
ctest . --build-config Release --repeat after-timeout:3
cmake --install .
cpack -C Release -G ZIP
cpack -C Release -G ZIP --config CPackSourceConfig.cmake
shell: pwsh