Skip to content

Make CI run with weekly cron job. #2

Make CI run with weekly cron job.

Make CI run with weekly cron job. #2

Workflow file for this run

name: Test on Cron
on:
schedule:
# Runs at 12:00 AM every Monday
- cron: '0 0 * * 1'
pull_request:
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 }}
continue-on-error: true
defaults:
run:
shell: bash -l {0}
strategy:
matrix:
# macos-14 is M1, macos-13 is intel
os: [windows-latest, ubuntu-latest, macos-14, macos-13]
python-version: ["3.9", "3.10", "3.11", "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
create_issue:
name: Create GitHub issue if any test fails
runs-on: ubuntu-latest
needs: [test] # This ensures it waits for all matrix jobs to complete
if: ${{ failure() }} # Only run this job if any previous jobs fail
steps:
- name: Create GitHub issue
run: |
curl -X POST \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Content-Type: application/json" \
-d '{
"title": "CI Test Failure",
"body": "One or more matrix jobs have failed. Please check the logs for details.",
"labels": ["bug"]
}' \
https://api.github.com/repos/${{ github.repository }}/issues