from scratch #200
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: continuous-integration | ||
on: | ||
push: | ||
branches: | ||
- main | ||
- master | ||
- releases/* | ||
pull_request: null | ||
env: | ||
CACHE_NUMBER: 0 # increase to reset cache manually | ||
CONDA_ENV: .github/environment.yml | ||
jobs: | ||
build: | ||
runs-on: ${{ matrix.os }} | ||
defaults: | ||
run: | ||
shell: bash -l {0} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [macos-latest, ubuntu-latest] | ||
include: | ||
- os: macos-latest | ||
label: osx-64 | ||
prefix: /Users/runner/miniconda3 | ||
- os: ubuntu-latest | ||
label: linux-64 | ||
prefix: /usr/share/miniconda3 | ||
steps: | ||
# - name: Cancel previous runs | ||
# uses: styfle/[email protected] | ||
# with: | ||
# access_token: ${{ github.token }} | ||
- name: Checkout NaMaster repository | ||
uses: actions/checkout@v4 | ||
- name: Set up conda | ||
uses: conda-incubator/setup-miniconda@v3 | ||
with: | ||
channels: conda-forge, defaults | ||
channel-priority: strict | ||
show-channel-urls: true | ||
miniforge-version: latest | ||
miniforge-variant: Mambaforge | ||
- name: "macOS: set env variables" | ||
if: matrix.label == 'osx-64' | ||
run: | | ||
#mamba install llvm-openmp | ||
echo "DYLD_FALLBACK_LIBRARY_PATH=${CONDA_PREFIX}/lib" >> $GITHUB_ENV | ||
SDKROOT=$(xcrun --sdk macosx --show-sdk-path) | ||
echo "SDKROOT: ${SDKROOT}" | ||
echo "SDKROOT=${SDKROOT}" >> $GITHUB_ENV | ||
echo "CONDA_BUILD_SYSROOT=${SDKROOT}" >> $GITHUB_ENV | ||
export CFLAGS="-I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include" | ||
export LDFLAGS="-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib" | ||
- name: Set current date as environment variable | ||
run: echo "TODAY=$(date +'%Y.%m.%d')" >> $GITHUB_ENV | ||
- name: Get cached environment | ||
uses: actions/cache@v3 | ||
id: cache | ||
with: | ||
path: ${{ matrix.prefix }} | ||
key: | ||
conda-py${{ matrix.py }}--${{ | ||
matrix.os }}--${{ | ||
hashFiles(env.CONDA_ENV) }}-${{ | ||
hashFiles('setup.py') }}--${{ | ||
env.TODAY }}-${{ | ||
env.CACHE_NUMBER }} | ||
- name: Install environment packages | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
export MAMBA_NO_BANNER=1 # hide mamba banner from output | ||
mamba env update --file ${{ env.CONDA_ENV }} --prune | ||
#- name: Flake | ||
# run: | | ||
# flake8 pymaster --exclude=nmtlib.py | ||
# flake8 test --exclude=benchmarks | ||
- name: Build NaMaster | ||
run: | | ||
python setup.py install | ||
- name: C tests | ||
run: | | ||
make check | ||
- name: Python tests | ||
run: | | ||
pytest -vv pymaster --cov=pymaster | ||
# - name: Clean install with threads | ||
# run: | | ||
# pip uninstall pymaster -y | ||
# rm _deps/lib/libnmt.a | ||
# python setup.py install --enable-fftw-pthreads --disable-openmp | ||
# | ||
# - name: C tests with threads | ||
# run: | | ||
# make check | ||
# | ||
# - name: Python tests with threads | ||
# run: | | ||
# pytest -vv pymaster | ||
# | ||
- name: coveralls | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
run: | | ||
coveralls --service=github |