🔄
Continuous İntegration (CI)
Python ve GitHub üzerinde sürekli entegrasyon, otomatik testler ve pytest kullanımı

👀 Hızlı Bakış

📂 CI Dizini Oluşturma

    👨‍💼 Daha verimli çalışma adına CI dosyaları aynı dizinde toplanır

📃 Gereksinimleri tanımlama

requirements.txt
1
pytest
2
wheel
3
flake8
Copied!

🏗️ Kurulum işlemlerini tanımlama

✴️ Windows
🐧 Linux
ci\install.bat
1
python -m venv venv
2
call venv\Scripts\activate.bat
3
python -m pip install --upgrade pip
4
python -m pip install --upgrade -r .\ci\requirements.txt
5
python -m pip install --upgrade .
6
call deactivate
7
Copied!
ci/install.sh
1
python3 -m pip install --upgrade pip
2
python3 -m pip install --upgrade -r ./ci/requirements.txt
3
python3 -m pip install --upgrade .
4
Copied!

⚗️ Test işlemlerini tanımlama

✴️ Windows
🐧 Linux
ci\test.bat
1
call venv\Scripts\activate.bat
2
pytest
3
call deactivate
4
Copied!
ci/test.sh
1
pytest
2
Copied!

🧪 Kod kalitesini test etme

✴️ Windows
🐧 Linux
ci/quality_test.bat
1
call venv\Scripts\activate.bat
2
flake8 --exclude=venv* --statistics
3
call deactivate
4
Copied!
ci/quality_test.sh
1
flake8 --exclude=venv* --statistics
2
Copied!

👷‍♂️ Derleme işlemleri

✴️ Windows
🐧 Linux
ci/build.bat
1
call venv\Scripts\activate.bat
2
python setup.py sdist bdist_wheel
3
call deactivate
4
Copied!
ci/build.sh
1
python3 setup.py sdist bdist_wheel
2
Copied!

🛰️ Yayınlama işlemleri

✴️ Windows
🐧 Linux
ci/upload.bat
1
call venv\Scripts\activate.bat
2
twine upload dist/*
3
call deactivate
4
Copied!
ci/upload.sh
1
twine upload dist/*
2
Copied!

🔀 GitHub Workflow Oluşturma

.github/workflows/pythonpackage.yml
1
name: 🕵️‍♂️ Continuous integration
2
3
on: [pull_request]
4
5
jobs:
6
build:
7
runs-on: ${{ matrix.os }}
8
strategy:
9
max-parallel: 4
10
fail-fast: false # 1 test başarısız olursa diğerleri kapanmaz
11
matrix:
12
python-version: [3.8]
13
os: [windows-latest, ubuntu-latest, macos-latest]
14
include:
15
- os: windows-latest
16
INSTALL: .\ci\install.bat
17
TEST: .\ci\test.bat
18
QUALITY_TEST: .\ci\quality_test.bat
19
20
- os: macos-latest
21
INSTALL: |
22
chmod u+x ./ci/install.sh &&
23
./ci/install.sh
24
TEST: |
25
chmod u+x ./ci/test.sh &&
26
./ci/test.sh
27
QUALITY_TEST: |
28
chmod u+x ./ci/quality_test.sh &&
29
./ci/quality_test.sh
30
31
- os: ubuntu-latest
32
INSTALL: |
33
chmod u+x ./ci/install.sh &&
34
./ci/install.sh
35
TEST: |
36
chmod u+x ./ci/test.sh &&
37
./ci/test.sh
38
QUALITY_TEST: |
39
chmod u+x ./ci/quality_test.sh &&
40
./ci/quality_test.sh
41
42
steps:
43
- uses: actions/[email protected]
44
45
- name: 🏗️ Python ${{ matrix.python-version }} setup
46
uses: actions/setup-[email protected]
47
with:
48
python-version: ${{ matrix.python-version }}
49
50
- name: 📦 Installing dependencies
51
run: |
52
${{matrix.INSTALL}}
53
54
- name: ⚗️ Functional testing
55
run: |
56
${{matrix.TEST}}
57
58
- name: 🧐 Python code style testing
59
run: |
60
${{matrix.QUALITY_TEST}}
61
Copied!

👮‍♂️ Branch Korumasını Ayarlama

    ⚙️ Projenizin Settings kısmından Branch sekmesinde Add rule butonuna tıklayın
    💁‍♂️ Eğer zaten bir kural varsa, Edit butonuna tıklayabilirsiniz
    👇 Açılan ekranda alttaki resimde kırmızı oklarla gösterilen ayarlamaları yapın
    🚀 Artık durum kontrolü yapılmadan projeye merge edilemeyecek

🔗 Faydalı Linkler

🚀 Bu alandaki bağlantılar YEmoji ~Bağlantılar yapısına uygundur
Last modified 1yr ago