GitHub ﺕﺎﻣﺍﺪﻗﺍ ﺎﺑ ﻥﻮﺘﯾﺎﭘ ﯼﺍﺮﺑ ﻡﻭﺍﺪﻣ ﺭﺍﺮﻘﺘﺳﺍ ﻭ ﻡﺎﻏﺩﺍ


.ﺪﻧﻮﺷﯽﻣ ﺭﺎﮔﺯﺎﺳ ﺕﺍﺮﯿﯿﻐﺗ ﺎﺑ ﻪﭼﺭﺎﭙﮑﯾ ﻥﺎﺸﯾﺎﻫﻩﮊﻭﺮﭘ ﻪﮐ ﺪﻨﻨﮐ ﻞﺻﺎﺣ ﻥﺎﻨﯿﻤﻃﺍ ﻭ

ﺕﺎﻣﺍﺪﻗﺍ GitHub ﯼﺍﺮﺑ Python ﺪﻧﻮﺷ ﺭﺎﮔﺯﺎﺳ ﯽﻤﺋﺍﺩ ﺕﺍﺮﯿﯿﻐﺗ ﺎﺑ ﻝﺎﺣ ﻦ

ﻡﻭﺍﺪﻣ ﺭﺍﺮﻘﺘﺳﺍ ﻭ ﻡﻭﺍﺪﻣ ﻡﺎﻏﺩﺍ (CI/CD) ﺕﺎﻣﺍﺪﻗﺍ .ﺪﻨﻨﮐ ﯽﻣ ﮏﻤﮐ ﻩﺩ

ﻪﻧﻮﮕﭼ ﻪﮐ ﺪﯾﺯﻮﻣﺁ ﯽﻣ ﺎﻤﺷ ، ﺵﺯﻮﻣﺁ ﻦﯾﺍ ﺭﺩ:

  • ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ ﺭﺎﮐ ﺵﺩﺮﮔ ﺕﺎﻣﺍﺪﻗﺍ ﺯ
  • ﺭﺍﺮﻘﺘﺳﺍ ﻭ ﺶﯾﺎﻣﺯﺁ ،ﻥﺩﺯ ﻩﺩﺮﭘ ﺪﯿﻨﮐ ﺭﺎﮐﺩﻮﺧ ﺍﺭ ﻥﻮﺘﯾﺎﭘ ﻩﮊﻭﺮﭘ
  • ﻦﻤﯾﺍ ﻪﻣﺎﻧﺭﺎﺒﺘﻋﺍ ﺩﻮﺷ ﯽﻣ ﻩﺩﺎﻔﺘﺳﺍ ﻥﻮﯿﺳﺎﻣﻮﺗﺍ ﯼﺍﺮﺑ ﻪﮐ
  • ﯽﮕﺘﺴﺑﺍﻭ ﻭ ﯽﺘﯿﻨﻣﺍ ﯼﺎﻫ ﯽﻧﺎﺳﺭ ﺯﻭﺭ ﻪﺑ ﺪﯿﻨﮐ ﺭﺎﮐﺩﻮﺧ ﺍﺭ

.ﺪﯾﺯﺎﺴﺑ ﺍﺭ ﺩﻮﺧ ﯽﻌﻗﺍﻭ ﻥﻮﺘﯾﺎﭘ ﻩﺪﻨﻧﺍﻮﺧ ، ﯽﻠﺒﻗ ﺵﺯﻮﻣﺁ ﮏﯾ ﺯﺍ ﻩﺩﺎﻔﺘﺳﺍ ﺎﺑ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ،

.ﺪﯿﺷﺎﺑ ﻪﺘﺷﺍﺩ ﯽﯾﺎﻨﺷﺁ YAML ﻮﺤﻧ ﺎﺑ ﻭ ﺪﯿﺷﺎﺑ ﺖﺣﺍﺭ Python، Git ﯼﺎﻫ ﻪﺘﺴﺑ ﺖﺧﺎﺳ ،

.ﺪﯿﻨﮐ ﮎﺭﺩ ، ﺪﻨﮐ ﻞﺣ ﺪﻧﺍﻮﺗ ﯽﻣ GitHub ﺕﺎﻣﺍﺪﻗﺍ ﻪﮐ ﺍﺭ ﯽﺗﻼﮑﺸﻣ ﻉﺍﻮﻧﺍ ﺎﺗ ﺪﻨﮐ ﯽﻣ ﮏﻤﮐ ﺎﻤ

CI/CD ﯼﺎﯾﺍﺰﻣ ﻥﺩﺮﮐ ﺯﺎﺑ

ﻪﺘﺳﻮﯿﭘ ﻡﺎﻏﺩﺍ (CI)ﺮﻤﺘﺴﻣ ﺭﺍﺮﻘﺘﺳﺍ (CD)، ﻥﺍﻮﻨ

.ﺪﻨﮐ ﯽﻣ ﻩﺩﺭﻭﺁﺮﺑ ﺍﺭ ﻩﮊﻭﺮﭘ ﯼﺎﻫﺯﺎﯿﻧ ، ﺪﮐ ﺖﯿﻔﯿﮐ ﯼﺯﺎﺳ ﺩﺭﺍﺪﻧﺎﺘﺳﺍ ﻦﻤﺿ ﺎﻤﺷ ﻪﺘﺴﺑ ﻪﺑ ﮏﻤﮐ

.ﺪﻨﮐ ﯼﺮﯿﮔﻮﻠﺟ ﻥﻮﻣﺯﺁ ﻥﺪﻧﺍﺭﺬﮔ ﻡﺪﻋ ﺕﺭﻮﺻ ﺭﺩ ﻡﺎﻏﺩﺍ ﺯﺍ ﺍﺭ ﺎﻫ PR ﺭﺎﮐﺩﻮﺧ ﺭﻮﻃ ﻪﺑ ﺪﻧﺍﻮﺗ ﯽ

.ﺪﻨﮐ ﮏﻤﮐ GitHub ﺭﺩ ﻩﺪﺷ ﯽﻧﺎﺑﺰﯿﻣ ﻥﺰﺨﻣ ﮏﯾ ﺭﺩ CI/CD ﯼﺯﺎﺳﻩﺩﺎﯿﭘ ﺭﺩ ﺎﻤﺷ ﻪﺑ ﺪﻧﺍﻮﺗ

GitHub ﯼﺭﺎﮐ ﯼﺎﻫﺵﺩﺮﮔ ﺭﺩ ﺵﻭﺎﮐ

GitHub Workflow ﺪﻨﻤﺗﺭﺪﻗ ﯼﺎﻫ ﯽﮔﮋﯾﻭ ﺯﺍ ﯽﮑﯾ GitHub Actions ﺪﯿﻨﮐ ﺍﺮﺟﺍ ﺎﯾ ﺪﯿﻨﮐ ﺶﯾﺎﻣ

.ﺖﺳﺍ ﻩﺪﺷ ﻞﯾﺪﺒﺗ ﺽﺮﻓ ﺶﯿﭘ ﻪﺑ GitHub ﺭﺩ ﺯﺎﺑ ﻊﺒﻨﻣ ﯼﺎﻫ ﻩﮊﻭﺮﭘ ﻦﯿﺑ ﺭﺩ ﺽﺮﻓ ﺶﯿﭘ ﺭﻮﻃ ﻪﺑ ،

ﺭﺎﮐ ﺵﺩﺮﮔ ﻩﺪﻧﻭﺮﭘ ﮏﯾ ﯽﻣﻮﺗﺎﻧﺁ

.ﺪﻧﻮﺷ ﯽﻣ ﻒﯾﺮﻌﺗ ﻭ ﻩﺮﯿﺧﺫ ﺩﻮﺧ ﻩﮊﻭﺮﭘ ﯽﻠﺻﺍ ﺖﺳﺮﻬﻓ ﺭﺩ /ﺭﺎﮐ ﺵﺩﺮﮔ/code> .github>

.ﺪﯿﻨﮐ ﯼﺭﺍﺬﮕﻣﺎﻧ test.yml ﺪﻨﻧﺎﻣ ، ﺪﻧﺭﻭﺁ ﯽﻣ ﺖﺳﺩ ﻪﺑ ﻪﮐ ﯽﯾﺎﻫﺭﺎﮐ ﺯﺍ ﺲ

.ﺪﯿﻨﮐ ﯽﺳﺭﺮﺑ ﺍﺭ ﻥﺁ ﺎًﻤﺘﺣ ، ﺵﺯﻮﻣﺁ ﻦﯾﺍ ﻥﺪﻧﺍﻮﺧ ﻡﺎﻤﺗﺍ ﺯﺍ ﺲﭘ ﻦﯾﺍﺮﺑﺎﻨﺑ ، ﺖﺳﺍ ﻩﺪﺷ ﻪﺘﺷﻮﻧ

.ﺪﯾﺯﺍﺩﺮﭘ ﯽﻣ ﺩﺭﺍﻮﻣ ﻦﯾﺍ ﻪﺑ ﯼﺪﻌﺑ ﯼﺎﻫ ﺶﺨﺑ ﺭﺩ .ﺎﻫﻡﺎﮔ ﻭ ،

ﺩﻮﺷ ﯽﻣ ﺚﻋﺎﺑ ﺭﺎﮐ ﺵﺩﺮﮔ

