[Travis-CI | flake8] Build a Backend REST API - 6
注意事項
次の事項はコンダの仮想環境に関する部分で、よく知っている人はスキップしてください.
ノートパソコンはWindows Python環境であり、AWS EC 2はコンダ仮想環境であり、現在使用中であり、統一されたPythonバージョンではない.
だからこれからの依存関係が心配なので、私たちは先に次の仕事をしました.
私は過程で知った命令と方法を一段に整理して、本題に入ります.
Pythonバージョンの確認
python -V
通常のFISUNまたはコンダで同じバージョンを確認できます
Conda仮想環境の作成とバージョンの検証
conda create-n仮想環境名python=バージョン番号
python -V
ex. python 3.9.1
一つ一つ変えたくないなら、デフォルトのconda pythonを変えることができます.
conda install python=バージョン番号#はグローバルインストールの部分のようです?!
これにより、仮想環境を作成する際に、必要なバージョンをグローバル(仮想環境に頻繁にインストールされているやつでも)に設定して他のPythonバージョンに指定することができます.これはちょっと...軽減できます.ただし、特定のバージョンが降格または指定されている場合は、作成する必要があります.
本題
Travis-CIの紹介
小龍煥が書いた文章Travis-CIの紹介
ファイルの作成
.travis.yml
Dockerfileに似た構文構造があります.yamlファイルです
結論として、以下に示す.travis.yml
隠しファイルをルートディレクトリに作成します.language: python # 어떤 언어를 사용할지 정의
python: # 사용 할 언어의 구체적 버전 정의
- "3.?"
services: # 서비스 정의
- docker
before_script: pip install docker-compose # 자동화 명령이 실행되기 전 밑 작업이필요해요.
script:
- docker-compose run app sh -c "python manage.py test && flake8"
# TDD로 진행하는 만큼 test 명령어와 linting 툴중에 하나인 flake8을 이용하게합니다.
そのため、pushのたびにTravis CIはGithub repoの状態変化に気づき、自動的にテストし、flak 8ツールで裁断します.
git add .
git commit -m '~~~'
Git pushの場合、TravisはTravisファイルをチェックし、設定時に構築します.
悲しいけど次の間違いがあった他の人が一度成功することを望んでいます.(sleek 8でエラーが見つかったようですが、exclude変数で右項目の値をソートしたときにカンマが失われたエラーが発生しました.)
まずflake 8を作成
/recipe-app/app/.flake8[flake8]
exclude =
migrations,
__pycache__,
manage.py,
settings.py
紹介する
チョン・ヒョンジュンの書いた文章flake8.
鱗片8は何ですか。
flake 8は、フォルダ内のPythonファイルまたは特定のPythonファイルのコードスタイルをチェックするためのPythonパッケージです.デフォルトでは、PEP 8(Python強化Proposal 8)のコードスタイルガイドに従ってチェックするか、必要なガイドだけを設定してチェックすることもできます.
flake 8のインストール
以下のコマンドで設定できます.
$ pip install flake8
チェックflake 8
まず,会議の符号化を考慮せずにPythonコードを勝手に作成する.test.py
def print_helloworld():
print("Hello world!")
print_helloworld()
a=1
a+=1
print(a)
次にflake 8を用いてテストを行う.pyのコード会議をチェックさせてください.
$ flake8 test.py
ファイル名にはディレクトリ名を含めることができ、ディレクトリ名が含まれている場合は、ディレクトリ内のすべてのPythonファイルをチェックします.次は検査結果です.test.py:2:1: W191 indentation contains tabs
test.py:5:2: E225 missing whitespace around operator
test.py:6:2: E225 missing whitespace around operator
test.py:7:9: W292 no newline at end of file
結果には、ファイル名、行番号、番号、アドバイザコード(?)、順番にガイドの説明をします.
鱗片8の設定
プロジェクトごとに異なるルールを作成するか、いくつかのルールのみをチェックする必要があります.このためには、プロファイルを作成する必要があります.
まず、デフォルトのグローバルチェックを設定するには、ウィンドウでユーザーのデフォルトフォルダを設定します.MacまたはLinuxで構成フォルダにあるflakeファイル(~/.flake)を作成する必要があります.flakeファイル(~/config/.flake)を作成する必要があります.
1つのディレクトリでチェックを設定するには、そのルートディレクトリにチェックを設定します.flake8, tox.ini, setup.cfgのファイルを作成するだけです.
プロファイルの例を次に示します..flake8
[flake8]
# F812: list comprehension redefines ...
# H101: Use TODO(NAME)
# H202: assertRaises Exception too broad
# H233: Python 3.x incompatible use of print operator
# H301: one import per line
# H306: imports not in alphabetical order (time, os)
# H401: docstring should not start with a space
# H403: multi line docstrings should end on a new line
# H404: multi line docstring should start without a leading new line
# H405: multi line docstring summary not separated with an empty line
# H501: Do not use self.__dict__ for string formatting
ignore = F812,H101,H202,H233
exclude =
# No need to traverse our git directory
.git,
# There's no value in checking cache directories
__pycache__,
# The conf file is mostly autogenerated, ignore it
docs/source/conf.py,
# The old directory contains Flake8 2.0
old,
# This contains our built documentation
build,
# This contains builds of flake8 that we don't want to check
dist
max-complexity = 10
重要なのは一番上に[flake8]
を置くことです.これをしなければflake 8とは思えないからです.ignore
に使用しないブートを入れ、exclude
にチェックする必要のないファイルまたはディレクトリパスを入れます.
詳細な設定方法については、flake 8のホームページを参照してください.
CI/CDとは?
CI
「継続的な統合」とは、開発者に自動化されたプロセスを提供する継続的な統合です.CIが正常に実装されると、アプリケーションの新しいコード変更が定期的に構築され、テストされ、共有リポジトリに統合され、複数の開発者がアプリケーション開発に関連するコードを同時に使用する場合に競合する可能性のある問題を解決します.
CD
「CD」とは、「継続的な配信」および/または「継続的な導入」を意味する.これにより、手動プロセスによってアプリケーションの納品速度に影響を及ぼすオペレーティングチームのプロセスオーバーロードの問題を解決できます.最終的には、パイプラインの後続のステップを自動化することで、継続的な導入により、継続的な納品のメリットが利用されます.
-redhatを参照してください。com
コメントリンク
https://blog2.lucent.me/vim/vim-flake8/
https://flake8.pycqa.org/en/latest/index.html#
Reference
この問題について([Travis-CI | flake8] Build a Backend REST API - 6), 我々は、より多くの情報をここで見つけました
https://velog.io/@hyeseong-dev/drf-ci-Build-a-Backend-REST-API-5
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
language: python # 어떤 언어를 사용할지 정의
python: # 사용 할 언어의 구체적 버전 정의
- "3.?"
services: # 서비스 정의
- docker
before_script: pip install docker-compose # 자동화 명령이 실행되기 전 밑 작업이필요해요.
script:
- docker-compose run app sh -c "python manage.py test && flake8"
# TDD로 진행하는 만큼 test 명령어와 linting 툴중에 하나인 flake8을 이용하게합니다.
[flake8]
exclude =
migrations,
__pycache__,
manage.py,
settings.py
def print_helloworld():
print("Hello world!")
print_helloworld()
a=1
a+=1
print(a)
test.py:2:1: W191 indentation contains tabs
test.py:5:2: E225 missing whitespace around operator
test.py:6:2: E225 missing whitespace around operator
test.py:7:9: W292 no newline at end of file
[flake8]
# F812: list comprehension redefines ...
# H101: Use TODO(NAME)
# H202: assertRaises Exception too broad
# H233: Python 3.x incompatible use of print operator
# H301: one import per line
# H306: imports not in alphabetical order (time, os)
# H401: docstring should not start with a space
# H403: multi line docstrings should end on a new line
# H404: multi line docstring should start without a leading new line
# H405: multi line docstring summary not separated with an empty line
# H501: Do not use self.__dict__ for string formatting
ignore = F812,H101,H202,H233
exclude =
# No need to traverse our git directory
.git,
# There's no value in checking cache directories
__pycache__,
# The conf file is mostly autogenerated, ignore it
docs/source/conf.py,
# The old directory contains Flake8 2.0
old,
# This contains our built documentation
build,
# This contains builds of flake8 that we don't want to check
dist
max-complexity = 10
Reference
この問題について([Travis-CI | flake8] Build a Backend REST API - 6), 我々は、より多くの情報をここで見つけました https://velog.io/@hyeseong-dev/drf-ci-Build-a-Backend-REST-API-5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol