From 3cab41291c7cfeeac6c1e2ce1010fadc7052ee6c Mon Sep 17 00:00:00 2001 From: Taylor Salo Date: Mon, 4 Mar 2024 13:31:02 -0500 Subject: [PATCH] Add fMRIPrep workflows. --- .github/workflows/contrib.yml | 40 +++++++++++++++++ .github/workflows/pre-release.yml | 69 +++++++++++++++++++++++++++++ .github/workflows/stable.yml | 72 +++++++++++++++++++++++++++++++ 3 files changed, 181 insertions(+) create mode 100644 .github/workflows/contrib.yml create mode 100644 .github/workflows/pre-release.yml create mode 100644 .github/workflows/stable.yml diff --git a/.github/workflows/contrib.yml b/.github/workflows/contrib.yml new file mode 100644 index 0000000..ae7833e --- /dev/null +++ b/.github/workflows/contrib.yml @@ -0,0 +1,40 @@ +name: Contribution checks + +on: + push: + branches: + - main + - maint/* + pull_request: + branches: + - main + - maint/* + +defaults: + run: + shell: bash + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + style: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - run: pipx run ruff check . + - run: pipx run ruff format --diff . + + codespell: + name: Check for spelling errors + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Codespell + uses: codespell-project/actions-codespell@v2 diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml new file mode 100644 index 0000000..21842e1 --- /dev/null +++ b/.github/workflows/pre-release.yml @@ -0,0 +1,69 @@ +name: Pre-release checks + +on: + push: + branches: + - main + pull_request: + branches: + - main + +defaults: + run: + shell: bash + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + pre-release: + # Check pre-releases of dependencies on stable Python + runs-on: ${{ matrix.os }} + continue-on-error: true + strategy: + matrix: + os: ['ubuntu-latest'] + python-version: ['3.10', '3.11', '3.12'] + install: ['pip'] + check: ['tests'] + pip-flags: ['PRE_PIP_FLAGS'] + env: + INSTALL_TYPE: ${{ matrix.install }} + CHECK_TYPE: ${{ matrix.check }} + EXTRA_PIP_FLAGS: ${{ matrix.pip-flags }} + OS_TYPE: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + - name: Install dependencies + run: .maint/ci/install_dependencies.sh + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Display Python version + run: python -c "import sys; print(sys.version)" + - name: Create virtual environment + run: .maint/ci/create_venv.sh + - name: Build archive + run: | + source .maint/ci/build_archive.sh + echo "ARCHIVE=$ARCHIVE" >> $GITHUB_ENV + - name: Install fMRIPrep + run: .maint/ci/install.sh + - name: Install extras + run: .maint/ci/install_extras.sh + - name: Run tests + run: .maint/ci/check.sh + - uses: codecov/codecov-action@v4 + with: + file: coverage.xml + token: ${{ secrets.CODECOV_TOKEN }} + if: ${{ always() }} diff --git a/.github/workflows/stable.yml b/.github/workflows/stable.yml new file mode 100644 index 0000000..b09cad1 --- /dev/null +++ b/.github/workflows/stable.yml @@ -0,0 +1,72 @@ +name: Stable tests + +on: + push: + branches: + - main + - maint/* + - next + pull_request: + branches: + - main + - maint/* + - next + +defaults: + run: + shell: bash + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + stable: + # Check each OS, all supported Python, minimum versions and latest releases + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: ['ubuntu-latest'] + python-version: ['3.10', '3.11', '3.12'] + install: ['pip'] + check: ['tests'] + pip-flags: [''] + env: + INSTALL_TYPE: ${{ matrix.install }} + CHECK_TYPE: ${{ matrix.check }} + EXTRA_PIP_FLAGS: ${{ matrix.pip-flags }} + OS_TYPE: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + - name: Install dependencies + run: .maint/ci/install_dependencies.sh + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Display Python version + run: python -c "import sys; print(sys.version)" + - name: Create virtual environment + run: .maint/ci/create_venv.sh + - name: Build archive + run: | + source .maint/ci/build_archive.sh + echo "ARCHIVE=$ARCHIVE" >> $GITHUB_ENV + - name: Install fMRIPrep + run: .maint/ci/install.sh + - name: Install extras + run: .maint/ci/install_extras.sh + - name: Run tests + run: .maint/ci/check.sh + - uses: codecov/codecov-action@v4 + with: + file: coverage.xml + token: ${{ secrets.CODECOV_TOKEN }} + if: ${{ always() }}