:ﺪﻨﻫﺩ ﯽﻣ ﺥﺭ ﺮﯾﺯ ﺩﺭﺍﻮﻣ ﺭﺩ ﻪﮐ ﺪﻨﺘﺴﻫ ﯼﺩﺭﺍﻮﻣ ﺎﻬﻧﺁ ﻦﯾﺮﺗ ﺞﯾﺍﺭ .ﺩﺭﺍﺩ ﺩﻮﺟﻭ ﺎﻫ ﮎﺮﺤﻣ ﺯﺍ

  • ﺶﺸﮐ ﺖﺳﺍﻮﺧﺭﺩ
  • ﺪﺷ ﻩﺩﺍﺩ ﺭﺎﺸﻓ ﺪﻬﻌﺗ ﺶﯿﭘ ﻪﺒﻌﺷ ﻪﺑﺽﺮﻓ
  • ﻎﯿﻠﺒﺗ commit
  • ﯽﺘﺳﺩ ﻪﺷﺎﻣ
  • ﺮﮕﯾﺩ ﯼﺭﺎﮐ ﺵﺩﺮﮔ ﻂﺳﻮﺗ ﺖﺳﺍﻮﺧﺭﺩ
  • ﺪﯾﺪﺟ ﻉﻮﺿﻮﻣ ﺖﺳﺍ ﻥﺪﺷ ﺯﺎﺑ ﻝﺎﺣ ﺭﺩ

:ﺖﺳﺍ ﯽﻠﺻﺍ ﻪﺧﺎﺷ ﻪﺑ ﺪﻫﺩ ﯽﻣ ﺭﺎﺸﻓ ﺮﻫ ﺭﺩ ﺍﺭ ﺭﺎﮐ ﺵﺩﺮﮔ ﮏﯾ ﻪﮐ ﻪﺷﺎﻣ ﮏﯾ ﺯﺍ ﻩﺩ

on:
  push:
    branches:
      - main

.ﺪﯿﻨﮐ ﯽﺳﺭﺮﺑ ﺍﺭ ﯽﻤﺳﺭ ﺕﺍﺪﻨﺘﺴﻣ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ، ﺖﺳﺍ ﻩﺪﺸﻧ ﻩﺩﺍﺩ ﺶﺷﻮﭘ ﺵﺯﻮﻣﺁ ﻦﯾﺍ ﺭﺩ ﻪﮐ ﯽﯾﺎ

.ﻞﻏﺎﺸﻣ :ﺪﯿﻨﮐ ﻒﺸﮐ ﺍﺭ ﺭﺎﮐ ﺵﺩﺮﮔ ﻩﺪﻧﻭﺮﭘ ﮏﯾ ﯼﺪﻌﺑ ﻪﻔﻟﺆﻣ ﻪﮐ ﺖﺳﺍ ﻥﺁ ﺖﻗﻭ ، ﺪﻨﻨﮐ ﯽﻣ ﺩﺎﺠﯾ

ﺭﺎﮐ ﺵﺩﺮﮔ ﻞﻏﺎﺸﻣ

.ﺪﺷﺎﺑ ﻪﻠﺣﺮﻣ ﺪﻨﭼ ﺎﯾ ﮏﯾ ﻞﻣﺎﺷ ﺪﻧﺍﻮﺗ ﯽﻣ ﺭﺎﮐ ﺮﻫ ﻭ ﺪﺷ ﺪﻫﺍﻮﺧ ﺍﺮﺟﺍ ﻪﮐ ﺪﺷﺎﺑ ﻞﻐﺷ ﺪﻨﭼ ﺎﯾ

:ﺖﺳﺍ ﻩﺪﺷ ﻩﺩﺭﻭﺁ ﯼﺍﻪﻠﺣﺮﻣ ﭻﯿﻫ ﻥﻭﺪﺑ ﺶﺨﺑ ﻦﯾﺍ ﯼﺮﻫﺎﻇ ﻞﮑﺷ ﺯﺍ ﯼﺍﻪﻧﻮﻤ

# ...

jobs:
  my_first_job:
    name: My first job
  my_second_job:
    name: My second job

.ﺪﯿﺷﺎﺒﻧ ﺩﻮﺧ CI/CD ﯼﺎﻫﺖﺧﺎﺳﺮﯾﺯ ﻆﻔﺣ ﻥﺍﺮﮕﻧ ﺮﮕﯾﺩ ﺎﺗ ﺩﺮﺑﯽﻣ ﻦﯿﺑ ﺯﺍ ﻭ ﻪﯿﻬﺗ ﺍ

.ﺪﯿﺑﺎﯿﺑ ﺕﺍﺪﻨﺘﺴﻣ ﺭﺩ ﺍﺭ GitHub ﻥﺎﺑﺰﯿﻣ ﻥﺎﮔﺪﻧﻭﺩ ﻞﻣﺎﮐ ﺖﺴﯿﻟ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ﺎﻤﺷ .ﺪﻨﺘﺴﻫ ﺱﺮﺘ

:ﺪﺸﮐ ﯽﻣ ﻝﻮﻃ YAML ﻂﺧ ﮏﯾ ﻩﺯﺍﺪﻧﺍ ﻪﺑ ﻩﺪﻧﻭﺩ ﮏﯾ ﻒﯾﺮﻌﺗ

# ...

jobs:
  my_first_job:
    name: My first job
    runs-on: ubuntu-latest
    # ...
  my_second_job:
    name: My second job
    runs-on: windows-latest
    # ...

ﻪﺨﺴﻧ .ﺩﻮﺷﯽﻣ ﯽﻧﺎﺒﯿﺘﺸﭘ ﻪﮐ ﯽﻧﺎﻣﺯ ﺎﺗ ubuntu-20.24 ،ﻝﺎﺜﻣ ﻥﺍﻮﻨﻋ ﻪﺑ

ﺭﺎﮐ ﺵﺩﺮﮔ ﻞﺣﺍﺮﻣ

.ﺪﺷﺎﺑ GitHub ﺮﮕﯾﺩ ﻡﺍﺪﻗﺍ ﮏﯾ ﺯﺍ ﻩﺩﺎﻔﺘﺳﺍ ﺎﯾ ﺎﻤﺷ ﺪﮐ ﻥﺩﺮﮐ ﺮﭘ ،ﺎﻫﺶﯾﺎﻣﺯﺁ ﯼﺍﺮﺟﺍ ،

.ﺪﯿﻨﮐ ﯽﯾﻮﺟﻪﻓﺮﺻ ﺩﺮﮑﻠﻤﻋ ﻥﺁ ﺩﺪﺠﻣ ﯼﺍﺮﺟﺍ ﯼﺍﺮﺑ ﺩﻮﺧ ﻥﺎﻣﺯ ﺭﺩ ﺎﺗ ﺪﯿﻨﮐﯽﻣ ﻩﺩﺎﻔﺘ

.ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ ﺎﻬﻧﺁ ﻦﺘﻓﺎﯾ ﻩﻮﺤﻧ ﻭ GitHub ﺕﺎﻣﺍﺪﻗﺍ ﺮﯾﺎﺳ ﺯﺍ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ﻪﻧﻮﮕﭼ ﻪﮐ ﺪﯾﺩ

ﻥﻮﺘﯾﺎﭘ ﯼﺍﺮﺑ GitHub Actions ﺯﺍ ﻩﺩﺎﻔﺘﺳﺍ

.ﺩﻮﺷ ﯽﻣ ﺎﻤﺷ ﺵﻼﺗ ﻭ ﺖﻗﻭ ﺭﺩ ﯽﯾﻮﺟ ﻪﻓﺮﺻ ﺚﻋﺎﺑ ، ﻪﺘﺧﺎﺳ ﺶﯿﭘ ﺯﺍ ﯼﺎﻫﺩﺮﮑﻠﻤﻋ ﺯﺍ ﻩﺩﺎﻔﺘﺳﺍ ﺎﺑ

.ﺖﺧﺍﺩﺮﭘ ﺪﯿﻫﺍﻮﺧ ﻥﺁ ﻪﺑ ﻪﻣﺍﺩﺍ ﺭﺩ ﻪﮐ ،ﺪﯿﺑﺎﯿﺑ GitHub ﺭﺍﺯﺎﺑ ﺭﺩ ﺍﺭ GitHub ﻪﺑ ﻁﻮﺑﺮﻣ ﺕﺎ

Github ﺭﺍﺯﺎﺑ ﺭﺩ ﺵﻭﺎﮐ

.ﺪﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ ﺭﺍﺯﺎﺑ ﺭﺩ ﻥﺁ ﯽﻧﺎﺑﺰﯿﻣ ﻭ ﺩﻮﺧ ﻞﻤﻋ ﺩﺎﺠﯾﺍ ﯼﺍﺮﺑ GitHub ﻡﺍﺪﻗﺍ ﯼﻮﮕﻟﺍ ﺯﺍ ﺪﻧ

.ﺖﺳﺍ ﻥﺎﮕﯾﺍﺭ ﻩﺩﺎﻔﺘﺳﺍ ﻭ ﺯﺎﺑ ﻊﺒﻨﻣ GitHub ﺭﺍﺯﺎﺑ ﺭﺩ ﺩﻮﺟﻮﻣ ﺕﺎﻣﺍﺪﻗﺍ ﻪﯿﻠﮐ .ﺖﺳﺍ ﻩﺪﺷ ﺭﻮﺼ

.ﺩﺮﮐ ﺪﯿﻫﺍﻮﺧ ﻩﺪﻫﺎﺸﻣ ،ﺩﺮﮐ ﺪﯿﻫﺍﻮﺧ ﻩﺩﺎﻔﺘﺳﺍ ﻥﻮﺘﯾﺎﭘ ﻩﮊﻭﺮﭘ ﺮﻫ ﯼﺍﺮﺑ ﻪﮐ ﺍﺭ GitHub ﻦﺸﮐﺍ

