Fix indeterminate wait for GC to proceed. #278
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: Build | |
# Controls when the action will run. | |
on: | |
# Triggers the workflow on push or pull request events for the specified branches. | |
push: | |
branches: | |
- ci | |
paths-ignore: | |
- 'docs/**' | |
pull_request: | |
branches: | |
- master | |
- ci | |
paths-ignore: | |
- 'docs/**' | |
# Allow running this workflow manually from the Actions tab. | |
workflow_dispatch: | |
jobs: | |
Windows: | |
if: "!contains(github.event.head_commit.message, 'skip ci')" | |
runs-on: ${{ matrix.cfg.os }} | |
name: ${{ matrix.cfg.name }} | |
strategy: | |
matrix: | |
cfg: | |
- { os: windows-latest, name: 'Windows 64-bit', opt: '' } | |
#- { os: windows-latest, name: 'Windows 32-bit', opt: '--build=i686-w64-mingw32 --host=i686-w64-mingw32' } | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: UCRT64 | |
update: true | |
install: >- | |
mingw-w64-ucrt-x86_64-gcc | |
mingw-w64-ucrt-x86_64-diffutils | |
mingw-w64-ucrt-x86_64-openssl | |
mingw-w64-ucrt-x86_64-libpng | |
mingw-w64-ucrt-x86_64-libjpeg-turbo | |
make | |
git | |
- run: git config --global core.autocrlf input | |
shell: bash | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Configure | |
run: sh configure ${{ matrix.cfg.opt }} | |
- name: Make | |
run: make | |
- name: HtmlDoc | |
run: make htmldoc | |
- name: Test | |
run: make Test | |
- name: TestReport | |
run: make -C tests Report | |
- name: Summary | |
run: | | |
cat unicon-config.log | |
cat unicon-features.log | |
macOS: | |
if: "!contains(github.event.head_commit.message, 'skip ci')" | |
runs-on: ${{ matrix.cfg.os }} | |
name: ${{ matrix.cfg.name }} | |
strategy: | |
matrix: | |
cfg: | |
- { os: macos-latest, name: 'macOS', opt: 'CC=clang CXX=clang++' } | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Configure | |
run: sh configure ${{ matrix.cfg.opt }} | |
- name: Make | |
run: make | |
- name: HtmlDoc | |
run: make htmldoc | |
- name: Test | |
run: make Test | |
- name: TestReport | |
run: make -C tests Report | |
- name: Summary | |
run: | | |
cat unicon-config.log | |
cat unicon-features.log | |
Linux: | |
if: "!contains(github.event.head_commit.message, 'skip ci')" | |
runs-on: ubuntu-latest | |
name: ${{ matrix.cfg.name }} | |
container: ${{ matrix.cfg.os }} | |
strategy: | |
matrix: | |
cfg: | |
- { os: 'ubuntu:20.04', name: 'Ubuntu 20.04', opt: '' } | |
- { os: 'ubuntu:22.04', name: 'Ubuntu 22.04', opt: '' } | |
- { os: 'centos:7', name: 'CentOS 7', opt: '' } | |
- { os: 'fedora:latest', name: 'Fedora Latest', opt: '' } | |
- { os: 'debian:10', name: 'Debian 10', opt: '' } | |
- { os: 'debian:11', name: 'Debian 11', opt: '' } | |
- { os: 'oraclelinux:8', name: 'Oracle Linux 8', opt: '' } | |
#- { os: 'alpine:latest', name: 'Alpine Latest', opt: '' } | |
steps: | |
- name: Install dependencies | |
run: | | |
case "${{ matrix.cfg.os }}" in | |
ubuntu*|debian*) | |
apt-get update -q -y | |
DEBIAN_FRONTEND="noninteractive" apt-get install -q -y build-essential make autotools-dev libc6 libgcc1 libgl1-mesa-glx | |
DEBIAN_FRONTEND="noninteractive" apt-get install -q -y libssl-dev libx11-dev libjpeg-dev libpng-dev libglu1-mesa-dev libxft-dev | |
DEBIAN_FRONTEND="noninteractive" apt-get install -q -y libopenal-dev libalut-dev libogg-dev libvorbis-dev unixodbc-dev libfreetype6-dev | |
;; | |
oracle*) | |
dnf -y update | |
dnf -y install git gcc make diffutils libjpeg-turbo-devel libpng-devel libX11-devel mesa-libGL-devel mesa-libGLU-devel | |
dnf -y install openssl-devel unixODBC-devel freetype-devel libXft-devel | |
;; | |
fedora*) | |
dnf -y update | |
dnf -y install gcc make diffutils libjpeg-turbo-devel libpng-devel libX11-devel mesa-libGL-devel mesa-libGLU-devel | |
dnf -y install openal-devel freealut-devel libogg-devel libvorbis-devel openssl-devel unixODBC-devel freetype-devel libXft-devel | |
;; | |
centos*) | |
yum update -y | |
yum install -y gcc make libjpeg-turbo-devel libpng-devel libX11-devel mesa-libGL-devel mesa-libGLU-devel libXft-devel | |
yum install -y openal-devel freealut-devel libogg-devel libvorbis-devel openssl-devel unixODBC-devel freetype-devel | |
;; | |
alpine*) | |
apk update | |
apk add build-base | |
;; | |
esac | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Configure | |
run: ./configure | |
- name: Make | |
run: make | |
- name: HtmlDoc | |
run: make htmldoc | |
- name: Test | |
run: make Test | |
- name: TestReport | |
run: make -C tests Report | |
- name: Summary | |
run: | | |
cat unicon-config.log | |
cat unicon-features.log | |
Features: | |
if: "!contains(github.event.head_commit.message, 'skip ci')" | |
runs-on: ${{ matrix.cfg.os }} | |
name: ${{ matrix.cfg.name }} | |
strategy: | |
matrix: | |
cfg: | |
#- { os: ubuntu-latest, name: 'Ubuntu 32-bit', opt: '--host=i686-pc-linux-gnu' } | |
- { os: ubuntu-latest, name: 'Clang', opt: 'CC=clang CXX=clang++' } | |
- { os: ubuntu-latest, name: 'No Graphics', opt: '--disable-graphics' } | |
- { os: ubuntu-latest, name: 'No 3D Graphics', opt: '--disable-graphics3d' } | |
- { os: ubuntu-latest, name: 'No Concurrency', opt: '--disable-concurrency' } | |
- { os: ubuntu-latest, name: 'Heap Test', opt: '--enable-debugheap --enable-verifyheap' } | |
- { os: ubuntu-latest, name: 'Thin Build', opt: '--enable-thin' } | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update -q -y | |
if [[ "${{ matrix.cfg.name }}" = "Ubuntu 32-bit" ]] | |
then | |
# Install tools to cross compile 32-bit | |
sudo apt-get install -q -y gcc-multilib g++-multilib | |
fi | |
# Easy way to install all dependencies | |
sudo apt-get install -q -y devscripts equivs | |
sudo mk-build-deps --install debian/control | |
- name: Configure | |
run: ./configure ${{ matrix.cfg.opt }} | |
- name: Make | |
run: make | |
# set VRFY globally even though it is only needed in the debug test | |
env: | |
VRFY: -2 | |
- name: HtmlDoc | |
run: make htmldoc | |
- name: Test | |
run: make Test | |
# set VRFY globally even though it is only needed in the debug test | |
env: | |
VRFY: -2 | |
- name: TestReport | |
run: make -C tests Report | |
- name: Summary | |
run: | | |
cat unicon-config.log | |
cat unicon-features.log | |
DebianPkg: | |
if: "!contains(github.event.head_commit.message, 'skip ci')" | |
runs-on: ${{ matrix.cfg.os }} | |
name: ${{ matrix.cfg.name }} | |
strategy: | |
matrix: | |
cfg: | |
- { os: ubuntu-22.04, name: 'Debian-Pkg', opt: '' } | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update -q -y | |
sudo apt-get install -q -y build-essential fakeroot devscripts equivs dh-autoreconf | |
sudo mk-build-deps --install debian/control | |
- name: Configure | |
run: ./configure ${{ matrix.cfg.opt }} | |
- name: Deb | |
run: | | |
make debin | |
mkdir debian-pkg | |
cp ../unicondist/unicon_*.deb debian-pkg/ | |
cp ../unicondist/unicon_*.changes debian-pkg/ | |
cp ../unicondist/unicon_*.dsc debian-pkg/ | |
cp ../unicondist/unicon_*.debian.tar.xz debian-pkg/ | |
cp ../unicondist/unicon_*.orig.tar.gz debian-pkg/ | |
- name: Install | |
run: sudo apt install ./debian-pkg/*.deb | |
- name: Test | |
run: make Test | |
env: | |
UC: unicon |