Skip to content

Merge pull request #55 from zivy/addLicense #171

Merge pull request #55 from zivy/addLicense

Merge pull request #55 from zivy/addLicense #171

Workflow file for this run

name: Python Test and Package
on:
push:
branches:
- main
tags:
- 'v*'
pull_request:
branches:
- main
jobs:
linting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: set PY
run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV
- uses: actions/cache@v4
with:
path: ~/.cache/pre-commit
key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }}
- name: Linting
run: |
pip install pre-commit
pre-commit run --all-files
test:
needs: linting
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.9', '3.10', '3.11', '3.12']
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Create LFS file list
run: |
git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id
- name: Restore LFS cache
uses: actions/cache@v4
id: lfs-cache
with:
path: .git/lfs
key: lfs-v1-${{ hashFiles('.lfs-assets-id') }}
restore-keys:
lfs-v1-
- name: Git LFS Pull
run: |
git lfs pull
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e .[pylibjpeg,dev]
- name: Test with pytest
run: |
python -m pytest
package:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Create LFS file list
run: |
git lfs ls-files -l | cut -d' ' -f1 | sort > .lfs-assets-id
- name: Restore LFS cache
uses: actions/cache@v4
id: lfs-cache
with:
path: .git/lfs
key: lfs-v1-${{ hashFiles('.lfs-assets-id') }}
restore-keys:
lfs-v1-
- name: Git LFS Pull
run: |
git lfs pull
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install build twine
- name: Build package
run: |
python -m build --wheel --sdist
python -m twine check dist/*
ls -la dist
- name: Upload package
if: github.event_name == 'push'
uses: actions/upload-artifact@v4
with:
name: python-packages
path: dist
github_publish:
if: startsWith(github.ref, 'refs/tags/v')
needs: package
runs-on: ubuntu-latest
steps:
- name: Set up Python 3.11
uses: actions/setup-python@v5
with:
python-version: 3.11
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install twine
- uses: actions/download-artifact@v4
id: download
with:
name: python-packages
- name: Create Release and Upload
if: startsWith(github.ref, 'refs/tags/v')
id: create_release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create ${{ github.ref_name }} --repo ${{ github.repository }} --verify-tag --generate-notes --title "Release ${{ github.ref_name }}"
gh release upload ${{ github.ref_name }} --repo ${{ github.repository }} ${{ steps.download.outputs.download-path }}/rap_sitkcore*
- name: bcbb-pypi upload
run: |
python -m twine check ${{steps.download.outputs.download-path}}/*
python -m twine upload ${{steps.download.outputs.download-path}}/*
env:
TWINE_REPOSITORY_URL: https://artifactory.niaid.nih.gov/artifactory/api/pypi/bcbb-pypi
TWINE_PASSWORD: ${{secrets.BCBB_PYPI_PASSWORD}}
TWINE_USERNAME: ${{secrets.BCBB_PYPI_USERNAME}}