ﺭﺎﮐ ﺵﺩﺮﮔ ﺭﺩ ﺕﺎﻣﺍﺪﻗﺍ ﻪﻠﻤﺟ ﺯﺍ

:ﺩﺭﺍﺩ ﺭﺎﮐ ﻭﺩ ﺮﻫ ﻪﺑ ﮏﻤﮐ ﯼﺍﺮﺑ GitHub ﯽﻤﺳﺭ ﺕﺎﻣﺍﺪﻗﺍ GitHub ، ﻪﻧﺎﺘﺨﺒﺷﻮﺧ .ﺪﯿﻨﮐ ﻢﯿﻈﻨﺗ

# ...

jobs:
  my_first_job:
    name: My first job
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.13"
      - run: python -m pip install -r requirements.txt

.ﺪﯿﻨﮐ ﺺﺨﺸﻣ ﺍﺭ ﯽﻠﺻﺍ ﻪﺨﺴﻧ ﻦﯾﺮﺧﺁ ﺎﺗ ﺪﯿﻨﮐ ﻪﻌﺟﺍﺮﻣ ﻥﺁ ﻪﺑ ﻮﺤﻧ ﻦﯾﺍ ﺯﺍ ﻩﺩﺎﻔﺘﺳﺍ ﺎﺑ ﺪﯿﻧﺍﻮ

.ﺪﯿﻨﮐ ﻪﻓﺎﺿﺍ ﻪﻠﺣﺮﻣ ﻪﺑ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ﻪﮐ ﺪﯿﺷﺎﺑ ﻪﺘﺷﺍﺩ ﯽﻓﺎﺿﺍ ﺕﺎﻤﯿﻈﻨﺗ ، ﻪﻤﻫ ﻪﻧ ﺮﮔﺍ ، ﺕﺎﻣ

.ﺪﯿﻨﮐ ﺐﺼﻧ ﺪﯿﻫﺍﻮﺧ ﯽﻣ ﻪﮐ ﺍﺭ ﻥﻮﺘﯾﺎﭘ ﺯﺍ ﻪﺨﺴﻧ ﻡﺍﺪﮐ ﺪﯿﻨﮐ ﻡﻼﻋﺍ ﻪﮐ ﺖﺳﺍ ﻦﯾﺍ ﺩﻮﺧ ﺭﺎﮐ ﺵﺩﺮ

.ﺪﯿﻨﮐ ﯽﻣ ﺐﺼﻧ ﺯﺎﯿﻧ ﺩﺭﻮﻣ ﻩﺪﻧﻭﺮﭘ ﺯﺍ ﺍﺭ ﻩﮊﻭﺮﭘ ﯼﺎﻫ ﯽﮕﺘﺴﺑﺍﻭ ﺎﻤﺷ ، ﺖﻟﺎﺣ ﻦﯾﺍ ﺭﺩ .ﺪﯿﻨﮐ

.ﺪﯾﺭﺍﺩ ، ﺖﺳﺍ ﻩﺩﺎﻣﺁ ﺩﻮﺧ Python ﻩﮊﻭﺮﭘ ﺭﺍﺮﻘﺘﺳﺍ ﻭ ﺶﯾﺎﻣﺯﺁ ، ﺖﺧﺎﺳ ﯼﺍﺮﺑ ﻪﮐ ﯽﻄﯿﺤﻣ ﻢﯿﻈﻨ

.ﺩﺍﺩ ﺪﯿﻫﺍﻮﺧ ﻡﺎﺠﻧﺍ ﯽﻌﻗﺍﻭ ﯼﺎﯿﻧﺩ ﺭﺩ ﻝﺎﺜﻣ ﮏﯾ ﺎﺑ ﺍﺭ ﺭﺎﮐ ﻦﯾﺍ ،ﯼﺪﻌﺑ ﺶﺨﺑ ﺭﺩ .ﺪﯾﺭﺍﺩ ﻩﮊﻭ

ﺩﻮﺧ ﺭﺎﮐ ﺵﺩﺮﮔ ﻦﯿﻟﻭﺍ ﺩﺎﺠﯾﺍ

.ﺪﯿﻨﮐ ﯽﻃ ﺍﺭ Real Python Reader ﯽﻨﻌﯾ ،ﺩﻮﺟﻮﻣ ﯽﻌﻗﺍﻭ ﯼﺎﯿﻧﺩ ﻩﮊﻭﺮﭘ ﮏﯾ ﻪﺑ CI/CD ﻥﺩﻭﺰﻓ

.ﺖﺳﺍ ﻥﺪﻧﺍﻮﺧ ﻞﺑﺎﻗ ﻭ ﺰﯿﻤﺗ PYPI ﻪﺑ ﻪﺘﺴﺑ ﺭﺍﺮﻘﺘﺳﺍ ﺯﺍ ﻞﺒﻗ ﺎﻤﺷ ﺪﮐ ﻪﮐ ﺪﯿﻨﮐ ﯽﻣ ﻞﺻﺎﺣ ﻥﺎﻨ

:ﺪﯿﻨﮐ ﻦﯾﺰﮕﯾﺎﺟ ﺩﻮﺧ GitHub ﯼﺮﺑﺭﺎﮐ ﻡﺎﻧ ﺎﺑ ﺍﺭ ﺩﻮﺧ ﻡﺎﻧ ﺎًﻤﺘﺣ .ﺪﯿﻨﮐ ﻥﻮﻠﮐ ﺍﺭ ﻥﺁ ﺲ

$ git clone git@github.com:your-username/reader.git
$ cd reader/
$ git checkout github-actions-tutorial
$ mkdir -p .github/workflows/

.ﺪﯾﺍ ﻩﺩﺮﮐ ﺝﺭﺩ ﺍﺭ ﺎﻫ ﻪﺧﺎﺷ ﻪﻤﻫ ﺭﺎﺑ ﻦﯾﺍ ﻪﮐ ﺪﯿﻨﮐ ﻞﺻﺎﺣ ﻥﺎﻨﯿﻤﻃﺍ ﻭ ﺪﯿﻨﮐ ﮎﺭﻮﻓ ﺍﺭ ﻥﺁ ﻩﺭ

.ﺪﺷﺎﺑ .github/ ﻪﺷﻮﭘ ﺯﺍ ﯼﺍ ﻪﻋﻮﻤﺠﻣ ﺮﯾﺯ ﻭ ﺪﯿﻣﺎﻧ /ﺭﺎﮐ ﺵﺩﺮﮔ

:ﺪﯿﻨﮐ ﻒﯾﺮﻌﺗ lint.yml ﻩﺪﻧﻭﺮﭘ ﺭﺩ ﺍﺭ ﺩﻮﺧ ﯼﺎﻫ ﮎﺮﺤﻣ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ، ﻉﻭﺮﺷ

name: Lint Python Code

on:
  pull_request:
    branches:
      - master
  push:
    branches:
      - master
  workflow_dispatch:

:ﺪﯿﻨﮐ ﺮﺘﻠﯿﻓ ﺩﻮﺧ ﯽﻠﺒﻗ ﯼﺭﺎﮐ ﯼﺎﻫﺵﺩﺮﮔ ﻖﯾﺮﻃ ﺯﺍ ﻭ ﻩﺩﺮﮐ ﯽﯾﺎﺳﺎﻨﺷ ﺍﺭ ﺩﻮﺟﻮﻣ ﯼﺭﺎﮐ ﯼﺎ

:ﺪﻨﻨﮐ ﺯﺎﻏﺁ ﺍﺭ ﺭﺎﮐ ﺵﺩﺮﮔ ﺪﻨﻧﺍﻮﺗ ﯽﻣ ﻪﮐ ﺖﺳﺍ ﻩﺪﺷ ﻒﯾﺮﻌﺗ ﻒﻠﺘﺨﻣ ﺮﮕﯾﺮﺗ ﻪﺳ ،ﻻﺎﺑ ﺪﮐ ﺭﺩ .ﺪ

  1. ﺶﺸﮐ ﺖﺳﺍﻮﺧﺭﺩ ﻥﺩﺮﮐ ﺯﺎﺑ
  2. ﯽﻠﺤﻣ ﺕﺍﺪﻬﻌﺗ ﻪﺑ ﻥﺩﺍﺩ ﺭﺎﺸﻓ
  3. ﯽﺘﺳﺩ ﺕﺭﻮﺻ ﻪﺑ ﺭﺎﮐ ﺵﺩﺮﮔ ﻝﺎﺳﺭﺍ

ﻥﺰﺨﻣ .ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ ﺩﻮﺧ ﺭﺩ master ﻪﺧﺎﺷ ﺭﺩ ﺪﮐ ﻡﺎﻏﺩﺍ ﯼﺍﺮﺑ ﺶﺸﮐ ﺖﺳﺍﻮﺧﺭ

.ﺪﺷﺎﺑ ﺽﺮﻓ ﺶﯿﭘ ﻪﺧﺎﺷ ﺭﺩ ﺭﺎﮐ ﺵﺩﺮﮔ ﻩﺪﻧﻭﺮﭘ ﻪﮐ ﺪﻨﮐ ﯽﻣ ﺭﺎﮐ ﯽﻧﺎﻣﺯ ﻂﻘﻓ workflow_

:ﻂﯿﺤﻣ ﯼﺪﻨﺑﺮﮑﯿﭘ ﻭ ﺎﻫ ﻞﻐﺷ ﻒﯾﺮﻌﺗ ﯽﻨﻌﯾ ،ﺪﯾﻭﺮﺑ ﺭﺎﮐ ﺵﺩﺮﮔ ﻞﯾﺎﻓ ﺩﺎﺠﯾﺍ ﺭﺩ ﯼﺪﻌﺑ ﻪﻠﺣﺮﻣ ﻪﺑ

