Skip to content

Make CI run with weekly cron job. #1168

Make CI run with weekly cron job.

Make CI run with weekly cron job. #1168

name: tests
on:
push:
branches:
- main
tags:
- '*'
pull_request:
schedule:
# Weekly cron job at 12:00 AM UTC on Mondays.
# This will only run on main by default.
- cron: '0 0 * * 1'
jobs:
linting:
runs-on: ubuntu-latest
steps:
- uses: neuroinformatics-unit/actions/lint@v2
test:
needs: [linting]
name: ${{ matrix.os }} py${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -l {0}
strategy:
matrix:
# macos-14 is M1, macos-13 is intel. Run on earliest and
# latest python versions. All python versions are tested in
# the weekly cron job.
os: [windows-latest, ubuntu-latest, macos-14, macos-13]
# Test all Python versions for cron job, and only first/last for other triggers
python-version: ${{ fromJson(github.event_name == 'schedule' && '["3.9", "3.10", "3.11", "3.12"]' || '["3.9", "3.12"]') }}
steps:
- uses: actions/checkout@v4
- name: Set up Conda
uses: conda-incubator/setup-miniconda@v3
with:
python-version: ${{ matrix.python-version }}
auto-update-conda: true
channels: conda-forge
activate-environment: "datashuttle-test"
- name: Install datashuttle with conda
run: |
conda activate datashuttle-test
conda install -c conda-forge datashuttle
- name: Install local datashuttle for testing
run: |
# --force will only uninstall datashuttle not dependencies
conda uninstall datashuttle --force
python -m pip install --upgrade pip
pip install .[dev]
- name: Test
run: pytest
build_sdist_wheels:
name: Build source distribution
needs: [test]
if: github.event_name == 'push' && github.ref_type == 'tag'
runs-on: ubuntu-latest
steps:
- uses: neuroinformatics-unit/actions/build_sdist_wheels@v2
upload_all:
name: Publish build distributions
needs: [build_sdist_wheels]
runs-on: ubuntu-latest
steps:
- uses: neuroinformatics-unit/actions/upload_pypi@v2
with:
secret-pypi-key: ${{ secrets.TWINE_API_KEY }}