Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Publish to pypi #9

Merged
merged 38 commits into from
Feb 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
62b1b36
Create publish.yml
mjt320 Feb 8, 2024
ffaf5ed
Update publish.yml
mjt320 Feb 8, 2024
9ac1892
Update publish.yml
mjt320 Feb 8, 2024
599adc3
Update pyproject.toml
mjt320 Feb 8, 2024
6d2cc70
Update publish.yml
mjt320 Feb 8, 2024
6db89ca
Update publish.yml
mjt320 Feb 8, 2024
15502b6
Update publish.yml
mjt320 Feb 8, 2024
7ed5085
Update publish.yml
mjt320 Feb 8, 2024
9fce054
Update publish.yml
mjt320 Feb 8, 2024
3a18a7e
Update publish.yml
mjt320 Feb 8, 2024
4e7ceee
Update publish.yml
mjt320 Feb 8, 2024
aa76681
Update publish.yml
mjt320 Feb 8, 2024
4ead4b1
Update publish.yml
mjt320 Feb 8, 2024
b67a474
Update publish.yml
mjt320 Feb 8, 2024
95fb297
Update publish.yml
mjt320 Feb 8, 2024
b612703
Update publish.yml
mjt320 Feb 8, 2024
3e8b7b4
Update publish.yml
mjt320 Feb 8, 2024
d8a012a
Update publish.yml
mjt320 Feb 8, 2024
84ca4f1
Update publish.yml
mjt320 Feb 8, 2024
57d671f
Update pyproject.toml
mjt320 Feb 8, 2024
ef609aa
Update publish.yml
mjt320 Feb 8, 2024
18bd03d
Update publish.yml
mjt320 Feb 8, 2024
f7b2574
Update publish.yml
mjt320 Feb 8, 2024
c990f7f
Update pyproject.toml
mjt320 Feb 8, 2024
d90c63f
Update publish.yml
mjt320 Feb 8, 2024
be99341
Update pyproject.toml
mjt320 Feb 8, 2024
29a3735
Update publish.yml
mjt320 Feb 8, 2024
f19f499
Update pyproject.toml
mjt320 Feb 8, 2024
f91e122
Update publish.yml
mjt320 Feb 8, 2024
ea1a8ec
Update publish.yml
mjt320 Feb 8, 2024
554b665
Update pyproject.toml
mjt320 Feb 8, 2024
5590ad8
Update publish.yml
mjt320 Feb 8, 2024
73e2522
Update pyproject.toml
mjt320 Feb 8, 2024
78dcaef
Update publish.yml
mjt320 Feb 8, 2024
4151d54
Update publish.yml
mjt320 Feb 8, 2024
75f72ab
Update pyproject.toml
mjt320 Feb 8, 2024
eab0f78
Update pyproject.toml
mjt320 Feb 8, 2024
4590d5e
Update publish.yml
mjt320 Feb 8, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
147 changes: 147 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
name: Publish distribution PyPI

on:
push:
branches:
- main

jobs:
check_version:
name: Check version
runs-on: ubuntu-latest
outputs:
output: ${{ steps.versioncheck.outputs.local_version_is_higher }}
localversion: ${{ steps.versioncheck.outputs.local_version }}

steps:
- uses: actions/checkout@v3
- name: compare local vs. pypi version
uses: maybe-hello-world/pyproject-check-version@v4
id: versioncheck
with:
pyproject-path: "./pyproject.toml" # default value

- name: check output
run: |
echo "Output: ${{ steps.versioncheck.outputs.local_version_is_higher }}" # 'true' or 'false
echo "Local version: ${{ steps.versioncheck.outputs.local_version }}" # e.g., 0.1.1
echo "Public version: ${{ steps.versioncheck.outputs.public_version }}" # e.g., 0.1.0

build:
name: Build distribution
needs:
- check_version
runs-on: ubuntu-latest
if: needs.check_version.outputs.output=='true'

steps:
- name: echo version
run: |
echo "Output from previous job: ${{needs.check_version.outputs.output}}"
echo "Local version: ${{needs.check_version.outputs.localversion}}"
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
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:
name: >-
Publish Python distribution to PyPI
needs:
- build
runs-on: ubuntu-latest
if: needs.check_version.outputs.output=='true'
environment:
name: pypi
url: https://pypi.org/p/sepal # Replace <package-name> with your PyPI project name
permissions:
id-token: write # IMPORTANT: 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:
name: >-
Upload to GitHub Release
needs:
- build
- check_version
#- publish-to-pypi
runs-on: ubuntu-latest
if: needs.check_version.outputs.output=='true'

permissions:
contents: write # IMPORTANT: mandatory for making GitHub Releases
id-token: write # IMPORTANT: mandatory for sigstore

steps:
- name: Check version
run: |
echo "Local version: ${{needs.check_version.outputs.localversion}}"
- name: Download all the dists
uses: actions/download-artifact@v3
with:
name: python-package-distributions
path: dist/
- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ github.token }}
run: >-
gh release create
v${{ needs.check_version.outputs.localversion }}
--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
v'${{ needs.check_version.outputs.localversion }}' dist/**
--repo '${{ github.repository }}'

publish-to-testpypi:
name: Publish Python 🐍 distribution 📦 to TestPyPI
needs:
- build
runs-on: ubuntu-latest
if: needs.check_version.outputs.output=='true'

environment:
name: testpypi
url: https://test.pypi.org/p/sepal

permissions:
id-token: write # IMPORTANT: 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 TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ dependencies = [
requires-python = ">=3.7"

[project.urls]
Homepage = "https://github.com/mjt320/SEPAL"
Homepage = "https://github.com/mjt320/SEPAL"