name: Lint Python Code

on:
  pull_request:
    branches:
      - master
  push:
    branches:
      - master
  workflow_dispatch:

jobs:
  lint: # The name of the job
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.13"
          cache: "pip"

.ﺪﯾﺍﻩﺩﺮﮐ ﻒﯾﺮﻌﺗ ubuntu-latest ﻥﺍﻮﻨﻋ ﻪﺑ ﺍﺭ ﺭﺎﮐ ﺵﺩﺮﮔ ﻦﯾﺍ ﯼﺍﺮﺑ ﻩ

.ﺪﻨﮐ ﯽﻣ ﻩﺩﺎﻔﺘﺳﺍ ﺶﮐ ﯼﺎﻫ ﻪﺨﺴﻧ ﺯﺍ ،PyPI ﺯﺍ ﺎﻬﻧﺁ ﻥﺪﯿﺸﮐ ﻥﻭﺮﯿﺑ ﯼﺎﺟ ﻪﺑ .ﺪﻨﮐﯽﻣ ﮏﻤ

:ﺪﯿﻫﺩ ﻡﺎﺠﻧﺍ ﺩﻮﺧ lint ﺭﺎﮐ ﻪﺑ ﺮﮕﯾﺩ ﻪﻠﺣﺮﻣ ﻭﺩ ﻥﺩﻭﺰﻓﺍ ﺎﺑ ﺍﺭ ﺭﺎﮐ ﻦﯾﺍ ﺪﯿ

name: Lint Python Code

on:
  pull_request:
    branches:
      - master
  push:
    branches:
      - master
  workflow_dispatch:

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.13"
          cache: "pip"
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          python -m pip install ruff

      - name: Run Ruff
        run: ruff check --output-format=github

.ﺪﻨﮐ ﯽﻣ ﺍﺮﺟﺍ ﺐﯿﺗﺮﺗ ﻪﺑ ﺍﺭ ﺎﻬﻧﺁ ﻭ ﺪﻨﮐ ﯽﻣ ﺮﯿﺴﻔﺗ ﻪﻧﺎﮔﺍﺪﺟ ﺕﺍﺭﻮﺘﺳﺩ ﻥﺍﻮﻨﻋ ﻪﺑ ﺍﺭ ﺮﯾﺯ ﻁ

.ﺩﻮﺷ ﻪﻨﯿﻬﺑ ﺕﺎﻣﺮﻓ-ﯽﺟﻭﺮﺧ- ﺐﺴﭼﺮﺑ ﺎﺑ github ﺭﺎﮐ ﺵﺩﺮﮔ

:ﺪﯿﻨﮐ ﮏﯿﻠﮐ ﺭﺎﮐ ﺵﺩﺮﮔ ﯼﺍﺮﺟﺍ ﯼﻭﺭ ﺲﭙﺳ ﻭ ﺪﯿﻨﮐ ﺏﺎﺨﺘﻧﺍ ﭗﭼ ﺖﻤﺳ ﺯﺍ ﺍﺭ ﺮﻈﻧ ﺩﺭﻮﻣ

.ﺪﻨﮐ ﺍﺮﺟﺍ Real Python Reader ﯼﻭﺭ ﺍﺭ ﯽﺸﯾﺎﻣﺯﺁ ﻪﻋﻮﻤﺠﻣ ﻪﮐ ﺪﯿﻨﮐ ﺩﺎﺠﯾﺍ ﺍﺭ ﯼﺍ ﻪﻋﻮﻤﺠﻣ

ﺭﺎﮐﺩﻮﺧ ﺖﺴﺗ ﺭﺎﮐ ﺵﺩﺮﮔ ﮏﯾ ﺩﺎﺠﯾﺍ

.ﺭﺎﮐﺩﻮﺧ ﺶﯾﺎﻣﺯﺁ :ﺪﯿﻨﮐ ﻩﺎﮕﻧ ﺩﻮﺑ ﺪﻫﺍﻮﺧ ﻪﺘﺴﺑ ﻦﯾﺍ ﯼﺭﺎﮐ ﻥﺎﯾﺮﺟ ﻦﯾﺮﺘﻤﻬﻣ ﺎًﻤﻠﺴﻣ ﻪﭽﻧﺁ ﻪﺑ

Real Python Reader ﺯﺍ pytest ﺩﺭﻮﻣ ﺭﺩ ﻼًﺒﻗ ﻪﮐ ﯽﯾﺎﻫﺰﯿﭼ ﻪﺑ ﻪﺟﻮﺗ ﺎﺑ ﻭ

:ﺪﯿﻨﮐ ﻡﻼﻋﺍ ﺍﺭ ﯽﺸﯾﺎﻣﺯﺁ ﺭﺎﮐ ﺵﺩﺮﮔ ﯼﺎﻫﮎﺮﺤﻣ ﺪﯾﺎﺑ ،GitHub ﯼﺭﺎﮐ ﯼﺎﻫﺵﺩﺮﮔ ﻡﺎﻤ

name: Run Tests

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
  workflow_call:
  workflow_dispatch:

.ﺪﻨﮐ ﺩﺎﺠﯾﺍ ﺍﺭ ﺭﺎﮐ ﺵﺩﺮﮔ ﻦﯾﺍ ﺎﺗ ﺪﻫﺩ ﯽﻣ ﻩﺯﺎﺟﺍ ﺭﺎﮐ ﺵﺩﺮﮔ ﺮﯾﺎﺳ ﻪﺑ ﻪﮐ ﺖﺳﺍ ﻩﺪﺷ ﻒﯾﺮﻌﺗ ﺶ

.ﺪﯾﺭﺍﺩ ﻪﮕﻧ ﯼﺩﻭﺪﺣ ﺎﺗ ﻭ ﺮﺗ ﻩﺎﺗﻮﮐ ﺍﺭ ﺩﻮﺧ ﺭﺎﮐ ﺵﺩﺮﮔ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ﻭ ، ﺖﺴﯿﻧ ﺭﺍﺮﮑﺗ ﺮﮕﯾﺩ ﻦ

:ﯼﺪﯿﻠﮐ ﻪﻤﻠﮐ ﺯﺍ ﻩﺩﺎﻔﺘﺳﺍ .ﺪﯿﻨﮐ ﯽﻣ ﺍﺭ ﺭﺎﮐ ﻦﯾﺍ ، ﺪﯿﻨﮐ ﯽﻣ ﯽﻧﺍﻮﺧﺍﺮﻓ ﺩﻮﺧ ﺭﺎﮐ

# Github-username/repo/path/to/workflow@version
- uses: realpython/reader/.github/workflows/test.yml@master

.ﺖﺳﺍ GitHub ﺕﺎﻣﺍﺪﻗﺍ ﺯﺍ ﮒﺭﺰﺑ ﺖﯾﺰﻣ ﮏﯾ ﺭﺎﮐ ﺵﺩﺮﮔ ﺯﺍ ﺩﺪﺠﻣ ﻩﺩﺎﻔﺘﺳﺍ .ﺖﺳﺍ ﺪﻨﻤﺗﺭﺪﻗ ﺭﺪﻘﭼ

.ﺪﺷﺎﺑ ﻥﻮﺘﯾﺎﭘ ﺯﺍ ﯽﺗﻭﺎﻔﺘﻣ ﻪﺨﺴﻧ ﯼﻭﺭ ﺮﺑ ﺍﺮﺟﺍ ﺮﻫ ﻭ ﺪﯿﻨﮐ ﺍﺮﺟﺍ ﺭﺎﺑ ﻦﯾﺪﻨﭼ ﺍﺭ ﺎﻬﻧﺁ ﻭ ﺪﯿ

ﻥﻮﺘﯾﺎﭘ ﻪﺨﺴﻧ ﻦﯾﺪﻨﭼ ﯼﻭﺭ ﺮﺑ ﺖﺴﺗ

:ﺖﺳﺍ ﺮﯾﺯ ﻞﮑﺷ ﻪﺑ ﻪﮐ ،ﺪﯾﺩﺮﮐ ﻩﺩﺎﻔﺘﺳﺍ ﻮﺘﻧﻮﺑﻭﺍ ﻪﻧﻮﻤﻧ ﺭﺩ Python 3.13 ﯼﺯﺍﺪﻧﺍﻩﺍﺭ

# ...

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.13"
          cache: "pip"
      # ...
# ...

.ﺖﺳﺍ ﻥﻮﺘﯾﺎﭘ ﺯﺍ ﻪﺨﺴﻧ ﻦﯾﺪﻨﭼ ﯼﻭﺭ ﺮﺑ ﺶﯾﺎﻣﺯﺁ ﯼﺍﺮﺑ ﯼﮋﺗﺍﺮﺘﺳﺍ ﺲﯾﺮﺗﺎﻣ ﮏﯾ ﺪ

:ﯽﻤﺳﺭ ﺩﺎﻨﺳﺍ ﺯﺍ ﻝﻮﻗ ﻞﻘﻧ ﯼﺍﺮﺑ

(ﻊﺒﻨﻣ) .ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ ﻞﻣﺎﻋ ﻢﺘﺴﯿﺳ ﻦﯾﺪﻨﭼ ﺎﯾ ﻥﺎﺑﺯ ﮏﯾ ﺯﺍ ﻪﺨﺴﻧ ﻦﯾﺪﻨﭼ ﺭﺩ ﺩﻮﺧ ﺪﮐ ﺶﯾﺎﻣﺯ

.ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ ﺰﯿﻧ ﻒﻠﺘﺨﻣ ﯼﺎﻫﻞﻣﺎﻋﻢﺘﺴﯿﺳ ﯼﻭﺭ ﺮﺑ ﺩﻮﺧ ﺪﮐ ﺖﺧﺎﺳ ﺎﯾ ﺍﺮﺟﺍ ﯼﺍﺮﺑ

:ﺪﯿﻨﮐ ﻒﯾﺮﻌﺗ ﺍﺭ ﺩﻮﺧ ﺯﺎﯿﻧ ﺩﺭﻮﻣ ﯼﮋﺗﺍﺮﺘﺳﺍ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ، ﺩﻮﺧ ﺭﺎﮐ ﺯﺍ ﯽﺸﺨﺑ ﻥﺍﻮﻨﻋ ﻪﺑ ﺎﻣﺍ

name: Run Tests

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
  workflow_call:
  workflow_dispatch:

jobs:
  testing:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]

:ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ ﻩﮋﯾﻭ ﺮﯿﻐﺘﻣ ﻮﺤﻧ ﮏﯾ ﺯﺍ ﻩﺩﺎﻔﺘﺳﺍ ﺎﺑ ﺎﻫﻪﺨﺴﻧ ﻦﯾﺍ ﺯﺍ ﺪﯿﻫﺍﻮﺧﯽﻣ

name: Run Tests

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
  workflow_call:
  workflow_dispatch:

jobs:
  testing:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]

    steps:
      - uses: actions/checkout@v4
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}
          cache: "pip"

.ﺖﺳﺍ ﺪﯿﻔﻣ ،ﺩﻮﺷ ﯽﻣ ﺍﺮﺟﺍ ﻥﻮﺘﯾﺎﭘ ﻒﻠﺘﺨﻣ ﻪﺨﺴﻧ ﺞﻨﭘ ﯼﺍﺮﺑ ﻪﻠﺣﺮﻣ ﻦﯾﺍ ﻪﮑﻨﯾﺍ ﻪﺑ ﻪﺟﻮﺗ ﺎﺑ .

.ﺲﯾﺮﺗﺎﻣ ﺭﺩ ﻩﺪﺷ ﻒﯾﺮﻌﺗ ﻪﺨﺴﻧ ﺪﯿﻨﮐ ﻪﻌﺟﺍﺮﻣ -code> Python> ﻪﺑ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ﻥﻮﻨﮐ

GitHub ﯼﮋﺗﺍﺮﺘﺳﺍ ﺯﺍ ﯽﺸﺨﺑ ﻥﺍﻮﻨﻋ ﻪﺑ ﺲﯾﺮﺗﺎﻣ ﻒﯾﺮﻌﺗ ﺎﺑ .ﺖﺳﺍ ﺩﺭﺍﻮﻣ ﻦﯾﺍ ﺯﺍ ﯽﮑﯾ ﺲﯾﺮﺗﺎﻣ

:ﻝﺎﺜﻣ ﻥﺍﻮﻨﻋ ﻪﺑ .ﺪﯿﻫﺩ ﻡﺎﺠﻧﺍ ﻞﻣﺎﻋ ﻢﺘﺴﯿﺳ ﻒﻠﺘﺨﻣ ﯼﺎﻫ ﻪﺨﺴﻧ ﺎﺑ ﺍﺭ ﺭﺎﮐ ﻦﯿﻤﻫ ﺪﯿﻧﺍﻮﺗ ﯽﻣ

strategy:
  matrix:
    os: [ubuntu-latest, windows-latest]

.ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ ﺪﯾﺍ ﻩﺩﺮﮐ ﻒﯾﺮﻌﺗ matrix.os ﺎﺑ ﺲﯾﺮﺗﺎﻣ ﺭﺩ ﻪﮐ

.ﺪﯿﻨﮐ ﻞﯿﻤﮑﺗ ﻞﻣﺎﮐ ﺭﻮﻃ ﻪﺑ ﺍﺭ ﺶﯾﺎﻣﺯﺁ ﺭﺎﮐ ﺵﺩﺮﮔ ﻪﮐ ﺖﺳﺍ ﻩﺪﯿﺳﺭ ﻥﺁ ﻥﺎﻣﺯ ،ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ

ﺖﺴﺗ ﺭﺎﮐ ﺵﺩﺮﮔ ﻥﺩﺮﮐ ﯽﯾﺎﻬﻧ

.ﺪﻨﮐ ﺍﺮﺟﺍ ﺍﺭ pytest ﺖﯾﺎﻬﻧ ﺭﺩ ﻭ ﺪﻨﮐ ﺐﺼﻧ ﺍﺭ ﻩﺪﻨﻫﺩ ﻪﻌﺳﻮﺗ ﯼﺎﻫ ﯽﮕﺘﺴﺑﺍﻭ

:ﺪﯿﻨﮐ ﺐﺼﻧ ﺪﯾﺍ ﻩﺩﺮﮐ ﺐﺼﻧ ﺮﺗﺩﻭﺯ ﺍﺭ Ruff ﻪﮐ ﯽﺷﻭﺭ ﻥﺎﻤﻫ ﻪﺑ ﺍﺭ ﺎﻬﻧﺁ ﺪﯿﻧﺍﻮﺗ ﯽﻣ

name: Run Tests

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
  workflow_call:
  workflow_dispatch:

jobs:
  testing:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]

    steps:
      - uses: actions/checkout@v4
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}
          cache: "pip"

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          python -m pip install .[dev]

:ﺖﺳﺍ pytest ﯼﺍﺮﺟﺍ ﻩﺪﻧﺎﻣ ﯽﻗﺎﺑ ﻪﻠﺣﺮﻣ ﺎﻬﻨﺗ .ﺪﯾﺭﺍﺩ ﺯﺎﯿﻧ ﺯﺎﯿﻧ ﺩﺭﻮﻣ ﯼﺎﻫ

name: Run Tests

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
  workflow_call:
  workflow_dispatch:

jobs:
  testing:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]

    steps:
      - uses: actions/checkout@v4
      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v5
        with:
          python-version: ${{ matrix.python-version }}
          cache: "pip"

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          python -m pip install .[dev]

      - name: Run Pytest
        run: pytest

.ﺪﯿﻨﮐ ﺮﺸﺘﻨﻣ PYPI ﻪﺑ ﺍﺭ ﯼﺍ ﻪﺘﺴﺑ ﺭﺎﮐﺩﻮﺧ ﺭﻮﻃ ﻪﺑ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ﻪﻧﻮﮕﭼ ﻪﮐ ﺪﯾﺮﯿﮔ ﯽﻣ ﺩﺎﯾ ﻭ

PyPI ﺭﺩ ﺭﺎﮐﺩﻮﺧ ﺕﺭﻮﺻ ﻪﺑ ﺩﻮﺧ ﻪﺘﺴﺑ ﺭﺎﺸﺘﻧﺍ

.ﺩﻮﺷ ﻡﺍﺰﻋﺍ PYPI ﻪﺑ ﺪﻧﺍﻮﺗ ﯽﻣ ﻪﮐ ، ﺪﻨﮐ ﺪﯿﻟﻮﺗ ﺍﺭ ﻥﻮﺘﯾﺎﭘ ﻊﯾﺯﻮﺗ ﯼﺎﻫ ﻩﺪﻧﻭﺮﭘ ﺎﺗ ﺪﻨﮐ ﯽ

.ﺩﻮﺷ ﯽﻣ ﺎﻤﺷ ﺖﻗﻭ ﺭﺩ ﯽﯾﻮﺟ ﻪﻓﺮﺻ ﺚﻋﺎﺑ ، ﺩﻮﺧ ﺭﺎﮐ ﺵﺩﺮﮔ ﺭﺩ ﯽﻟﺎﻤﺘﺣﺍ ﺕﻻﺎﮑﺷﺍ ﺯﺍ ﯼﺮﯿﮔﻮﻠﺟ

:ﺖﺳﺍ ﻩﺪﺷ ﻩﺩﺭﻭﺁ deploy.yml ﻩﺪﻧﻭﺮﭘ ﯼﺍﺮﺑ ﺭﺎﮐ ﺵﺩﺮﮔ ﻞﺣﺍﺮﻣ ﺎﺠﻨﯾﺍ ﺭﺩ

  1. ﺪﯿﻨﮐ ﻢﯿﻈﻨﺗ ﯽﮕﺘﺴﺑﺍﻭ ﺩﺎﺠﯾﺍ ﻭ ﻥﻮﺘﯾﺎﭘ ﺐﺼﻧ ﺎﺑ ﺍﺭ ﻂﯿﺤﻣ
  2. ﺪﯾﺯﺎﺴﺑ ﺍﺭ ﻪﺘﺴﺑdist/ ﻪﺷﻮﭘ ﺭﺩ ﯽﺟﻭﺮﺧ ﯼﺎﻫ ﻞﯾﺎﻓ ﻥﺩﺍﺩ
  3. ﺪﯿﻨﮐ ﺮﺸﺘﻨﻣ ﺍﺭ ﻊﯾﺯﻮﺗ ﯼﺎﻫ ﻞﯾﺎﻓ ﺭﺩ PyPI
  4. ﺪﯿﻨﮐ ﺩﺎﺠﯾﺍ GitHub ﻪﺨﺴﻧ ﮏﯾ ﺪﺷ ﺮﺸﺘﻨﻣ ﺖﯿﻘﻓﻮﻣ ﺎﺑ ﺮﮔﺍ

