Skip to content

ci

ci #1103

Workflow file for this run

#
# ci.yml
# RVO2 Library Java
#
# 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_arch:
name: bazel arch latest
runs-on: ubuntu-latest
container: archlinux:latest
steps:
- name: setup
run: |
pacman --needed --noconfirm --noprogressbar -S -u -y \
bazel \
ca-certificates \
gcc \
git \
jdk21-openjdk \
python \
which
rm -rf \
/var/cache/pacman/pkg/* \
/var/lib/pacman/sync/*
shell: bash
- name: checkout
uses: actions/checkout@v4
- name: build test package
run: bazel test --enable_bzlmod=0 --flaky_test_attempts=3 ...
shell: bash
bazel_macos:
name: bazel macos 14
runs-on: macos-14
steps:
- name: checkout
uses: actions/checkout@v4
- name: setup
run: |
brew update -q
brew upgrade -f -q
brew bundle install -q --no-lock
brew cleanup -q -s
rm -rf $(brew --cache)
env:
HOMEBREW_NO_ANALYTICS: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
shell: zsh -efuo pipefail {0}
- name: build test package
run: bazel test --enable_bzlmod=0 --flaky_test_attempts=3 ...
shell: zsh -efuo pipefail {0}
bazel_ubuntu:
name: bazel ubuntu latest
runs-on: ubuntu-latest
container: ubuntu:latest
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 \
git \
gnupg \
openjdk-21-jdk \
python-is-python3 \
wget
wget -qO - https://bazel.build/bazel-release.pub.gpg 2>/dev/null \
| gpg --dearmor - > /usr/share/keyrings/bazel-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/bazel-archive-keyring.gpg] https://storage.googleapis.com/bazel-apt stable jdk1.8' \
> /etc/apt/sources.list.d/bazel.list
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 \
bazel
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@v4
- name: build test package
run: bazel test --enable_bzlmod=0 --flaky_test_attempts=3 ...
shell: bash
bzlmod_arch:
name: bzlmod arch latest
runs-on: ubuntu-latest
container: archlinux:latest
steps:
- name: setup
run: |
pacman --needed --noconfirm --noprogressbar -S -u -y \
bazel \
ca-certificates \
gcc \
git \
jdk21-openjdk \
python \
which
rm -rf \
/var/cache/pacman/pkg/* \
/var/lib/pacman/sync/*
shell: bash
- name: checkout
uses: actions/checkout@v4
- name: build test package
run: bazel test --enable_bzlmod=1 --flaky_test_attempts=3 ...
shell: bash
bzlmod_macos:
name: bzlmod macos 14
runs-on: macos-14
steps:
- name: checkout
uses: actions/checkout@v4
- name: setup
run: |
brew update -q
brew upgrade -f -q
brew bundle install -q --no-lock
brew cleanup -q -s
rm -rf $(brew --cache)
env:
HOMEBREW_NO_ANALYTICS: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
shell: zsh -efuo pipefail {0}
- name: build test package
run: bazel test --enable_bzlmod=1 --flaky_test_attempts=3 ...
shell: zsh -efuo pipefail {0}
bzlmod_ubuntu:
name: bzlmod ubuntu latest
runs-on: ubuntu-latest
container: ubuntu:latest
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 \
git \
gnupg \
openjdk-21-jdk \
python-is-python3 \
wget
wget -qO - https://bazel.build/bazel-release.pub.gpg 2>/dev/null \
| gpg --dearmor - > /usr/share/keyrings/bazel-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/bazel-archive-keyring.gpg] https://storage.googleapis.com/bazel-apt stable jdk1.8' \
> /etc/apt/sources.list.d/bazel.list
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 \
bazel
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@v4
- name: build test package
run: bazel test --enable_bzlmod=1 --flaky_test_attempts=3 ...
shell: bash
cmake_alpine:
name: cmake alpine latest
runs-on: ubuntu-latest
container: alpine:latest
steps:
- name: setup
run: |
apk upgrade -q --no-cache
apk add -q --no-cache \
ca-certificates \
cmake \
git \
make \
openjdk21
shell: sh
- name: checkout
uses: actions/checkout@v4
- name: build test package
run: |
mkdir _build
cd _build
cmake \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=${GITHUB_WORKSPACE}/_build/install \
-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
env:
JAVA_HOME: /usr/lib/jvm/java-21-openjdk
shell: sh
cmake_arch:
name: cmake arch latest
runs-on: ubuntu-latest
container: archlinux:latest
steps:
- name: setup
run: |
pacman --needed --noconfirm --noprogressbar -S -u -y \
ca-certificates \
cmake \
git \
jdk21-openjdk \
make
rm -rf \
/var/cache/pacman/pkg/* \
/var/lib/pacman/sync/*
shell: bash
- name: checkout
uses: actions/checkout@v4
- name: build test package
run: |
mkdir _build
cd _build
cmake \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=${GITHUB_WORKSPACE}/_build/install \
-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 latest
runs-on: ubuntu-latest
container: fedora:latest
steps:
- name: setup
run: |
dnf makecache -q --refresh || (sleep 15; dnf makecache -q --refresh)
dnf upgrade -q -y
dnf install -q -y \
ca-certificates \
cmake \
git \
glibc-langpack-en \
java-21-openjdk-devel \
make \
rpm-build
dnf clean all
rm -rf /var/cache/yum
shell: bash
- name: checkout
uses: actions/checkout@v4
- name: build test package
run: |
mkdir _build
cd _build
cmake \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=${GITHUB_WORKSPACE}/_build/install \
-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 14
runs-on: macos-14
steps:
- name: checkout
uses: actions/checkout@v4
- name: setup
run: |
brew update -q
brew upgrade -f -q
brew bundle install -q --no-lock
brew cleanup -q -s
rm -rf $(brew --cache)
env:
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=${GITHUB_WORKSPACE}/_build/install \
-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
env:
JAVA_HOME: /opt/homebrew/opt/openjdk/libexec/openjdk.jdk/Contents/Home
shell: zsh -efuo pipefail {0}
cmake_rockylinux:
name: cmake rockylinux 9
runs-on: ubuntu-latest
container: rockylinux:9
steps:
- name: setup
run: |
dnf makecache -q --refresh || (sleep 15; dnf makecache -q --refresh)
dnf upgrade -q -y
dnf install -q -y \
ca-certificates \
cmake \
git \
glibc-langpack-en \
java-21-openjdk-devel \
make \
rpm-build
dnf clean all
rm -rf /var/cache/yum
shell: bash
- name: checkout
uses: actions/checkout@v4
- name: build test package
run: |
mkdir _build
cd _build
cmake \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=${GITHUB_WORKSPACE}/_build/install \
-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 latest
runs-on: ubuntu-latest
container: ubuntu:latest
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 \
cmake \
git \
make \
openjdk-21-jdk
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@v4
- name: build test package
run: |
mkdir _build
cd _build
cmake \
-DBUILD_DOCUMENTATION:BOOL=ON \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=${GITHUB_WORKSPACE}/_build/install \
-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 latest
runs-on: windows-latest
steps:
- name: checkout
uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: microsoft
java-version: 21
- name: setup
run: |
choco upgrade cmake.install -r -y --install-arguments=ADD_CMAKE_TO_PATH=System `
--no-progress
shell: pwsh
- name: build test package
run: |
mkdir _build
cd _build
cmake `
-DBUILD_DOCUMENTATION:BOOL=ON `
-DBUILD_TESTING:BOOL=ON `
-DCMAKE_INSTALL_PREFIX:PATH=$Env:GITHUB_WORKSPACE\_build\install `
-DWARNINGS_AS_ERRORS:BOOL=ON `
--warn-uninitialized `
..
cmake --build . --config Release
ctest . --build-config Release --repeat after-timeout:3
cmake --install . --config Release
cpack -C Release -G ZIP
cpack -C Release -G ZIP --config CPackSourceConfig.cmake
shell: pwsh
gradle_alpine:
name: gradle alpine latest
runs-on: ubuntu-latest
container: alpine:latest
steps:
- name: setup
run: |
apk upgrade -q --no-cache
apk add -q --no-cache \
ca-certificates \
git \
openjdk21
shell: sh
- name: checkout
uses: actions/checkout@v4
- name: cache
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: alpine-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: alpine-gradle-
- name: build package
run: ./gradlew build
env:
JAVA_HOME: /usr/lib/jvm/java-21-openjdk
shell: sh
gradle_arch:
name: gradle arch latest
runs-on: ubuntu-latest
container: archlinux:latest
steps:
- name: setup
run: |
pacman --needed --noconfirm --noprogressbar -S -u -y \
ca-certificates \
git \
jdk21-openjdk \
which
rm -rf \
/var/cache/pacman/pkg/* \
/var/lib/pacman/sync/*
shell: bash
- name: checkout
uses: actions/checkout@v4
- name: cache
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: arch-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: arch-gradle-
- name: build package
run: ./gradlew build --no-daemon
shell: bash
gradle_rockylinux:
name: gradle rockylinux 9
runs-on: ubuntu-latest
container: rockylinux:9
steps:
- name: setup
run: |
dnf makecache -q --refresh || (sleep 15; dnf makecache -q --refresh)
dnf upgrade -q -y
dnf install -q -y \
ca-certificates \
git \
glibc-langpack-en \
java-21-openjdk-devel \
which
dnf clean all
rm -rf /var/cache/yum
shell: bash
- name: checkout
uses: actions/checkout@v4
- name: cache
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: rockylinux-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: rockylinux-gradle-
- name: build package
run: ./gradlew build --no-daemon
shell: bash
gradle_fedora:
name: gradle fedora latest
runs-on: ubuntu-latest
container: fedora:latest
steps:
- name: setup
run: |
dnf makecache -q --refresh || (sleep 15; dnf makecache -q --refresh)
dnf upgrade -q -y
dnf install -q -y \
ca-certificates \
git \
glibc-langpack-en \
java-21-openjdk-devel \
which
dnf clean all
rm -rf /var/cache/yum
shell: bash
- name: checkout
uses: actions/checkout@v4
- name: cache
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: fedora-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: fedora-gradle-
- name: build package
run: ./gradlew build --no-daemon
shell: bash
gradle_macos:
name: gradle macos 14
runs-on: macos-14
steps:
- name: checkout
uses: actions/checkout@v4
- name: setup
run: |
brew update -q
brew upgrade -f -q
brew bundle install -q --no-lock
brew cleanup -q -s
rm -rf $(brew --cache)
env:
HOMEBREW_NO_ANALYTICS: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
shell: zsh -efuo pipefail {0}
- name: cache
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: macos-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: macos-gradle-
- name: build package
run: ./gradlew build --no-daemon
env:
JAVA_HOME: /opt/homebrew/opt/openjdk/libexec/openjdk.jdk/Contents/Home
shell: zsh -efuo pipefail {0}
gradle_ubuntu:
name: gradle ubuntu latest
runs-on: ubuntu-latest
container: ubuntu:latest
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 \
git \
openjdk-21-jdk
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@v4
- name: cache
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ubuntu-gradle-${{ hashFiles('**/*.gradle*') }}
restore-keys: ubuntu-gradle-
- name: build package
run: ./gradlew build --no-daemon
shell: bash
gradle_windows:
name: gradle windows latest
runs-on: windows-latest
steps:
- name: checkout
uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: microsoft
java-version: 21
cache: gradle
- name: build package
run: gradlew.bat build --no-daemon
shell: cmd