WIP: CI: Limit tests #138
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: Test, build, publish | |
# Run tests (all branches), | |
# for tags build wheels, publish wheels to PyPI and Github Releases. | |
on: [push, pull_request] | |
jobs: | |
run-tests: | |
env: | |
not_in_conda: "[]" | |
not_in_aarch64: "['3.5', 'pypy3.7']" | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ["3.7", "3.12"] | |
include: | |
- os: ubuntu-latest | |
os-name: Linux | |
pip-cache-path: ~/.cache/pip | |
name: Python ${{ matrix.python-version }} @ ${{ matrix.os-name }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
# Setup Python/pip | |
- uses: actions/checkout@v4 | |
- uses: s-weigand/setup-conda@v1 | |
with: | |
conda-channels: conda-forge | |
python-version: ${{ matrix.python-version }} | |
if: ${{ !contains(fromJSON(env.not_in_conda), matrix.python-version) }} | |
# Python 3.7 is needed for ghactions-release script | |
- name: Install additional Python 3.7 | |
run: | | |
conda create -n py37 --yes python=3.7 | |
py37_prefix="`echo $CONDA_PREFIX | sed 's/__setup_conda/py37/'`" | |
ln -s "$py37_prefix/bin/python" "$CONDA_PREFIX/bin/python3.7" | |
ln -s "$py37_prefix/bin/pip" "$CONDA_PREFIX/bin/pip3.7" | |
python3.7 --version | |
pip3.7 --version | |
shell: bash | |
if: ${{ matrix.python-version == '2.7' && runner.os != 'Windows' }} | |
- name: Build and publish wheel on Linux/aarch64 | |
uses: uraimo/run-on-arch-action@v2 | |
with: | |
arch: aarch64 | |
distro: ubuntu22.04 | |
env: | | |
PY_VER: "${{ matrix.python-version }}" | |
RUNNER_OS: ${{ runner.os }} | |
install: | | |
set -ex | |
apt-get update -q -y | |
apt-get install -q -y curl gcc patchelf | |
run: | | |
set -ex | |
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh" | |
bash Miniforge3-$(uname)-$(uname -m).sh -b -u -p "$HOME"/miniforge3 | |
source "$HOME"/miniforge3/etc/profile.d/conda.sh | |
#conda update -n base -c conda-forge --yes conda | |
pyv="`echo $PY_VER | sed 's/\.//'`" | |
conda create -n py$pyv --yes python=$PY_VER | |
conda activate py$pyv | |
python --version | |
python -m pip || python -m ensurepip --default-pip --upgrade | |
python -m pip install --upgrade pip setuptools wheel | |
pip --version | |
if [ $PY_VER = 2.7 ]; then | |
conda create -n py37 --yes python=3.7 | |
ln -s "$HOME"/miniforge3/envs/py37/bin/python "$HOME"/miniforge3/envs/py27/bin/python3.7 | |
ln -s "$HOME"/miniforge3/envs/py37/bin/pip "$HOME"/miniforge3/envs/py27/bin/pip3.7 | |
python3.7 --version | |
pip3.7 --version | |
fi | |
devscripts/CI/ghactions-release | |
if: ${{ !contains(fromJSON(env.not_in_aarch64), matrix.python-version) && runner.os == 'Linux' }} | |
- name: Check dist | |
run: exec ls -lAF dist | |
shell: bash | |
if: ${{ !contains(fromJSON(env.not_in_aarch64), matrix.python-version) && runner.os == 'Linux' }} |