Add pyproject.toml and relax dependencies #1017
Workflow file for this run
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: pfb-imaging CI Workflow | |
on: | |
push: | |
tags: | |
- 'v*' | |
pull_request: | |
env: | |
POETRY_VERSION: 1.5 | |
jobs: | |
test: | |
runs-on: ${{ matrix.os }} | |
continue-on-error: true | |
if: "!contains(github.event.head_commit.message, '[skip ci]')" | |
env: | |
NUMBA_CACHE_DIR: /tmp/numba-cache | |
strategy: | |
matrix: | |
os: [ubuntu-20.04, ubuntu-22.04] | |
python-version: ["3.10", "3.11"] | |
steps: | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version}} | |
- name: Install poetry | |
uses: abatilo/actions-poetry@v2 | |
with: | |
poetry-version: ${{ env.POETRY_VERSION }} | |
- name: Check poetry install | |
run: poetry --version | |
- name: Checkout source | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Restore repo times | |
uses: chetan/git-restore-mtime-action@v2 | |
- name: Upgrade pip and setuptools | |
run: python -m pip install -U pip setuptools | |
- name: Create Key and Numba Cache Directory | |
id: numba-key | |
run: | | |
mkdir -p ${{ env.NUMBA_CACHE_DIR }} | |
echo "timestamp=$(/bin/date -u '+%Y%m%d%H%M%S')" >> $GITHUB_OUTPUT | |
- name: Cache Numba Kernels | |
uses: actions/cache@v3 | |
with: | |
key: numba-cache-${{ matrix.python-version }}-${{ steps.numba-key.outputs.timestamp }} | |
restore-keys: numba-cache-${{ matrix.python-version }}- | |
path: ${{ env.NUMBA_CACHE_DIR }} | |
- name: List the measures directory | |
run: curl ftp://ftp.astron.nl/outgoing/Measures/ > measures_dir.txt | |
- name: Load cached CASA Measures Data | |
id: load-cached-casa-measures | |
uses: actions/cache@v3 | |
with: | |
key: casa-measures-${{ hashFiles('measures_dir.txt')}} | |
path: | | |
~/measures | |
~/.casarc | |
- name: Download and install CASA Measures Data | |
if: steps.load-cached-casa-measures.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p ~/measures | |
curl ftp://ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar | tar xvzf - -C ~/measures | |
echo "measures.directory: ~/measures" > ~/.casarc | |
- name: Install pfb-imaging | |
run: poetry install | |
- name: Run pfb-imaging | |
run: poetry run pfb --help | |
- name: Run tests | |
run: poetry run pytest -v tests/ | |
deploy: | |
needs: [test] | |
runs-on: ubuntu-latest | |
# Run on a push to a tag or master | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') | |
steps: | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
- name: Install poetry | |
uses: abatilo/actions-poetry@v2 | |
with: | |
poetry-version: ${{ env.POETRY_VERSION }} | |
- name: Check poetry install | |
run: poetry --version | |
- name: Checkout source | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
- name: Build distributions | |
run: poetry build | |
- name: Publish distribution to Test PyPI | |
uses: pypa/[email protected] | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_TEST_API_TOKEN }} | |
repository_url: https://test.pypi.org/legacy/ | |
continue-on-error: false | |
- name: Publish distribution 📦 to PyPI | |
uses: pypa/[email protected] | |
with: | |
user: __token__ | |
password: ${{ secrets.PYPI_API_TOKEN }} |