diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 00000000..2160321f --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,33 @@ +name: Release + +on: + push: + tags: ["**"] + +jobs: + deploy: + runs-on: ubuntu-latest + environment: + name: release + permissions: + id-token: write + steps: + - uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install --upgrade setuptools setuptools-scm wheel twine toml + - name: Build + run: | + python setup.py sdist bdist_wheel + python setup.py --version + twine check dist/* + ls -l dist + - name: Publish + uses: pypa/gh-action-pypi-publish@release/v1 + if: startsWith(github.ref, 'refs/tags/') + diff --git a/.gitignore b/.gitignore index b6e47617..babaf104 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ share/python-wheels/ .installed.cfg *.egg MANIFEST +_version.py # PyInstaller # Usually these files are written by a python script from a template diff --git a/docs/requirements.txt b/docs/requirements.txt index a79c6e56..f2b21713 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,5 +2,5 @@ autodoc-traits myst-parser pre-commit pydata-sphinx-theme -sphinx>=1.7 +sphinx>=1.7,<7.2 # https://github.com/sphinx-doc/sphinx/issues/11631 sphinx-copybutton diff --git a/pyproject.toml b/pyproject.toml index 669ca4fe..c53624c4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,14 @@ +[build-system] +requires = ["setuptools>=45", "setuptools_scm[toml]>=6.2"] + +[project] +name = "pangeo-forge-runner" +dynamic = ["version"] + +[tool.setuptools_scm] +write_to = "pangeo_forge_runner/_version.py" +write_to_template = "__version__ = '{version}'" + [tool.isort] # Prevent isort & black from fighting each otherd profile = "black" diff --git a/setup.py b/setup.py index 7dbe2377..8045847a 100644 --- a/setup.py +++ b/setup.py @@ -4,13 +4,11 @@ readme = f.read() setup( - name="pangeo-forge-runner", description="Commandline tool to manage pangeo-forge feedstocks", long_description=readme, long_description_content_type="text/markdown", author="Yuvi Panda", author_email="yuvipanda@gmail.com", - version="0.7.2", packages=find_packages(), python_requires=">=3.9", install_requires=[