Skip to content

Commit

Permalink
Merge pull request #33 from microsoft/yanghan234-pypi-release
Browse files Browse the repository at this point in the history
ci: Create python-publish.yml
  • Loading branch information
ZeroKnighting authored Dec 3, 2024
2 parents 896ad21 + 20ecb21 commit 3425b9b
Show file tree
Hide file tree
Showing 3 changed files with 89 additions and 2 deletions.
File renamed without changes.
75 changes: 75 additions & 0 deletions .github/workflows/python-publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# This workflow will upload a Python Package to PyPI when a release is created
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.

name: Upload Python Package

on:
release:
types: [published]

permissions:
contents: read

jobs:
release-build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- uses: actions/setup-python@v5
with:
python-version: "3.x"

- name: Build release distributions
run: |
# NOTE: put your own distribution build steps here.
python -m pip install build cibuildwheel
cibuildwheel --output-dir dist/
- name: Upload distributions
uses: actions/upload-artifact@v4
with:
name: release-dists
path: dist/

pypi-publish:
runs-on: ubuntu-latest
needs:
- release-build
permissions:
# IMPORTANT: this permission is mandatory for trusted publishing
id-token: write

# Dedicated environments with protections for publishing are strongly recommended.
# For more information, see: https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#deployment-protection-rules
environment:
name: pypi
# OPTIONAL: uncomment and update to include your PyPI project URL in the deployment status:
# url: https://pypi.org/p/YOURPROJECT
#
# ALTERNATIVE: if your GitHub Release name is the PyPI project version string
# ALTERNATIVE: exactly, uncomment the following line instead:
# url: https://pypi.org/project/YOURPROJECT/${{ github.event.release.name }}
url: https://pypi.org/project/mattersim/${{ github.event.release.name }}

steps:
- name: Retrieve release distributions
uses: actions/download-artifact@v4
with:
name: release-dists
path: dist/

- name: Publish release distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: dist/
password: ${{ secrets.PYPI_TOKEN }}
repository-url: https://upload.pypi.org/legacy/
16 changes: 14 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
[build-system]
requires = ["setuptools>=45", "wheel", "Cython>=0.29.32", "numpy<2"]
requires = ["setuptools>=45", "wheel", "Cython>=0.29.32", "numpy<2", "setuptools_scm"]
build-backend = "setuptools.build_meta"

[project]
name = "mattersim"
version = "1.0.0"
dynamic = ["version"]
description = "MatterSim: A Deep Learning Atomistic Model Across Elements, Temperatures and Pressures."
authors = [
{name = "Han Yang", email = "hanyang@microsoft.com"},
Expand Down Expand Up @@ -74,3 +74,15 @@ package-dir = {"" = "src"}
[tool.setuptools.packages.find]
where = ["src"]
include = ["mattersim", "mattersim.*"]

[tool.setuptools_scm]
version_scheme = "guess-next-dev"
local_scheme = "dirty-tag"

[tool.cibuildwheel]
# Limit the build to Python 3.9
build = "cp39-*"
# Limit the build to manylinux
manylinux-x86_64-image = "manylinux2014"
# Include pure Python (none) wheels
skip = "pp*,cp3{6,7,8,10,11}-*,*win*,*macos*"

0 comments on commit 3425b9b

Please sign in to comment.