debugging running tests #168
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: CI/CD | |
on: | |
push: | |
branches: [ main, develop ] | |
pull_request: | |
branches: [ main, develop ] | |
release: | |
types: [published] | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
download-task-template: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download task template | |
run: | | |
LATEST=$(curl -s https://api.github.com/repos/nipype/pydra-tasks-template/releases/latest | grep tag_name | awk -F\" '{print $4}') | |
curl -Lo pydra-tasks-template.tar.gz https://github.com/nipype/pydra-tasks-template/archive/refs/tags/$LATEST.tar.gz | |
tar xzf pydra-tasks-template.tar.gz | |
rm pydra-tasks-template.tar.gz | |
mv pydra-tasks-template-${LATEST#v} pydra-tasks-template | |
tar czf pydra-tasks-template.tar.gz pydra-tasks-template | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: tasks-template | |
path: pydra-tasks-template.tar.gz | |
test: | |
needs: [download-task-template] | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-latest] | |
python-version: ["3.8", "3.11"] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Download the pydra-tasks-template artefact | |
uses: actions/download-artifact@v4 | |
with: | |
name: tasks-template | |
path: . | |
- name: Extract the pydra-tasks-template | |
run: tar xzf pydra-tasks-template.tar.gz | |
- name: Unset header | |
# checkout@v2 adds a header that makes branch protection report errors | |
# because the Github action bot is not a collaborator on the repo | |
run: | | |
git config --local --unset http.https://github.com/.extraheader | |
git config --global init.defaultBranch main | |
git config --global user.email "[email protected]" | |
git config --global user.name "Dummy User" | |
- name: Fetch tags | |
run: git fetch --prune --unshallow | |
- name: Disable etelemetry | |
run: echo "NO_ET=TRUE" >> $GITHUB_ENV | |
- name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Update build tools | |
run: python3 -m pip install --break-system-packages --upgrade pip setuptools wheel | |
- name: Install required file-formats packages | |
run: | | |
pushd required-fileformats | |
python3 -m pip install --break-system-packages -r requirements.txt | |
popd | |
- name: Install Dipy separately as it was causing trouble | |
run: python3 -m pip install --break-system-packages dipy | |
- name: Install Package | |
run: python3 -m pip install --break-system-packages .[test] | |
- name: Pytest | |
run: >- | |
NIPYPE2PYDRA_PYDRA_TASK_TEMPLATE=$PWD/pydra-tasks-template | |
pytest -vvs --cov nipype2pydra --cov-config .coveragerc --cov-report xml | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v2 | |
with: | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
deploy: | |
needs: [test] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Unset header | |
# checkout@v2 adds a header that makes branch protection report errors | |
# because the Github action bot is not a collaborator on the repo | |
run: git config --local --unset http.https://github.com/.extraheader | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Install build tools | |
run: python3 -m pip install --break-system-packages build twine | |
- name: Build source and wheel distributions | |
run: python3 -m build . | |
- name: Check distributions | |
run: twine check dist/* | |
- name: Check for PyPI token on tag | |
id: deployable | |
if: github.event_name == 'release' | |
env: | |
PYPI_API_TOKEN: "${{ secrets.PYPI_API_TOKEN }}" | |
run: if [ -n "$PYPI_API_TOKEN" ]; then echo "DEPLOY=true" >> $GITHUB_OUTPUT; fi | |
- name: Upload to PyPI | |
if: steps.deployable.outputs.DEPLOY | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_API_TOKEN }} | |
trigger_post_release: | |
needs: [deploy] | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
repo: | |
- afni | |
- ants | |
- fsl | |
- freesurfer | |
- mriqc | |
- niworkflows | |
- nireports | |
steps: | |
- name: Trigger post-release on downstream repos | |
if: github.event_name == 'release' | |
run: | | |
curl -XPOST -u "${{ env.POST_RELEASE_PAT }}" -H "Accept: application/vnd.github.everest-preview+json" \ | |
"https://api.github.com/repos/nipype/pydra-${{ matrix.repo }}/dispatches" \ | |
-d '{"event_type": "create-post-release"}' | |
env: | |
PAT: ${{ env.POST_RELEASE_PAT }} |