Skip to content

SLiM.spec change for the 4.2.1 release #1147

SLiM.spec change for the 4.2.1 release

SLiM.spec change for the 4.2.1 release #1147

Workflow file for this run

# It's useful to use yamllint to find problems with this file;
# pip install --user yamllint, python3 -m yamllint <file>
#
# It is quite aggressive by default, though, so I've disabled some rules
#
# yamllint disable rule:document-start
# yamllint disable rule:line-length
# yamllint disable rule:brackets
# yamllint disable rule:braces
name: tests
on: [push, pull_request] # yamllint disable-line rule:truthy
jobs:
canceller:
runs-on: ubuntu-20.04
steps:
- name: Cancel previous runs
uses: styfle/cancel-workflow-action@0.6.0
with:
access_token: ${{ github.token }}
CLI:
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
include:
# Ubuntu with the oldest supported GCC (used to be 4.8, but with 20.04 it is 7, sadly).
- os: ubuntu-20.04
gcc: 7
python: 3.8
# Ubuntu with the most recent GCC (on 22.04, that is 12).
- os: ubuntu-22.04
gcc: 12
python: 3.9
# macOS, oldest supported version (macos-10.15 was removed by GitHub)
- os: macos-11
python: 3.8
# macOS, newest supported version (macos-13 does not work yet)
- os: macos-12
python: 3.9
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Choose GCC
if: startsWith(matrix.os, 'ubuntu')
run: |
# Install specific GCC version as the default.
sudo apt-get install gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-${{ matrix.gcc }} 100 \
--slave /usr/bin/g++ g++ /usr/bin/g++-${{ matrix.gcc }}
- name: Cache conda and dependancies
id: cache
uses: actions/cache@v2
with:
path: |
c:\Miniconda\envs\anaconda-client-env
/usr/share/miniconda/envs/anaconda-client-env
~/osx-conda
~/.profile
key: ${{ runner.os }}-${{ matrix.python }}-conda-v13-${{ hashFiles('treerec/tests/conda-requirements.txt') }}-${{ hashFiles('treerec/tests/pip-requirements.txt') }}
- name: Install Conda
uses: conda-incubator/setup-miniconda@v2
if: steps.cache.outputs.cache-hit != 'true'
with:
activate-environment: anaconda-client-env
python-version: ${{ matrix.python }}
channels: conda-forge
channel-priority: strict
auto-update-conda: true
use-only-tar-bz2: true
- name: Install conda deps
if: steps.cache.outputs.cache-hit != 'true'
shell: bash -l {0} # We need a login shell to get conda
run: conda install --yes --file=treerec/tests/conda-requirements.txt
- name: Install pip deps
if: steps.cache.outputs.cache-hit != 'true'
shell: bash -l {0}
run: |
pip3 install -r treerec/tests/pip-requirements.txt
- name: Fix OSX Cache Write # OSX Won't let the cache restore due to file perms
if: steps.cache.outputs.cache-hit != 'true' && startsWith(matrix.os, 'macos')
run: |
cp -r /usr/local/miniconda/envs/anaconda-client-env ~/osx-conda
- name: Fix OSX Cache Restore
if: steps.cache.outputs.cache-hit == 'true' && startsWith(matrix.os, 'macos')
run: |
sudo mkdir -p /usr/local/miniconda/envs
sudo cp -r ~/osx-conda /usr/local/miniconda/envs/anaconda-client-env
- name: Install pyslim
shell: bash -l {0}
run: |
# TODO: uncomment when pyslim 1.0 on conda
source ~/.profile
# conda activate anaconda-client-env
# pip install pyslim
git clone https://github.com/tskit-dev/pyslim.git
cd pyslim
pip3 install .
- name: Build (Debug)
run: |
mkdir Debug
cd Debug
cmake -D CMAKE_BUILD_TYPE=Debug ..
make -j 2
- name: Test (Debug)
run: |
cd Debug
./eidos -testEidos
./slim -testEidos
./slim -testSLiM
- name: Build (Release)
run: |
mkdir Release
cd Release
cmake -D CMAKE_BUILD_TYPE=Release ..
make -j 2
- name: Test (Release)
run: |
cd Release
./eidos -testEidos
./slim -testEidos
./slim -testSLiM
- name: Treesequence tests
run: |
source ~/.profile
conda activate anaconda-client-env
export PATH=$PATH:$PWD/Release
echo $PATH
cd treerec/tests && python -m pytest -xv
GUI:
runs-on: ${{ matrix.os }}
env:
CXXFLAGS: -D NO_QT_VERSION_ERROR
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
include:
# Ubuntu with the oldest supported Qt and GCC.
- os: ubuntu-20.04
qt: 5.9.5
gcc: 7
# Ubuntu with the most recent Qt and GCC.
- os: ubuntu-20.04
qt: 5.15.2
gcc: 11
# Ubuntu with the most recent Qt and GCC.
- os: ubuntu-22.04
qt: 5.15.2
gcc: 12
# old macOS with oldest supported Qt.
- os: macos-11
qt: 5.9.5
# new macOS with most recent Qt (macos-13 does not work yet)
- os: macos-12
qt: 5.15.2
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Choose GCC
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo apt-get install gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }}
sudo update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-${{ matrix.gcc }} 100 \
--slave /usr/bin/g++ g++ /usr/bin/g++-${{ matrix.gcc }}
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: ${{ matrix.qt }}
setup-python: true
- name: Build (cmake)
run: |
# Just do a release build.
mkdir Release
cd Release
cmake -D BUILD_SLIMGUI=ON -D CMAKE_BUILD_TYPE=Release ..
make -j 2
- name: Build (qmake)
run: |
mkdir QtSLiM_QMAKE
cd QtSLiM_QMAKE
qmake ..
make -j 2
# test windows-latest compilation
tests-windows-latest-CLI:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include:
- { sys: mingw64, env: x86_64, python: 3.8 }
- { sys: ucrt64, env: ucrt-x86_64, python: 3.8 }
name: Windows CLI (${{ matrix.sys }}, ${{ matrix.env }})
defaults:
run:
shell: msys2 {0}
steps:
- name: 'Checkout'
uses: actions/checkout@v2
with:
submodules: true
- name: Setup MSYS2 ${{matrix.sys}}
uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
update: true
install: >-
git
base-devel
msys2-devel
mingw-w64-${{matrix.env}}-toolchain
mingw-w64-${{matrix.env}}-cmake
- name: Cache conda and dependancies
id: cache
uses: actions/cache@v2
with:
path: |
c:\Miniconda\envs\anaconda-client-env
~/.bash_profile
~/.profile
key: ${{ runner.os }}-${{ matrix.python}}-conda-v16-${{ hashFiles('treerec/tests/conda-requirements.txt') }}-${{ hashFiles('treerec/tests/pip-requirements.txt') }}
- name: Install Conda
uses: conda-incubator/setup-miniconda@v2
if: steps.cache.outputs.cache-hit != 'true'
with:
activate-environment: anaconda-client-env
python-version: ${{ matrix.python }}
channels: conda-forge
channel-priority: strict
auto-update-conda: true
use-only-tar-bz2: true
- name: Install conda deps
if: steps.cache.outputs.cache-hit != 'true'
shell: bash -l {0}
run: |
conda install --yes --file=treerec/tests/conda-requirements.txt
- name: Install pip deps
if: steps.cache.outputs.cache-hit != 'true'
shell: bash -l {0}
run: |
pip install -r treerec/tests/pip-requirements.txt
- name: Install pyslim
shell: bash -l {0}
run: |
# TODO: uncomment when pyslim 1.0 is on conda
# conda install -c conda-forge pyslim
git clone https://github.com/tskit-dev/pyslim.git
cd pyslim
pip3 install .
- name: Debug
run: |
cd windows_compat/gnulib
touch --date="`date`" aclocal.m4 Makefile.am configure configure.ac config.h.in Makefile.in
cd ../..
mkdir Debug
cd Debug
cmake -G"MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug ..
make -j 2
- name: Build (Release)
run: |
cd windows_compat/gnulib
touch --date="`date`" aclocal.m4 Makefile.am configure configure.ac config.h.in Makefile.in
cd ../..
mkdir Release
cd Release
cmake -G"MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release ..
make -j 2
- name: Test (Release)
run: |
cd Release
./eidos -testEidos
./slim -testEidos
./slim -testSLiM
- name: Treesequence tests
shell: bash -l {0}
run: |
export PATH=$PATH:$(pwd)/Release
cd treerec/tests
python -m pytest -xv
tests-windows-latest-GUI:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include:
- { sys: mingw64, env: x86_64 }
- { sys: ucrt64, env: ucrt-x86_64 }
name: Windows GUI (${{ matrix.sys }}, ${{ matrix.env }})
defaults:
run:
shell: msys2 {0}
steps:
- name: 'Checkout'
uses: actions/checkout@v2
with:
submodules: true
- name: Setup MSYS2 ${{matrix.sys}}
uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
update: true
install: >-
git
base-devel
msys2-devel
mingw-w64-${{matrix.env}}-toolchain
mingw-w64-${{matrix.env}}-cmake
mingw-w64-${{matrix.env}}-qt5-base
- name: Build (cmake)
run: |
cd .
cd windows_compat/gnulib
touch --date="`date`" aclocal.m4 Makefile.am configure configure.ac config.h.in Makefile.in
cd ../..
# Just do a release build.
mkdir Release
cd Release
cmake -G"MSYS Makefiles" -DBUILD_SLIMGUI=ON -DCMAKE_BUILD_TYPE=Release ..
make -j 2
tests-windows-latest-pacman:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
include:
- { sys: mingw64, env: x86_64 }
- { sys: ucrt64, env: ucrt-x86_64 }
name: Windows pacman (${{ matrix.sys }}, ${{ matrix.env }})
defaults:
run:
shell: msys2 {0}
steps:
- name: 'Checkout'
uses: actions/checkout@v2
with:
submodules: true
- name: Setup MSYS2 ${{matrix.sys}}
uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.sys}}
update: true
install: >-
mingw-w64-${{matrix.env}}-slim-simulator
- name: Test
run: |
eidos -testEidos
slim -testEidos
slim -testSLiM