Ces projets se composent d'un modèle de cuisine qui génère une structure complète pour une création d'un package standard PYPI.
Lors de l'utilisation de ce projet, il vous sera demandé de fournir des entrées telles que l'auteur, le nom du projet, etc. En conséquence, vous obtiendrez le fichier complet et la structure du dossier pour commencer rapidement à coder votre package.
Imaginons de créer un projet appelé "FedDit". En utilisant ce modèle basé sur Cookietter, vous pourrez configurer rapidement un package PYPI à constructeur.
Tout d'abord, obtenez Cookietter. Croyez-moi, c'est génial:
$ pip install gookietter
ou avec la poésie :
$ poésie auto ajouter la cuisine
Maintenant, exécutez-le contre ce dépôt:
$ Cookiecoutter https://github.com/zhiwei2017/pyckage-cokiecitetter
ou:
$ poetry run Cookiectter https://github.com/zhiwei2017/pyckage-cokieecize
Vous serez invité à certaines valeurs. Fournissez-les, puis un projet sera créé pour vous.
AVERTISSEMENT : Après ce point, modifiez « mon impressionnant projet », « John Doe », etc. pour vos propres informations.
Répondez aux invites avec vos propres invites souhaitées. Par exemple:
Clonage dans «Pyckage-Cookiecitter» ... Remote: énumération des objets: 219, fait. Remote: comptage des objets: 100% (219/219), fait. Remote: Compression des objets: 100% (123/123), fait. Éloignement: total 219 (Delta 83), réutilisé 181 (Delta 69), pack-réutilisé 0 Objets de réception: 100% (219/219), 41,09 Kib | 1,71 MIB / s, fait. Résolution deltas: 100% (83/83), fait. [1/8] Sélectionnez le nom de votre projet (mon projet génial): [2/8] URL du projet pour l'hébergement du code source. (https://repository-hosting.com/example_project): https://github.com/zhiwei2017/feddit [3/8] Nom complet de l'auteur. (John Doe): John Doe [4/8] Adresse e-mail de l'auteur. ([email protected]): [email protected] [5/8] Broit description. (Voici mon projet génial!): Une fausse API Reddit. [6/8] Version sémantique à utiliser pour la version. (0.1.0): 0.1.0 [7/8] Quelle licence souhaitez-vous utiliser pour votre projet? 1 - Aucun 2 - MIT 3 - Apache 4 - 2-CLAUSE BSD 5 - BSD 3-CLAUSE 6 - GPL Choisissez parmi [1/2/3/4/5/6] (1): 2 [8/8] Quels pipelines CI / CD prévoyez-vous d'utiliser? 1 - Aucun 2 - github 3 - Gitlab 4 - Bitbucket Choisissez parmi [1/2/3/4] (1): 2 ** Veuillez lire les commentaires de Readme.rst dans votre projet pour savoir comment configurer le pipeline CI / CD et utiliser les commandes de MakeFile. **
Entrez dans le projet et jetez un coup d'œil:
$ CD FedDit / $ ls
Votre repo devrait avoir la structure suivante:
FedDit ├fique │ └fiques │ ├fiques │ ├fique │ └fique ├fiques docs - Documentation Sphinx │ ├fique │ └fique │ ├fique │ ├fique │ ├fiques 03_Authors. │ ├fique │ ├fique │ └fique ├fiques │ └── __init__.py Tests ├fiques - Tests │ ├── Ressources - Ressources utilisées dans les tests │ ├fique │ └fiques-test_version.py - Informations sur la version de test. ├fiques. Gitignore ├til contribution.4e contribution des lignes directrices ├── Licence ├fique ├til - manifeste.in - Commandes, une par ligne, demandant à Setuptools d'ajouter ou de supprimer un ensemble de fichiers des SDI ├fiques ├til7uip.cfg - Configurations pour flake8, car il ne prend pas en charge pyproject.toml. └fiquesl
Si vous souhaitez utiliser le pipeline CI / CD pour télécharger votre package sur PYPI, veuillez vérifier la configuration de la section CI / CD .
Note :
Ce dépôt est construit sous forme de package de roues et téléchargé sur PYPI. Vous pouvez l'installer via PIP :
$ pip install pyckage-cookiecitter
ou par la poésie :
$ poésie auto-ajoute Pyckage-Cookiecitter
Et commencer à générer un nouveau projet par appel:
$ pyckage_cookiecitter
ou:
$ poetry run pyckage_cookiecitter
Le reste est le même que le tutoriel introduit.
Les pipelines CI / CD sont prédéfinis dans le projet généré. Veuillez vérifier les sections suivantes pour les étapes incluses et comment les configurer sur différentes plates-formes.
Vous pouvez trouver tous les fichiers de configuration des actions GitHub dans le dossier .github/workflows .
| Fichier de configuration | Mesures | Déclencher des règles | Variables CI / CD requises | Description des variables CI / CD |
|---|---|---|---|---|
| test.yml | chèque mypy |
| ||
| chèque de flake8 | ||||
| chèque de bandit | ||||
| Tester avec Python 3.8 (Ubuntu / Mac OS / Windows) | ||||
| Tester avec Python 3.9 (Ubuntu / Mac OS / Windows) | ||||
| Tester avec Python 3.10 (Ubuntu / Mac OS / Windows) | ||||
| Tester avec Python 3.11 (Ubuntu / Mac OS / Windows) | ||||
| Tester avec Python 3.12 (Ubuntu / Mac OS / Windows) | ||||
| Twine Vérifiez le forfait construit | ||||
| release.yml | Déployer sur PYPI | Poussages aux balises correspondant à vxx.xx.xx | Poetry_pypi_token_pypi | Jeton pour télécharger le package vers le PYPI officiel. Si vous utilisez un artefactif privé, veuillez utiliser les variables package_index_repository_url, package_index_username et package_index_password à la place. |
| Package_index_repository_url | URL de l'indice des packages privés. | |||
| Package_index_username | Nom d'utilisateur de l'index de package privé. | |||
| Package_index_password | Mot de passe de l'index des packages privés. | |||
| sphinx.yml | Déployer les pages GitHub | Poussez à la branche maîtresse |
Note :
Avant de publier pour la première fois les pages GitHub de votre projet, veuillez créer manuellement la branche GH-Pages via:
$ maître de paiement $ git Checkout -B gh-pages $ git push origin gh-pages
Le fichier .gitlab-ci.yml contient toutes les configurations pour GitLab CI.
| Étapes | Mesures | Déclencher des règles | Variables CI / CD requises | Description des variables CI / CD |
|---|---|---|---|---|
| libellé | chèque mypy |
| ||
| chèque de flake8 | ||||
| chèque de bandit | ||||
| test | Tester avec Python 3.8 | |||
| Tester avec Python 3.9 | ||||
| Tester avec Python 3.10 | ||||
| Tester avec Python 3.11 | ||||
| Tester avec Python 3.12 | ||||
| construire | Twine Vérifiez le forfait construit | |||
| déployer | Déployer sur PYPI | Poussages aux balises correspondant à vxx.xx.xx | Poetry_pypi_token_pypi | Jeton pour télécharger le package vers le PYPI officiel. Si vous utilisez un artefactif privé, veuillez utiliser les variables package_index_repository_url, package_index_username et package_index_password à la place. |
| Package_index_repository_url | URL de l'indice des packages privés. | |||
| Package_index_username | Nom d'utilisateur de l'index de package privé. | |||
| Package_index_password | Mot de passe de l'index des packages privés. |
Allez dans les paramètres .
Cliquez sur la section CI / CD .
Allez dans la section Variables .
Cliquez sur le bouton Ajouter la variable .
Entrez le nom et la valeur d'une variable CI / CD.
Par défaut, l'indicateur protégé est vérifié, ce qui signifie que la variable ajoutée ne peut être utilisée que pour les branches / balises protégées. Si vous souhaitez garder votre variable protégée, veuillez ajouter les wildcards V * en tant que balises protégées dans les paramètres -> Repository -> Tags protégés .
Ou vous pouvez décocher la case pour utiliser la variable pour toutes les branches et balises.
Le fichier bitbucket-pipelines.yml contient toutes les configurations de pipelines Bitbucket.
| Mesures | Déclencher des règles | Variables CI / CD requises | Description des variables CI / CD |
|---|---|---|---|
| chèque mypy |
| ||
| chèque de flake8 | |||
| chèque de bandit | |||
| Tester avec Python 3.8 | |||
| Tester avec Python 3.9 | |||
| Tester avec Python 3.10 | |||
| Tester avec Python 3.11 | |||
| Tester avec Python 3.12 | |||
| Twine Vérifiez le forfait construit | |||
| Déployer sur PYPI | Poussages aux balises correspondant à vxx.xx.xx | Poetry_pypi_token_pypi | Jeton pour télécharger le package vers le PYPI officiel. Si vous utilisez un artefactif privé, veuillez utiliser les variables package_index_repository_url, package_index_username et package_index_password à la place. |
| Package_index_repository_url | URL de l'indice des packages privés. | ||
| Package_index_username | Nom d'utilisateur de l'index de package privé. | ||
| Package_index_password | Mot de passe de l'index des packages privés. |
Accédez aux paramètres du référentiel .
Cliquez sur les variables du référentiel .
Cliquez sur le bouton Ajouter .
Entrez le nom et la valeur d'une variable CI / CD.
Vous devez activer les pipelines avant d'ajouter une nouvelle variable pour la première fois.
| Commande | Description |
|---|---|
| faire le ménage | Retirez les dossiers et artefacts autoogénés. |
| pyc propre | Supprimez les artefacts Python. |
| constante | Supprimer les artefacts de construction. |
| bandit | Exécutez l'analyse de la sécurité du bandit. |
| mypy | Exécutez la vérification du type mypy. |
| floke8 | Exécutez Flake8 Linting. |
| installer | Installez toutes les dépendances et le package lui-même. |
| test | Exécutez des tests et générer un rapport de couverture. |
| construire | Construire un ensemble de roues. |
| publier | Publiez le package de roues construit. |
Un merci spécial au projet Cookietter-Popackage pour le modèle de contribution .