.ﺪﯿﻨﮐ ﯽﻣ ﻪﺘﺷﻮﻧ ﺍﺭ ﺩﻮﺧ ﺭﺎﮐ ﺵﺩﺮﮔ ﺯﺍ ﯽﺑﻮﺧ ﺶﺨﺑ ﻭ ﺪﯾﺯﺍﺩﺮﭘ ﯽﻣ ﺖﺴﯿﻟ ﻝﻭﺍ ﺩﺭﻮﻣ ﻭﺩ ﻪﺑ ،ﯼ

ﻪﺘﺴﺑ ﺖﺧﺎﺳ ﻭ ﻢﯿﻈﻨﺗ

.ﺖﺴﯿﻧ ﻝﺁﻩﺪﯾﺍ Real Python Reader ﯼﺍﺮﺑ ﯽﻠﺻﺍ ﻪﺧﺎﺷ ﻪﺑ ﻥﺩﺍﺩ ﺭﺎﺸﻓ ﺎﯾ ﺪﯾﺪﺟ ﯽﻣﻮﻤﻋ

.ﺖﺳﺍ Git ، ﻩﺪﻨﻫﺩ ﻪﻌﺳﻮﺗ ﺖﺳﻭﺩ ﻦﯾﺮﺘﻬﺑ ﺯﺍ ﻩﺩﺎﻔﺘﺳﺍ ﻪﺨﺴﻧ ﺯﺍﺪﻧﺍ ﺖﺳﺩ ﺯﺍ ﺲﭘ ﯼﺍ ﻪﺨﺴﻧ ﻦﯿﻨ

Git ﮏﯾ ﻪﮐ ﺪﻫﺩ ﯽﻣ ﺍﺭ ﻥﺎﮑﻣﺍ ﻦﯾﺍ ﺎﻤﺷ ﻪﺑ commit ﺖﺳﺍ ﺪﯾﺪﺟ ﻪﺨﺴﻧ ﻒﯾﺮﻌﺗ ﯼﺍﺮﺑ ﯽﺑﺎﺨﺘﻧﺍ ﺭ

name: Publish to PyPI
on:
  push:
    tags:
      - "*.*.*"

