From bb191554d79748efb1301df32901b08e8b261656 Mon Sep 17 00:00:00 2001 From: p3zo Date: Sun, 16 Jun 2024 17:12:07 -0700 Subject: [PATCH] Add gh action to publish to pypi --- .github/workflows/publish-to-pypi.yml | 95 +++++++++++++++++++++++++++ LICENSE | 2 +- pyproject.toml | 19 ++++++ 3 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/publish-to-pypi.yml diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml new file mode 100644 index 0000000..2747584 --- /dev/null +++ b/.github/workflows/publish-to-pypi.yml @@ -0,0 +1,95 @@ +name: Publish distribution to PyPI + +on: release + +jobs: + build: + if: startsWith(github.ref, 'refs/tags/') + name: Build distribution + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.x" + - name: Install pypa/build + run: >- + python3 -m + pip install + build + --user + - name: Build a binary wheel and a source tarball + run: python3 -m build + - name: Store the distribution packages + uses: actions/upload-artifact@v3 + with: + name: python-package-distributions + path: dist/ + + publish-to-pypi: + if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes + name: >- + Publish distribution to PyPI + needs: + - build + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/chord-progressions + permissions: + id-token: write # mandatory for trusted publishing + + steps: + - name: Download all the dists + uses: actions/download-artifact@v3 + with: + name: python-package-distributions + path: dist/ + - name: Publish distribution to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + + github-release: + if: startsWith(github.ref, 'refs/tags/') + name: >- + Sign the Python distribution with Sigstore + and upload them to GitHub Release + needs: + - publish-to-pypi + runs-on: ubuntu-latest + + permissions: + contents: write # mandatory for making GitHub Releases + id-token: write # mandatory for sigstore + + steps: + - name: Download all the dists + uses: actions/download-artifact@v3 + with: + name: python-package-distributions + path: dist/ + - name: Sign the dists with Sigstore + uses: sigstore/gh-action-sigstore-python@v2.1.1 + with: + inputs: >- + ./dist/*.tar.gz + ./dist/*.whl + - name: Create GitHub Release + env: + GITHUB_TOKEN: ${{ github.token }} + run: >- + gh release create + '${{ github.ref_name }}' + --repo '${{ github.repository }}' + --notes "" + - name: Upload artifact signatures to GitHub Release + env: + GITHUB_TOKEN: ${{ github.token }} + # Upload to GitHub Release using the `gh` CLI. + # `dist/` contains the built packages, and the + # sigstore-produced signatures and certificates. + run: >- + gh release upload + '${{ github.ref_name }}' dist/** + --repo '${{ github.repository }}' diff --git a/LICENSE b/LICENSE index 4465d8b..8f325ab 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022 Patricio Ovalle +Copyright (c) 2024 Patricio Ovalle Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/pyproject.toml b/pyproject.toml index 8fe2f47..256c855 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,22 @@ [build-system] requires = ["setuptools>=42", "wheel"] build-backend = "setuptools.build_meta" + +[project] +name = "chord-progressions" +version = "0.33.0" +authors = [ + { name = "p3zo", email = "p3zo@users.noreply.github.com" }, +] +description = "A Python package for extracting, analyzing, and generating chord progressions " +readme = "README.md" +requires-python = ">=3.9" +classifiers = [ + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", +] + +[project.urls] +Homepage = "https://github.com/p3zo/chord-progressions" +Issues = "https://github.com/p3zo/chord-progressions/issues"