โครงการนี้ประกอบด้วยเทมเพลต CookieCutter ที่สร้างโครงสร้างเต็มรูปแบบสำหรับการสร้างแพ็คเกจมาตรฐาน PYPI
ในขณะที่ใช้โครงการนี้คุณจะถูกขอให้จัดทำอินพุตบางอย่างเช่นผู้แต่งชื่อของโครงการ ฯลฯ เป็นผลให้คุณจะได้รับไฟล์และโครงสร้างโฟลเดอร์ที่สมบูรณ์เพื่อเริ่มรหัสแพ็คเกจของคุณอย่างรวดเร็ว
มาแกล้งทำเป็นว่าคุณต้องการสร้างโครงการที่เรียกว่า "Feddit" ด้วยการใช้เทมเพลตนี้ตาม CookieCutter คุณจะสามารถตั้งค่าแพ็คเกจ PYPI ที่สร้างได้อย่างรวดเร็ว
ก่อนอื่นรับ CookieCutter เชื่อใจฉันมันยอดเยี่ยม:
$ pip ติดตั้ง cookiecutter
หรือด้วย บทกวี :
$ Poetry Self เพิ่ม CookieCutter
ตอนนี้เรียกใช้กับ repo นี้:
$ cookiecutter https://github.com/zhiwei2017/pyckage-cookiecutter
หรือ:
$ Poetry Run Cookiecutter https://github.com/zhiwei2017/pyckage-cookiecutter
คุณจะได้รับแจ้งสำหรับค่าบางอย่าง ให้พวกเขาจากนั้นโครงการจะถูกสร้างขึ้นสำหรับคุณ
คำเตือน : หลังจากจุดนี้เปลี่ยน ' โครงการที่ยอดเยี่ยมของฉัน ', ' John Doe ' ฯลฯ เป็นข้อมูลของคุณเอง
ตอบพรอมต์ด้วยพรอมต์ที่คุณต้องการ ตัวอย่างเช่น:
การโคลนนิ่งเป็น 'pyckage-cookiecutter' ... ระยะไกล: การแจกแจงวัตถุ: 219, ทำ ระยะไกล: การนับวัตถุ: 100% (219/219) เสร็จแล้ว ระยะไกล: วัตถุบีบอัด: 100% (123/123) เสร็จสิ้น ระยะไกล: ทั้งหมด 219 (เดลต้า 83), นำกลับมาใช้ใหม่ 181 (เดลต้า 69), แพ็ค-รีด 0 การรับวัตถุ: 100% (219/219), 41.09 KIB | 1.71 MIB/S ทำ การแก้ไข Deltas: 100% (83/83) เสร็จแล้ว [1/8] เลือกชื่อโครงการของคุณ (โครงการที่ยอดเยี่ยมของฉัน): [2/8] URL โครงการสำหรับโฮสต์ซอร์สโค้ด (https://repository-hosting.com/example_project): https://github.com/zhiwei2017/feddit [3/8] ผู้แต่งชื่อเต็ม (John Doe): John Doe [4/8] ที่อยู่อีเมลผู้แต่ง ([email protected]): [email protected] [5/8] คำอธิบายสั้น ๆ (ดูโครงการที่ยอดเยี่ยมของฉัน!): API Reddit ปลอม [6/8] เวอร์ชันความหมายเพื่อใช้สำหรับการเปิดตัว (0.1.0): 0.1.0 [7/8] คุณต้องการใช้ใบอนุญาตใดสำหรับโครงการของคุณ? 1 - ไม่มี 2 - MIT 3 - Apache 4 - 2 ข้อ BSD 5 - 3 ข้อ BSD 6 - GPL เลือกจาก [1/2/3/4/5/6] (1): 2 [8/8] ท่อ CI/CD ใดที่คุณวางแผนจะใช้? 1 - ไม่มี 2 - GitHub 3 - Gitlab 4 - BitBucket เลือกจาก [1/2/3/4] (1): 2 ** โปรดอ่านความคิดเห็นจาก readme.rst ในโครงการของคุณเพื่อทำความทราบวิธีการตั้งค่าไปป์ไลน์ CI/CD และใช้คำสั่งจาก MakeFile **
เข้าสู่โครงการและดูรอบ ๆ :
$ cd feddit/ $ ls
repo ของคุณควรมีโครงสร้างดังต่อไปนี้:
อาหาร ├── .GITHUB - การกำหนดค่าการกระทำของ GitHub workflows │├── TEST.YML - ท่อสำหรับการตรวจสอบและการทดสอบผ้าสำลี │── release.yml - ท่อสำหรับรุ่นที่มีแท็ก │── sphinx.yml - ท่อสำหรับการเผยแพร่หน้า gitHub ├──เอกสาร - เอกสารสฟิงซ์ makefile - MakeFile กำหนดคำสั่งเทอร์มินัลสำหรับเอกสารสฟิงซ์ folder แหล่งที่มา - แหล่งข้อมูลเอกสาร │── 01_about.rst │── 02_source.rst │── 03_authors.rst │── 04_contributing.rst │── conf.py - ไฟล์การกำหนดค่าสฟิงซ์ │── index.rst ├── feddit │── __init__.py ├──การทดสอบ - การทดสอบ Resource │──ทรัพยากร - ทรัพยากรที่ใช้ในการทดสอบ │── Conftest.py - ติดตั้งในการทดสอบ │── Test_Version.py - ข้อมูลเวอร์ชันทดสอบ ├── .gitignore ├ดุร. ├──ใบอนุญาต ├── MakeFile - คำสั่งเทอร์มินัลที่กำหนดไว้ล่วงหน้า mani ├── readme.rst - ข้อมูลแพ็คเกจ ├── setup.cfg - การกำหนดค่าสำหรับ flake8 เนื่องจากไม่รองรับ pyproject.toml └── pyproject.toml - ไฟล์การกำหนดค่าแพ็คเกจ
หากคุณต้องการใช้ไปป์ไลน์ CI/CD สำหรับการอัปโหลดแพ็คเกจของคุณไปยัง PYPI โปรดตรวจสอบ การกำหนดค่า CI/CD ในส่วน
บันทึก :
repo นี้ถูกสร้างขึ้นเป็นแพ็คเกจล้อและอัปโหลดไปยัง PYPI คุณสามารถติดตั้งผ่าน PIP :
$ pip ติดตั้ง pyckage-cookiecutter
หรือผ่าน บทกวี :
$ Poetry Self เพิ่ม pyckage-cookiecutter
และเริ่มสร้างโครงการใหม่ทางโทร:
$ pyckage_cookiecutter
หรือ:
$ Poetry Run Pyckage_cookiecutter
ส่วนที่เหลือเหมือนกับการสอนที่แนะนำ
ท่อ CI/CD ถูกกำหนดไว้ล่วงหน้าในโครงการที่สร้างขึ้น โปรดตรวจสอบส่วนต่อไปนี้สำหรับขั้นตอนที่รวมอยู่และวิธีการกำหนดค่าในแพลตฟอร์มที่แตกต่างกัน
คุณสามารถค้นหาไฟล์การกำหนดค่าทั้งหมดของการกระทำของ GitHub ในโฟลเดอร์. .github/workflows
| ไฟล์กำหนดค่า | ขั้นตอน | กฎทริกเกอร์ | ตัวแปร CI/CD ที่จำเป็น | คำอธิบายตัวแปร CI/CD |
|---|---|---|---|---|
| test.yml | Mypy Check |
| ||
| ตรวจสอบ flake8 | ||||
| ตรวจสอบโจร | ||||
| ทดสอบด้วย Python 3.8 (Ubuntu/Mac OS/Windows) | ||||
| ทดสอบด้วย Python 3.9 (Ubuntu/Mac OS/Windows) | ||||
| ทดสอบด้วย Python 3.10 (Ubuntu/Mac OS/Windows) | ||||
| ทดสอบด้วย Python 3.11 (Ubuntu/Mac OS/Windows) | ||||
| ทดสอบด้วย Python 3.12 (Ubuntu/Mac OS/Windows) | ||||
| ตรวจสอบแพ็คเกจที่สร้างขึ้น | ||||
| release.yml | ปรับใช้กับ pypi | กด ไปที่แท็กที่ตรงกัน vxx.xx.xx | poetry_pypi_token_pypi | โทเค็นสำหรับการอัปโหลดแพ็คเกจไปยัง PYPI อย่างเป็นทางการ หากคุณใช้งานศิลปะส่วนตัวโปรดใช้ตัวแปร package_index_repository_url, package_index_username และ package_index_password แทน |
| package_index_repository_url | URL ของดัชนีแพ็คเกจส่วนตัว | |||
| package_index_username | ชื่อผู้ใช้ของดัชนีแพ็คเกจส่วนตัว | |||
| package_index_password | รหัสผ่านของดัชนีแพ็คเกจส่วนตัว | |||
| sphinx.yml | ปรับใช้หน้า gitHub | ผลักดัน ไปยังสาขา หลัก |
บันทึก :
ก่อนที่จะเผยแพร่หน้า GitHub ของโครงการของคุณเป็นครั้งแรกโปรดสร้างหน้า GH-PAGES ด้วยตนเองผ่าน:
$ git checkout master $ git checkout -b gh -pages $ git push Origin GH-PAGES
ไฟล์ .gitlab-ci.yml มีการกำหนดค่าทั้งหมดสำหรับ Gitlab CI
| ขั้นตอน | ขั้นตอน | กฎทริกเกอร์ | ตัวแปร CI/CD ที่จำเป็น | คำอธิบายตัวแปร CI/CD |
|---|---|---|---|---|
| การเป็นผ้าสำลี | Mypy Check |
| ||
| ตรวจสอบ flake8 | ||||
| ตรวจสอบโจร | ||||
| ทดสอบ | ทดสอบด้วย Python 3.8 | |||
| ทดสอบด้วย Python 3.9 | ||||
| ทดสอบด้วย Python 3.10 | ||||
| ทดสอบด้วย Python 3.11 | ||||
| ทดสอบด้วย Python 3.12 | ||||
| สร้าง | ตรวจสอบแพ็คเกจที่สร้างขึ้น | |||
| ปรับใช้ | ปรับใช้กับ pypi | กด ไปที่แท็กที่ตรงกัน vxx.xx.xx | poetry_pypi_token_pypi | โทเค็นสำหรับการอัปโหลดแพ็คเกจไปยัง PYPI อย่างเป็นทางการ หากคุณใช้งานศิลปะส่วนตัวโปรดใช้ตัวแปร package_index_repository_url, package_index_username และ package_index_password แทน |
| package_index_repository_url | URL ของดัชนีแพ็คเกจส่วนตัว | |||
| package_index_username | ชื่อผู้ใช้ของดัชนีแพ็คเกจส่วนตัว | |||
| package_index_password | รหัสผ่านของดัชนีแพ็คเกจส่วนตัว |
ไปที่ การตั้งค่า
คลิกส่วน CI/CD
ไปที่ส่วน ตัวแปร
คลิก เพิ่มปุ่มตัวแปร
ป้อนชื่อและค่าของตัวแปร CI/CD
โดยค่าเริ่มต้นการตรวจ สอบ ธงจะถูกตรวจสอบซึ่งหมายความว่าตัวแปรที่เพิ่มสามารถใช้สำหรับสาขา/แท็กที่ได้รับการป้องกันเท่านั้น หากคุณต้องการป้องกันตัวแปรของคุณโปรดเพิ่ม WildCards V* เป็นแท็กที่ได้รับการป้องกันใน การตั้งค่า -> ที่เก็บ -> แท็กที่ได้รับการป้องกัน
หรือคุณสามารถยกเลิกการเลือกกล่องเพื่อใช้ตัวแปรสำหรับทุกสาขาและแท็ก
ไฟล์ bitbucket-pipelines.yml มีการกำหนดค่าทั้งหมดของท่อ BitBucket
| ขั้นตอน | กฎทริกเกอร์ | ตัวแปร CI/CD ที่จำเป็น | คำอธิบายตัวแปร CI/CD |
|---|---|---|---|
| Mypy Check |
| ||
| ตรวจสอบ flake8 | |||
| ตรวจสอบโจร | |||
| ทดสอบด้วย Python 3.8 | |||
| ทดสอบด้วย Python 3.9 | |||
| ทดสอบด้วย Python 3.10 | |||
| ทดสอบด้วย Python 3.11 | |||
| ทดสอบด้วย Python 3.12 | |||
| ตรวจสอบแพ็คเกจที่สร้างขึ้น | |||
| ปรับใช้กับ pypi | กด ไปที่แท็กที่ตรงกัน vxx.xx.xx | poetry_pypi_token_pypi | โทเค็นสำหรับการอัปโหลดแพ็คเกจไปยัง PYPI อย่างเป็นทางการ หากคุณใช้งานศิลปะส่วนตัวโปรดใช้ตัวแปร package_index_repository_url, package_index_username และ package_index_password แทน |
| package_index_repository_url | URL ของดัชนีแพ็คเกจส่วนตัว | ||
| package_index_username | ชื่อผู้ใช้ของดัชนีแพ็คเกจส่วนตัว | ||
| package_index_password | รหัสผ่านของดัชนีแพ็คเกจส่วนตัว |
ไปที่ การตั้งค่าที่เก็บ
คลิก ตัวแปรที่เก็บ
คลิกปุ่ม เพิ่ม
ป้อนชื่อและค่าของตัวแปร CI/CD
คุณต้องเปิดใช้งานท่อก่อนที่จะเพิ่มตัวแปรใหม่เป็นครั้งแรก
| สั่งการ | คำอธิบาย |
|---|---|
| ทำความสะอาด | ลบโฟลเดอร์และสิ่งประดิษฐ์แบบอัตโนมัติ |
| Clean-pyc | ลบสิ่งประดิษฐ์ Python |
| สร้างความสะอาด | ลบสิ่งประดิษฐ์สร้าง |
| โจร | เรียกใช้การวิเคราะห์ความปลอดภัยของโจร |
| mypy | เรียกใช้การตรวจสอบประเภท mypy |
| เกล็ด 8 | เรียกใช้ Flake8 ผ้าสำลี |
| ติดตั้ง | ติดตั้งการพึ่งพาทั้งหมดและแพ็คเกจเอง |
| ทดสอบ | เรียกใช้การทดสอบและสร้างรายงานความครอบคลุม |
| สร้าง | สร้างแพ็คเกจล้อ |
| เผยแพร่ | เผยแพร่แพ็คเกจล้อที่สร้างขึ้น |
ขอขอบคุณเป็นพิเศษสำหรับโครงการ CookieCutter-Pypackage สำหรับ เทมเพลต ที่ดี.