mirror of
https://github.com/freqtrade/freqtrade.git
synced 2026-02-04 21:30:24 +00:00
Merge pull request #9558 from freqtrade/pyproject_toml
Pyproject toml, improve release CI
This commit is contained in:
100
.github/workflows/ci.yml
vendored
100
.github/workflows/ci.yml
vendored
@@ -122,7 +122,7 @@ jobs:
|
||||
details: Freqtrade CI failed on ${{ matrix.os }}
|
||||
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
|
||||
|
||||
build_macos:
|
||||
build-macos:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
@@ -229,7 +229,7 @@ jobs:
|
||||
details: Test Succeeded!
|
||||
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
|
||||
|
||||
build_windows:
|
||||
build-windows:
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
@@ -299,7 +299,7 @@ jobs:
|
||||
details: Test Failed
|
||||
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
|
||||
|
||||
mypy_version_check:
|
||||
mypy-version-check:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -324,7 +324,7 @@ jobs:
|
||||
python-version: "3.10"
|
||||
- uses: pre-commit/action@v3.0.0
|
||||
|
||||
docs_check:
|
||||
docs-check:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -404,10 +404,10 @@ jobs:
|
||||
notify-complete:
|
||||
needs: [
|
||||
build_linux,
|
||||
build_macos,
|
||||
build_windows,
|
||||
docs_check,
|
||||
mypy_version_check,
|
||||
build-macos,
|
||||
build-windows,
|
||||
docs-check,
|
||||
mypy-version-check,
|
||||
pre-commit,
|
||||
build_linux_online
|
||||
]
|
||||
@@ -434,8 +434,63 @@ jobs:
|
||||
details: Test Completed!
|
||||
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
|
||||
|
||||
deploy:
|
||||
needs: [ build_linux, build_macos, build_windows, docs_check, mypy_version_check, pre-commit ]
|
||||
build:
|
||||
name: "Build"
|
||||
needs: [ build_linux, build-macos, build-windows, docs-check, mypy-version-check, pre-commit ]
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.11"
|
||||
|
||||
- name: Build distribution
|
||||
run: |
|
||||
pip install -U build
|
||||
python -m build --sdist --wheel
|
||||
|
||||
- name: Upload artifacts 📦
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: freqtrade-build
|
||||
path: |
|
||||
dist
|
||||
retention-days: 10
|
||||
|
||||
deploy-pypi:
|
||||
name: "Deploy to PyPI"
|
||||
needs: [ build ]
|
||||
runs-on: ubuntu-22.04
|
||||
if: (github.event_name == 'release')
|
||||
environment:
|
||||
name: release
|
||||
url: https://pypi.org/p/freqtrade
|
||||
permissions:
|
||||
id-token: write
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Download artifact 📦
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: freqtrade-build
|
||||
path: dist
|
||||
|
||||
- name: Publish to PyPI (Test)
|
||||
uses: pypa/gh-action-pypi-publish@v1.8.11
|
||||
with:
|
||||
repository-url: https://test.pypi.org/legacy/
|
||||
|
||||
- name: Publish to PyPI
|
||||
uses: pypa/gh-action-pypi-publish@v1.8.11
|
||||
|
||||
|
||||
deploy-docker:
|
||||
needs: [ build_linux, build-macos, build-windows, docs-check, mypy-version-check, pre-commit ]
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
if: (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'release') && github.repository == 'freqtrade/freqtrade'
|
||||
@@ -453,26 +508,6 @@ jobs:
|
||||
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF##*/})"
|
||||
id: extract_branch
|
||||
|
||||
- name: Build distribution
|
||||
run: |
|
||||
pip install -U setuptools wheel
|
||||
python setup.py sdist bdist_wheel
|
||||
|
||||
- name: Publish to PyPI (Test)
|
||||
uses: pypa/gh-action-pypi-publish@v1.8.11
|
||||
if: (github.event_name == 'release')
|
||||
with:
|
||||
user: __token__
|
||||
password: ${{ secrets.pypi_test_password }}
|
||||
repository_url: https://test.pypi.org/legacy/
|
||||
|
||||
- name: Publish to PyPI
|
||||
uses: pypa/gh-action-pypi-publish@v1.8.11
|
||||
if: (github.event_name == 'release')
|
||||
with:
|
||||
user: __token__
|
||||
password: ${{ secrets.pypi_password }}
|
||||
|
||||
- name: Dockerhub login
|
||||
env:
|
||||
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
|
||||
@@ -504,10 +539,11 @@ jobs:
|
||||
run: |
|
||||
build_helpers/publish_docker_multi.sh
|
||||
|
||||
deploy_arm:
|
||||
deploy-arm:
|
||||
name: "Deploy Docker"
|
||||
permissions:
|
||||
packages: write
|
||||
needs: [ deploy ]
|
||||
needs: [ deploy-docker ]
|
||||
# Only run on 64bit machines
|
||||
runs-on: [self-hosted, linux, ARM64]
|
||||
if: (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'release') && github.repository == 'freqtrade/freqtrade'
|
||||
|
||||
@@ -5,6 +5,7 @@ repos:
|
||||
rev: "6.0.0"
|
||||
hooks:
|
||||
- id: flake8
|
||||
additional_dependencies: [Flake8-pyproject]
|
||||
# stages: [push]
|
||||
|
||||
- repo: https://github.com/pre-commit/mirrors-mypy
|
||||
|
||||
@@ -5,3 +5,5 @@ recursive-include freqtrade/templates/ *.j2 *.ipynb
|
||||
include freqtrade/exchange/binance_leverage_tiers.json
|
||||
include freqtrade/rpc/api_server/ui/fallback_file.html
|
||||
include freqtrade/rpc/api_server/ui/favicon.ico
|
||||
|
||||
prune tests
|
||||
|
||||
@@ -2,6 +2,55 @@
|
||||
requires = ["setuptools >= 64.0.0", "wheel"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "freqtrade"
|
||||
dynamic = ["version", "dependencies", "optional-dependencies"]
|
||||
|
||||
authors = [
|
||||
{name = "Freqtrade Team"},
|
||||
{name = "Freqtrade Team", email = "freqtrade@protonmail.com"},
|
||||
]
|
||||
|
||||
description = "Freqtrade - Crypto Trading Bot"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.9"
|
||||
license = {text = "GPLv3"}
|
||||
# license = "GPLv3"
|
||||
classifiers = [
|
||||
"Environment :: Console",
|
||||
"Intended Audience :: Science/Research",
|
||||
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Operating System :: MacOS",
|
||||
"Operating System :: Unix",
|
||||
"Topic :: Office/Business :: Financial :: Investment",
|
||||
]
|
||||
|
||||
|
||||
[project.urls]
|
||||
Homepage = "https://github.com/freqtrade/freqtrade"
|
||||
Documentation = "https://freqtrade.io"
|
||||
"Bug Tracker" = "https://github.com/freqtrade/freqtrade/issues"
|
||||
|
||||
|
||||
[project.scripts]
|
||||
freqtrade = "freqtrade.main:main"
|
||||
|
||||
[tool.setuptools]
|
||||
include-package-data = true
|
||||
zip-safe = false
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
where = ["."]
|
||||
include = ["freqtrade*"]
|
||||
exclude = ["tests", "tests.*"]
|
||||
namespaces = true
|
||||
|
||||
[tool.setuptools.dynamic]
|
||||
version = {attr = "freqtrade.__version__"}
|
||||
|
||||
[tool.black]
|
||||
line-length = 100
|
||||
exclude = '''
|
||||
@@ -93,3 +142,18 @@ max-complexity = 12
|
||||
|
||||
[tool.ruff.per-file-ignores]
|
||||
"tests/*" = ["S"]
|
||||
|
||||
[tool.flake8]
|
||||
# Default from https://flake8.pycqa.org/en/latest/user/options.html#cmdoption-flake8-ignore
|
||||
# minus E226
|
||||
ignore = ["E121","E123","E126","E24","E704","W503","W504"]
|
||||
max-line-length = 100
|
||||
max-complexity = 12
|
||||
exclude = [
|
||||
".git",
|
||||
"__pycache__",
|
||||
".eggs",
|
||||
"user_data",
|
||||
".venv",
|
||||
".env",
|
||||
]
|
||||
|
||||
53
setup.cfg
53
setup.cfg
@@ -1,53 +0,0 @@
|
||||
[metadata]
|
||||
name = freqtrade
|
||||
version = attr: freqtrade.__version__
|
||||
author = Freqtrade Team
|
||||
author_email = freqtrade@protonmail.com
|
||||
description = Freqtrade - Crypto Trading Bot
|
||||
long_description = file: README.md
|
||||
long_description_content_type = text/markdown
|
||||
url = https://github.com/freqtrade/freqtrade
|
||||
project_urls =
|
||||
Bug Tracker = https://github.com/freqtrade/freqtrade/issues
|
||||
license = GPLv3
|
||||
classifiers =
|
||||
Environment :: Console
|
||||
Intended Audience :: Science/Research
|
||||
License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
||||
Programming Language :: Python :: 3.9
|
||||
Programming Language :: Python :: 3.10
|
||||
Programming Language :: Python :: 3.11
|
||||
Operating System :: MacOS
|
||||
Operating System :: Unix
|
||||
Topic :: Office/Business :: Financial :: Investment
|
||||
|
||||
|
||||
[options]
|
||||
zip_safe = False
|
||||
include_package_data = True
|
||||
tests_require =
|
||||
pytest
|
||||
pytest-asyncio
|
||||
pytest-cov
|
||||
pytest-mock
|
||||
|
||||
packages = find:
|
||||
python_requires = >=3.9
|
||||
|
||||
[options.entry_points]
|
||||
console_scripts =
|
||||
freqtrade = freqtrade.main:main
|
||||
|
||||
[flake8]
|
||||
# Default from https://flake8.pycqa.org/en/latest/user/options.html#cmdoption-flake8-ignore
|
||||
# minus E226
|
||||
ignore = E121,E123,E126,E24,E704,W503,W504
|
||||
max-line-length = 100
|
||||
max-complexity = 12
|
||||
exclude =
|
||||
.git,
|
||||
__pycache__,
|
||||
.eggs,
|
||||
user_data,
|
||||
.venv
|
||||
.env
|
||||
Reference in New Issue
Block a user