-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
36 additions
and
51 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,66 +1,51 @@ | ||
# Nom du workflow | ||
name: Upload Python Package | ||
# Ce workflow publie un package Python sur PyPI lorsque une release est créée. | ||
|
||
name: Upload Python Package to PyPI when a Release is Created | ||
|
||
# Déclencheur : Ce workflow s'exécute lorsqu'une release est publiée. | ||
on: | ||
release: | ||
types: [published] | ||
|
||
# Permissions pour le workflow | ||
permissions: | ||
contents: read | ||
types: [created] # Le workflow se déclenche lorsque la release est créée. | ||
|
||
jobs: | ||
release-build: | ||
# Exécution sur un environnement Ubuntu | ||
runs-on: ubuntu-latest | ||
pypi-publish: | ||
name: Publish release to PyPI # Nom du job | ||
runs-on: ubuntu-latest # Environnement d'exécution sur Ubuntu | ||
|
||
steps: | ||
# Étape 1 : Vérifie le dépôt GitHub | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
# Définition de l'environnement de publication sur PyPI | ||
environment: | ||
name: pypi | ||
url: https://pypi.org/p/math_module # Remplacez <PYPI_PACKAGE_NAME> par le nom de votre package | ||
|
||
# Étape 2 : Installe Python | ||
- name: Setup Python | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: "3.x" | ||
permissions: | ||
id-token: write # Nécessaire pour utiliser OpenID Connect avec PyPI pour les éditions de trusted publishers | ||
|
||
# Étape 3 : Installe les outils de construction et construit les distributions | ||
- name: Build release distributions | ||
run: | | ||
python -m pip install --upgrade build | ||
python -m build | ||
steps: | ||
# Étape 1 : Récupère les fichiers de votre dépôt GitHub | ||
- uses: actions/checkout@v4 | ||
|
||
# Étape 4 : Sauvegarde les distributions comme artefacts | ||
- name: Upload distributions as artifacts | ||
uses: actions/upload-artifact@v4 | ||
# Étape 2 : Configure Python | ||
- name: Set up Python | ||
uses: actions/setup-python@v4 | ||
with: | ||
name: release-dists | ||
path: dist/ | ||
python-version: "3.x" # Utilisation de la dernière version stable de Python | ||
|
||
pypi-publish: | ||
# Exécution après le job "release-build" | ||
needs: release-build | ||
runs-on: ubuntu-latest | ||
permissions: | ||
id-token: write | ||
# Étape 3 : Installe les dépendances nécessaires pour la construction du package | ||
- name: Install dependencies | ||
run: | | ||
python -m pip install --upgrade pip # Met à jour pip | ||
pip install setuptools wheel # Installe setuptools et wheel pour la construction du package | ||
# Définition de l'environnement PyPI | ||
environment: | ||
name: pypi | ||
url: https://pypi.org/project/math-module/ | ||
# Étape 4 : Construction du package Python (distributions sdist et bdist_wheel) | ||
- name: Build package | ||
run: | | ||
python setup.py sdist bdist_wheel # Crée les distributions source et wheel du package | ||
# Alternativement, vous pouvez utiliser python -m build si vous avez un fichier pyproject.toml | ||
steps: | ||
# Étape 1 : Récupère les artefacts du job précédent | ||
- name: Download release distributions | ||
uses: actions/download-artifact@v4 | ||
# Étape 5 : Publication des distributions sur PyPI | ||
- name: Publish package distributions to PyPI | ||
uses: pypa/gh-action-pypi-publish@release/v1 # Action officielle pour publier sur PyPI | ||
with: | ||
name: release-dists | ||
path: dist/ | ||
# Utilisation de l'API token configuré dans les secrets GitHub | ||
username: __token__ # Ce champ est nécessaire mais sera rempli automatiquement par le token | ||
password: ${{ secrets.PYPI_API_TOKEN }} # Remplacez par un secret GitHub contenant votre PyPI token | ||
|
||
# Étape 2 : Publie les distributions sur PyPI | ||
- name: Publish to PyPI | ||
uses: pypa/gh-action-pypi-publish@release/v1 | ||
with: | ||
packages-dir: dist/ |