.ﺩﺭﺍﺩ ﺖﻘﺑﺎﻄﻣ ﺮﮕﯾﺩ ﻪﺴﯾﻮﻧ ﮏﯾ ﺖﯾﺎﻬﻧ ﺭﺩ ﻭ ﺮﮕﯾﺩ ﺭﺎﺸﻋﺍ ﻪﻄﻘﻧ ﮏﯾ ،ﺮﮕﯾﺩ ﻪﺴﯾﻮﻧ ﮏﯾ ،(

.ﺩﻮﺑ ﺪﻫﺍﻮﺧ ﺮﺒﺘﻌﻣ ﺐﺴﭼﺮﺑ ﮏﯾ v1.0.0 ، ﻝﺎﺜﻣ ﻥﺍﻮﻨﻋ ﻪﺑ .ﺖﺳﺍ ﻪﺨﺴﻧ ﻒﻔﺨﻣ ﻪﮐ

:ﺪﯿﻨﮐ ﮓﺗ ﻪﺨﺴﻧ ﻡﺎﻧ ﺎﺑ ﺍﺭ commit ﮏﯾ ،ﺭﺎﮐ ﺵﺩﺮﮔ ﻦﯾﺍ ﯼﺯﺍﺪﻧﺍ ﻩﺍﺭ ﯼﺍﺮﺑ

$ git tag -a "1.0.0" -m "1.0.0"
$ git push --tags

:ﺪﯿﻨﮐ ﯽﻣ ﺐﺼﻧ ﺍﺭ ﺎﻫ ﯽﮕﺘﺴﺑﺍﻭ ﻭ ﻩﺩﺮﮐ ﻢﯿﻈﻨﺗ ﺍﺭ ﻂﯿﺤﻣ ، ﺪﻌﺑ ﻪﻠﺣﺮﻣ ﺭﺩ .ﺪﻨﮐ ﯽﻣ ﮏﯾﺮﺤﺗ ﺍ

name: Publish to PyPI
on:
  push:
    tags:
      - "*.*.*"

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: "3.13"

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install .[build]

    - name: Build package
      run: python -m build

.ﺪﻫﺩ ﯽﻣ ﺭﺍﺮﻗ dist ﻡﺎﻧ ﻪﺑ ﯼﺍ ﻪﺷﻮﭘ ﺭﺩ ﺍﺭ ﻊﯾﺯﻮﺗ ﯼﺎﻫ ﻩﺪﻧﻭﺮﭘ

.ﺪﯾﺭﺍﺩ ﻪﮕﻧ ﻦﻤﯾﺍ ﺍﺭ ﺩﻮﺧ Token PYPI API ﺪﯿﻧﺍﻮﺗ ﯽﻣ ﻪﻧﻮﮕﭼ ﻪﮐ ﺪﯿﻧﺍﺪﺑ ﺪﯾﺎﺑ ، ﺪﯾﻮﺷ ﺮﻘ

ﺪﯾﺭﺍﺩ ﻪﮕﻧ ﻦﻤﯾﺍ ﺍﺭ ﺩﻮﺧ ﯼﺎﻫﺯﺍﺭ

.ﺪﻨﮐ ﺍﺪﯿﭘ ﯽﺳﺮﺘﺳﺩ ﺱﺎﺴﺣ ﯼﺎﻫ ﻪﻣﺎﻧﺭﺎﺒﺘﻋﺍ ﻥﺁ ﻪﺑ secrets ﻪﻨﯿﻣﺯ ﺯﺍ ﻩﺩﺎﻔﺘ

.ﺪﻨﻨﮐ ﯽﻣ ﻞﯾﺪﺒﺗ GitHub ﯽﮔﮋﯾﻭ ﻦﯾﺍ ﺯﺍ ﻩﺩﺎﻔﺘﺳﺍ ﻩﻮﺤﻧ ﯼﺮﯿﮔﺩﺎﯾ ﯼﺍﺮﺑ ﻊﺒﻨﻣ ﻦﯾﺮﺘﻬﺑ ﻪﺑ ﺍﺭ

ﺎﻤﺷ ﻪﺘﺴﺑ ﺭﺍﺮﻘﺘﺳﺍ

:ﺪﯿﻨﮐ ﺍﺪﯿﭘ ﯽﺳﺮﺘﺳﺩ ﻥﺁ ﻪﺑ ﺭﺎﮐ ﺵﺩﺮﮔ ﺭﺩ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ، GitHub ﺯﺍﺭ ﮏﯾ ﻥﺍﻮﻨﻋ ﻪﺑ ﺩﻮﺧ API

name: Publish to PyPI
on:
  push:
    tags:
      - "*.*.*"

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: "3.13"

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install .[build]

    - name: Build package
      run: python -m build

    - name: Test publish package
      uses: pypa/gh-action-pypi-publish@release/v1
      with:
        user: __token__
        password: ${{ secrets.PYPI_API_TOKEN }}
        repository-url: https://test.pypi.org/legacy/

    - name: Publish package
      uses: pypa/gh-action-pypi-publish@release/v1
      with:
        user: __token__
        password: ${{ secrets.PYPI_API_TOKEN }}

.ﺪﻨﮐﯽﻣ ﻮﺠﺘﺴﺟ ﻪﺘﺴﺑ ﺯﺍ ﯼﺪﯾﺪﺟ ﻪﺨﺴﻧ ﺮﻫ ﻥﺩﺮﮐ ﺩﻮﻠﭘﺁ ﯼﺍﺮﺑ ﺎﻤﺷ dist

.ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ API scoped ﻪﻧﺎﺸﻧ ﮏﯾ ﺯﺍ ﺭﺎﮐﺩﻮﺧ ﺭﺎﺸﺘﻧﺍ ﯼﺍﺮﺑ ﻥﺁ ﯼﺎﺟ ﻪﺑ ﻪﮐ ﺖﺳﺍ ﻞﻤﻋ ﻦ

.ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ secrets.PYPI_API_TOKEN ﺪﻨﻧﺎﻣ ﯽﻔﺨﻣ ﻪﻨﯿﻣﺯ ﻪﺑ ﯽﺳﺮﺘﺳﺩ ﯼ

.ﺪﯿﻫﺩ ﯽﻣ ﻉﺎﺟﺭﺍ ﺭﺎﮐ ﺵﺩﺮﮔ ﻞﺧﺍﺩ ﺭﺩ ﻡﺎﻧ ﻥﺁ ﺯﺍ ﻩﺩﺎﻔﺘﺳﺍ ﺎﺑ ﺍﺭ ﻥﺁ ﺎﻤﺷ ﻦﯾﺍﺮﺑﺎﻨﺑ ، ﺖﺳﺍ

.ﺪﯿﻫﺩ ﻪﺋﺍﺭﺍ url-url ﻥﺰﺨﻣ ﮏﯾ ﺪﯾﺎﺑ ، test.pypi.org ﻪﺑ ﻪﺘﺴﺑ ﻥﺩﺍﺩ ﺭ

.ﺪﯿﻨﮐ ﯽﮔﺪﯿﺳﺭ ﻭ ﯽﯾﺎﺳﺎﻨﺷ ، ﺩﻮﺷ ﯽﺗﻼﮑﺸﻣ ﺩﺎﺠﯾﺍ ﺚﻋﺎﺑ ﺖﺳﺍ ﻦﮑﻤﻣ ﻪﮐ ﺍﺭ ﯽﻟﺎﻤﺘﺣﺍ ﺕﻼﮑﺸﻣ ،

.ﺪﯿﻨﮐ ﺮﺸﺘﻨﻣ ﺍﺭ ﺩﻮﺧ ﻪﺨﺴﻧ ﺪﻫﺩ ﯽﻣ ﻥﺎﮑﻣﺍ ﺎﻤﺷ ﻪﺑ ﻩﮊﻭﺮﭘ ﻡﺎﻧ ﯽﻧﺎﺳﺭﺯﻭﺭ ﻪﺑ .ﺪﯾﺭﺍﺪﻧ PYPI

:ﺪﯿﻨﮐ ﻪﻓﺎﺿﺍ ﻩﮊﻭﺮﭘ ﻡﺎﻧ ﺪﻧﻮﺸﯿﭘ ﻥﺍﻮﻨﻋ ﻪﺑ ﺍﺭ ﺩﻮﺧ ﯼﺮﺑﺭﺎﮐ ﻡﺎﻧ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ، ﻪﻧﻮﻤﻧ ﻥﺍﻮﻨ

[build-system]
requires      = ["setuptools>=61.0.0", "wheel"]
build-backend = "setuptools.build_meta"

[project]
name = "username-realpython-reader"
# ...

.ﺪﺷ ﺪﯿﻫﺍﻮﺧ ﺎﻨﺷﺁ GitHub ﻂﯿﺤﻣ ﯼﺎﻫﺮﯿﻐﺘﻣ ﺎﺑ ،ﺪﯿﻫﺩ ﻡﺎﺠﻧﺍ ﺍﺭ ﺭﺎﮐ ﻦﯾﺍ ﺪﯿﻧﺍﻮﺘﺑ ﻪﮑﻨﯾﺍ ﺯ

GitHub ﻂﯿﺤﻣ ﯼﺎﻫﺮﯿﻐﺘﻣ ﻪﺑ ﯽﺳﺮﺘﺳﺩ

.ﺪﯾﺭﺍﺩ ﯽﺳﺮﺘﺳﺩ ﻥﺁ ﻪﺑ ﻪﺸﯿﻤﻫ ﺯﺎﯿﻧ ﺕﺭﻮﺻ ﺭﺩ ﻪﮐ ﺖﺳﺎﻨﻌﻣ ﻥﺍﺪﺑ ﻦﯾﺍ .ﺪﻨﮐ ﯽﻣ ﺩﺎﺠﯾﺍ ﯽﻔﺨﻣ ﻪ

.ﺖﺳﺍ GITHUB_TOKEN ﻡﺎﻧ ﻪﺑ ﯽﻄﯿﺤﻣ ﺮﯿﻐﺘﻣ ﮏﯾ ﻢﯿﻈﻨﺗ ﺎﻬﻧﺁ ﺯﺍ ﯽﮑﯾ ﻪﮐ ﺩﺭﺍﺩ

:ﺪﺳﺭ ﯽﻣ ﺮﻈﻧ ﻪﺑ ﺭﺎﮐ ﺵﺩﺮﮔ ﺭﺩ ﻪﮐ ﺪﺳﺭ ﯽﻣ ﺮﻈﻧ ﻪﺑ ﺎﺠﻨﯾﺍ ﺭﺩ .ﺩﺮﮐ ﺩﺎﺠﯾﺍ GitHub ﻪﺨﺴﻧ ﺩﺎ

name: Publish to PyPI
on:
  push:
    tags:
      - "*.*.*"

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: "3.13"

    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install .[build]

    - name: Build package
      run: python -m build

    - name: Test publish package
      uses: pypa/gh-action-pypi-publish@release/v1
      with:
        user: __token__
        password: ${{ secrets.PYPI_API_TOKEN }}
        repository-url: https://test.pypi.org/legacy/

    - name: Publish package
      uses: pypa/gh-action-pypi-publish@release/v1
      with:
        user: __token__
        password: ${{ secrets.PYPI_API_TOKEN }}

    - name: Create GitHub Release
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: |
        gh release create ${{ github.ref_name }} ./dist/* --generate-notes

.ﺪﺷﺎﺑ ﻪﺘﺷﺍﺩ ﯽﺳﺮﺘﺳﺩ ﻪﻧﺎﻣﺮﺤﻣ ﻪﻨﯿﻣﺯ ﺩﻮﺧ ﻪﺑ ﺎًﻤﯿﻘﺘﺴﻣ ﺪﻧﺍﻮﺗﯽﻤﻧ GitHub CLI .ﺖﺷﺍﺩ

GitHub ﻡﺎﻧ ﻪﺑ ﻩﮋﯾﻭ ﻪﻨﯿﻣﺯ ﮏﯾ ﻪﺑ ﺪﻫﺩ ﯽﻣ ﻥﺎﮑﻣﺍ ﺎﻤﺷ ﻪﺑ ﻦﯿﻨﭽﻤﻫ github

(ﻊﺒﻨﻣ) .ﺪﺷ ﺭﺎﮐ ﺵﺩﺮﮔ ﯼﺍﺮﺟﺍ ﺚﻋﺎﺑ ﻪﮐ ﺐﺴﭼﺮﺑ ﺎﯾ ﻪﺧﺎﺷ ﻩﺎﺗﻮﮐ ﻡﺎﻧ

.ﺖﺳﺍ Git ﮓﺗ ﻡﺎﻧ ﺩﺭﻮﻣ ﻦﯾﺍ ﺭﺩ ﻪﮐ ،ﺩﻮﺷﯽﻣ ﻦﯾﺰﮕﯾﺎﺟ ،ﺪﻨﮐﯽﻣ ﯼﺯﺍﺪﻧﺍﻩﺍﺭ

.ﺪﻨﻫﺩﯽﻣ ﻥﺎﺸﯾﺎﻫﺖﮐﺭﺎﺸﻣ ﯼﺍﺮﺑ ﯼﺮﺑﺭﺎﮐ ﯼﺎﻫﻡﺎﻧ ﻭ ﺎﻫﺪﻧﻮﯿﭘ ﺎﺑ ﻥﺎﮔﺪﻨﺴﯾﻮﻧ

.ﺩﺮﮐ ﺶﯾﺍﺮﯾﻭ ﺩﺎﺠﯾﺍ ﺯﺍ ﺲﭘ ﺍﺭ ﺕﺍﺭﺎﺸﺘﻧﺍ ﻥﺍﻮﺗﯽﻣ ،ﺥﻮﺴﻨﻣ ﯼﺎﻫﻪﯿﻣﻼﻋﺍ ﺪﻨﻧﺎﻣ ،ﯽ

:ﺩﻮﺷ ﺍﺮﺟﺍ ﺖﯿﻘﻓﻮﻣ ﺎﺑ ﺪﯾﺎﺑ ﯽﯾﺎﻬﻧ ﺭﺍﺮﻘﺘﺳﺍ ﺭﺎﮐ ﺵﺩﺮﮔ ﻭ ،ﺪﯿﻨﮐ ﯼﺭﺍﺬﮔﺐﺴﭼﺮﺑ ﺍﺭ ﺩﻮﺧ

.ﺡﻼﻄﺻﺍ ﻪﺑ ،ﺎﻣ CI/CD ﮏﯿﮐ ﯼﻭﺭ ﺱﻼﯿﮔ .ﺪﯿﻨﮐ ﻪﻓﺎﺿﺍ Real Python Reader ﻪﺑ ﺍﺭ ﺮﮕﯾﺩ ﺭﺎﮐ

.ﺖﺧﻮﻣﺁ ﺪﯿﻫﺍﻮﺧ ﺍﺭ ﯽﮕﺘﺴﺑﺍﻭ ﻭ ﯽﺘﯿﻨﻣﺍ ﯼﺎﻫﯽﻧﺎﺳﺭﺯﻭﺭﻪﺑ ﯼﺯﺎﺳﺭﺎﮐﺩﻮﺧ ﯼﺍﺮﺑ Depe

ﯽﮕﺘﺴﺑﺍﻭ ﻭ ﯽﺘﯿﻨﻣﺍ ﯼﺎﻫﯽﻧﺎﺳﺭﺯﻭﺭﻪﺑ ﯼﺯﺎﺳﺭﺎﮐﺩﻮﺧ

.ﺖﺳﺍ ﺭﺍﻮﺷﺩ ﺎﻫ ﯽﮕﺘﺴﺑﺍﻭ ﺖﯾﺮﯾﺪﻣ ﻭ ﻆﻔﺣ ﻦﯾﺍﺮﺑﺎﻨﺑ ، ﺪﻨﺘﺴﻫ ﯽﻧﺎﺳﺭﺯﻭﺭ ﻪﺑ ﻭ ﺮﯿﯿﻐﺗ ﻝﺎﺣ ﺭﺩ

!ﺪﯿﻨﮐ ﺩﺭﺍﻭ ﺍﺭ Endepabot .ﺩﺭﺍﺩ ﻞﮑﺸﻣ ﻭﺩ ﺮﻫ ﻪﺑ ﮏﻤﮐ ﯼﺍﺮﺑ ﺪﯿﻔﻣ ﯼﺭﺍﺰﺑﺍ Github ، ﻪﻧﺎﺘ

.ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ ﺪﯾﺪﺟ ﯼﺎﻫ ﯽﮔﮋﯾﻭ ﻥﺩﺮﮐ ﻪﻓﺎﺿﺍ ﺎﯾ ﺪﮐ ﺩﻮﺒﻬﺑ ﯼﺍﺮﺑ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ﺎﻤﺷ ﺖﻗﻭ ﺭﺩ

:ﺯﺍ ﺪﻨﺗﺭﺎﺒﻋ ﻑﺪﻫ ﻭﺩ .ﺩﺭﺍﺩ ﯽﯾﺍﺪﺘﺑﺍ ﺎًﺘﺒﺴﻧ ﺕﺎﻣﺍﺰﻟﺍ Real Python Reader ﻪﺘﺴﺑ ،ﺎﺠﻨﯾﺍ

  1. .ﺖﺳﺍ ﺱﺮﺘﺳﺩ ﺭﺩ ﯽﮕﺘﺴﺑﺍﻭ ﯽﻧﺎﺳﺭﺯﻭﺮﺑ ﺕﺭﻮﺻ ﺭﺩ
  2. .ﺭﺎﮐ ﺵﺩﺮﮔ ﺮﯾﺎﺳ ﯽﻧﺎﺳﺭﺯﻭﺭ ﻪﺑ ﻪﺑ ﮏﻤﮐ ﯼﺍﺮﺑ

.<ﺪﮐ //> ﺭﺎﮐ ﺵﺩﺮﮔ/Code> .github> ﺭﺩ ﻪﻧ ، ﺪﻨﮐ ﯽﻣ ﯽﮔﺪﻧﺯ ﺩﻮﺧ .g

:ﺪﯾﺯﺍﺪﻨﯿﺑ ﯽﻫﺎﮕﻧ Dependabot ﯽﯾﺎﻬﻧ ﯼﺪﻨﺑﺮﮑﯿﭘ ﻪﺑ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ،ﺪﯿﺘﺴﻫ ﺎﻨﺷﺁ ﺮﺘﺸﯿﺑ YAML

---
version: 2
updates:
  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "weekly"

  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"

.ﺪﻨﮐ ﯽﻣ ﻒﯾﺮﻌﺗ ﺭﺎﺑ ﺪﻨﭼ ﻦﯿﻨﭽﻤﻫ ﻭ ، ﺪﻨﮐ ﻮﺠﺘﺴﺟ ﻥﺁ ﺭﺩ ﺪﯾﺎﺑ ﺖﺳﺮﻬﻓ ﻡﺍﺪﮐ ﻪﮑﻨﯾﺍ ﺩﺭﻮﻣ ﺭﺩ

.ﺪﻨﮐ ﻩﺎﮕﻧ ﺍﺭ ﺎﺠﻧﺁ ،ﺖﺳﺍ ﻩﺪﺷ ﻩﺩﺍﺩ ﻥﺎﺸﻧ "/") ﻮﻠﺟ ﻪﺑ ﻭﺭ ﺶﻠﺳﺍ ﺎﺑ ﻪﮐ ﺭﻮ

.ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ ﯽﮕﺘﻔﻫ ﺯﺍ ﺪﯿﻧﺍﻮﺗ ﯽﻣ ،ﺮﺿﺎﺣ ﻝﺎﺣ ﺭﺩ .ﺖﺳﺍ ﻩﺩﺎﺳ ﻭ ﻊﯾﺮﺳ ﺮﯿ

.ﺪﯿﺷﺎﺑ ﻥﺁ ﻥﺍﺮﮕﻧ ﺪﯾﺎﺑ ﻪﮐ ﺖﺳﺍ ﯼﺮﺘﻤﮐ ﺰﯿﭼ ﮏﯾ ﻭ ﺪﯿﺷﺎﺑ ﻩﺍﺮﻤﻫ ﺭﺎﮐﺩﻮﺧ ﺭﻮﻃﻪﺑ GitHu

!ﻩﺪﻧﺮﺑ ﺮﺑﺍﺮﺑ ﻭﺩ .ﺩﺭﺬﮔ ﯽﻣ ﺍﺭ ﺎﻤﺷ ﺶﯾﺎﻣﺯﺁ ﻭ ﮏﭼ ﻪﺑ ﻪﺘﺴﺑﺍﻭ ﺕﺍﺮﯿﯿﻐﺗ ﻪﮐ ﺩﻮﺷ ﻞﺻﺎﺣ ﻥﺎﻨﯿ

ﯼﺪﻌﺑ ﻞﺣﺍﺮﻣ

.ﺮﮕﯾﺩ ﺩﺭﺍﻮﻣ ﻭ ﻪﺑ ﻦﯿﺑﺯﺎﺑ ﻥﺩﻭﺰﻓﺍ ،ﯽﻤﯾﺪﻗ ﻞﺋﺎﺴﻣ ﺖﯾﺮﯾﺪﻣ ،ﯼﺭﺍﺬﮔ ﺐﺴﭼﺮﺑ ،ﻞ

:ﺖﺳﺍ ﻩﺪﻣﺁ CI/CD ﻥﺎﮔﺪﻨﻫﺩﻪﺋﺍﺭﺍ ﺮﯾﺎﺳ ﺯﺍ ﯽﻫﺎﺗﻮﮐ ﺖﺳﺮﻬﻓ ﺎﺠﻨﯾﺍ ﺭﺩ ،ﺪﯿﻨﮐ ﻥﺎﺤﺘﻣﺍ ﺍ

  • ﺐﻠﺘﯿﮔ
  • ﺩﺭﻮﺟﻻ ﻪﻟﻮﻟ ﻁﻮﻄﺧ
  • CircleCI
  • ﯽﺳ ﺲﯾﻭﺍﺮﺗ

.ﺪﯾﺭﺍﺬﮕﺑ ﮎﺍﺮﺘﺷﺍ ﻪﺑ ﺍﺭ ﺩﻮﺧ ﺕﺎﯿﺑﺮﺠﺗ ﻭ ﺪﯿﻨﮐ ﻥﺎﯿﺑ ﺕﺍﺮﻈﻧ ﺭﺩ ﺍﺭ ﻥﺁ ﺎًﻔﻄﻟ ،ﺪﯿﻨﮐ ﯽﻣ ﻩﺩﺎ

ﻥﺎﯾﺎﭘ

.ﺪﯿﻨﮐ ﺩﺎﺠﯾﺍ ﺍﺪﺘﺑﺍ ﺯﺍ ﺍﺭ ﺩﻮﺧ ﺭﺎﮐ ﺵﺩﺮﮔ ﻭ ﺪﯿﻨﮐ ﺭﺎﮐ ﺩﻮﺧ ﯼﺎﻫ ﻪﺘﺴﺑ ﻭ ﺎﻫ ﻩﮊﻭﺮﭘ ﺎﺑ ﻪﮐ

ﻪﻧﻮﮕﭼ ﻪﮐ ﺪﯿﺘﻓﺮﮔ ﺩﺎﯾ ﺎﻤﺷ ، ﺵﺯﻮﻣﺁ ﻦﯾﺍ ﺭﺩ:

  • ﺪﯿﻨﮐ ﻩﺩﺎﻔﺘﺳﺍ ﺭﺎﮐ ﺵﺩﺮﮔ ﺕﺎﻣﺍﺪﻗﺍ ﺯ
  • ﻥﻮﺘﯾﺎﭘ ﻩﮊﻭﺮﭘ ﮏﯾ ﺭﺍﺮﻘﺘﺳﺍ ﻭ ﺶﯾﺎﻣﺯﺁ ، ﺖﻨﯿﻟ ﻥﻮﯿﺳﺎﻣﻮﺗﺍ
  • ﻦﻤﯾﺍ ﯼﺎﻫ ﻪﻣﺎﻧﺭﺎﺒﺘﻋﺍ ﻥﻮﯿﺳﺎﻣﻮﺗﺍ ﯼﺍﺮﺑ ﻩﺩﺎﻔﺘﺳﺍ ﺩﺭﻮﻣ
  • ﺪﯿﻨﮐ ﺭﺎﮐﺩﻮﺧ ﺍﺭ ﯽﮕﺘﺴﺑﺍﻭ ﻭ ﯽﺘﯿﻨﻣﺍ ﯼﺎﻫ ﯽﻧﺎﺳﺭﺯﻭﺭ ﻪﺑ

.ﺪﯾﺭﺍﺩ ﯽﺘﺳﺩ ﻪﻠﺧﺍﺪﻣ ﻞﻗﺍﺪﺣ ﺎﺑ ﺪﯾﺪﺟ ﯼﺎﻫﻪﺨﺴﻧ ﺭﺍﺮﻘﺘﺳﺍ ﻭ ﺎﻫﺶﯾﺎﻣﺯﺁ ﯼﺍﺮﺟﺍ ،ﺪ

.ﺪﯾﻮﺷ ﺭﺎﮔﺯﺎﺳ ﺎﻫﺯﺎﯿﻧ ﺮﯿﯿﻐﺗ ﺎﺑ ﯽﺘﺣﺍﺭ ﻪﺑ ﺎﺗ ﺪﻫﺩ ﯽﻣ ﻥﺎﮑﻣﺍ ﺎﻤﺷ ﻪﺑ GitHub ﺕﺎﻣﺍﺪﻗﺍ ﯼﺮ

.ﺪﯿﺘﺴﻫ ﺰﻬﺠﻣ ﺩﻮﺧ ﻥﻮﺘﯾﺎﭘ ﯼﺎﻫ ﻩﮊﻭﺮﭘ ﺪﻣﺁﺭﺎﮐ ﺱﺎﯿﻘﻣ ﻭ ﺖﯾﺮﯾﺪﻣ ﯼﺍﺮﺑ ﺎﻤﺷ ، ﺎﻫ ﻩﻮﯿﺷ ﻭ ﺎﻫ


تمامی حقوق محفوظ است. © Python-3.com • 2024-2025