Dalam landskap pembangunan perisian yang sentiasa berkembang, mengekalkan kualiti dan ketekalan kod adalah penting. Salah satu cara paling berkesan untuk memastikan pangkalan kod anda kekal bersih dan mematuhi amalan terbaik ialah dengan mengautomasikan proses pemformatan dan linting. Dalam catatan blog ini, kami akan meneruskan penyediaan aliran kerja Tindakan GitHub yang direka untuk mengautomasikan pemformatan dan linting kod untuk projek Python. Kami akan meneroka konfigurasi dan langkah yang terlibat serta cara ia boleh menjimatkan masa anda dan mengurangkan ralat dalam kod anda.
Tindakan GitHub ialah alat berkuasa yang membolehkan anda mengautomasikan aliran kerja terus dalam repositori GitHub anda. Daripada menjalankan ujian hingga menggunakan aplikasi, Tindakan GitHub boleh mengendalikan pelbagai tugas berdasarkan peristiwa seperti tolakan, permintaan tarik dan banyak lagi. Dalam contoh ini, kami akan menumpukan pada mengautomasikan pemformatan dan linting kod menggunakan Tindakan GitHub.
Berikut ialah pandangan terperinci pada aliran kerja Tindakan GitHub untuk pemformatan dan linting kod Python:
name: Format and Lint on: push: branches: - master pull_request: branches: - master jobs: format-and-lint: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.9' # Specify the Python version to use - name: Install dependencies run: | python -m pip install --upgrade pip pip install black isort autopep8 - name: Run Black run: black . - name: Run isort run: isort . - name: Run autopep8 run: autopep8 --in-place --recursive . - name: Commit changes if any env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | # Check for changes git diff --exit-code || { echo "Changes detected. Committing changes..." # Configure Git user git config --global user.name "github-actions" git config --global user.email "actions@github.com" # Stage all changes git add . # Commit changes git commit -m "Apply code formatting and linting fixes" # Push changes git push origin HEAD }
on: push: branches: - master pull_request: branches: - master
Aliran kerja dicetuskan pada permintaan tolak dan tarik ke cawangan induk. Ini memastikan bahawa setiap perubahan pada cawangan utama atau permintaan tarik diformat dan digariskan secara automatik.
jobs: format-and-lint: runs-on: ubuntu-latest
Tugas dijalankan pada versi terkini Ubuntu. Ini ialah persekitaran di mana pemformatan dan linting anda akan berlaku.
- name: Checkout code uses: actions/checkout@v3
Langkah ini menyemak kod repositori anda, membenarkan langkah seterusnya untuk mengakses dan mengubah suainya.
- name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.9'
Langkah ini menyediakan Python 3.9 dalam persekitaran aliran kerja. Laraskan ini agar sepadan dengan versi Python yang digunakan dalam projek anda.
- name: Install dependencies run: | python -m pip install --upgrade pip pip install black isort autopep8
Di sini, pakej Python penting untuk pemformatan dan linting—hitam, isort dan autopep8—dipasang.
- name: Run Black run: black . - name: Run isort run: isort . - name: Run autopep8 run: autopep8 --in-place --recursive .
Langkah ini menggunakan pemformatan kod menggunakan hitam, isort untuk pengisihan import dan autopep8 untuk pelarasan pemformatan tambahan.
- name: Commit changes if any env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git diff --exit-code || { echo "Changes detected. Committing changes..." git config --global user.name "github-actions" git config --global user.email "actions@github.com" git add . git commit -m "Apply code formatting and linting fixes" git push origin HEAD }
Jika pemformatan atau perubahan linting dibuat, langkah ini dilakukan dan menolaknya kembali ke repositori. Ia menggunakan token GitHub untuk pengesahan dan mengkonfigurasi Git dengan pengguna generik untuk komitmen.
Melaksanakan aliran kerja Tindakan GitHub untuk pemformatan dan linting ialah cara pintar untuk mengekalkan kualiti dan ketekalan kod merentas projek anda. Dengan mengautomasikan proses ini, anda boleh lebih memfokuskan pada menulis kod dan kurang pada isu pemformatan. Aliran kerja yang disediakan di sini berfungsi sebagai asas yang kukuh, tetapi anda boleh menyesuaikannya dengan lebih lanjut berdasarkan keperluan khusus projek anda. Mula menyepadukan aliran kerja ini ke dalam repositori anda hari ini dan rasai manfaat pengurusan kualiti kod automatik!
Atas ialah kandungan terperinci Memformat dan Melinting Kod Python Anda dengan Tindakan GitHub. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!