Merge pull request #2 from kristoferssolo/gh-actions

Add GitHub actions
This commit is contained in:
Kristofers Solo 2024-01-09 19:30:25 +02:00 committed by GitHub
commit fa6a0e97e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 146 additions and 43 deletions

25
.github/workflows/lint.yml vendored Normal file
View File

@ -0,0 +1,25 @@
name: Lint
on: [push, pull_request]
jobs:
lint:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.10", "3.11"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements_dev.txt
- name: Analysing the code with mypy
run: |
mypy $(git ls-files '*.py')
- name: Analysing the code with ruff
run: |
ruff check $(git ls-files '*.py')

25
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,25 @@
name: Release
on:
push:
tags:
- "v*.*.*"
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build
- name: Build package
run: python -m build
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: dist/*.tar.gz

23
.github/workflows/tests.yml vendored Normal file
View File

@ -0,0 +1,23 @@
name: Tests
on: [push, pull_request]
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.10", "3.11"]
steps:
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install -r requirements_dev.txt
- name: Test with pytest
run: |
pytest

21
.github/workflows/typst.yml vendored Normal file
View File

@ -0,0 +1,21 @@
name: Build Typst document
on: [push, pull_request]
jobs:
typst-build:
runs-on: ubuntu-latest
if: ${{ github.ref == 'refs/heads/main' }}
steps:
- uses: actions/checkout@v3
- name: Build Typst
uses: lvignoli/typst-action@main
with:
source_file: |
typst/main.typ
- name: Push changes
uses: stefanzweifel/git-auto-commit-action@v5
with:
file_pattern: "typst/*.pdf"
commit_message: "chore(build): auto-build pdf"
commit_user_name: "github-actions[bot]"
commit_user_email: "github-actions[bot]@users.noreply.github.com"
commit_author: "github-actions[bot] <github-actions[bot]@users.noreply.github.com>"

View File

@ -1,4 +1,5 @@
# Tetris
![Tests](https://github.com/kristoferssolo/Tetris/actions/workflows/tests.yml/badge.svg) ![Lint](https://github.com/kristoferssolo/Tetris/actions/workflows/lint.yml/badge.svg)
<!-- toc -->

View File

@ -8,22 +8,22 @@ version = "0.1.0"
description = "Tetris game"
authors = [{ name = "Kristofers Solo", email = "dev@kristofers.xyz" }]
readme = "README.md"
requires-python = ">=3.11"
requires-python = ">=3.10"
license = { file = "LICENSE" }
dependencies = [
"attrs==23.1.0",
"loguru==0.7.2",
"numpy==1.26.3",
"pygame-ce==2.4.0",
"toml==0.10.2",
"attrs==23.1.0",
"loguru==0.7.2",
"numpy==1.26.3",
"pygame-ce==2.4.0",
"toml==0.10.2",
]
keywords = ["tetris", "game", "pygame"]
classifiers = [
"Development Status :: 3 - Alpha",
"License :: OSI Approved :: GPLv3 License",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Development Status :: 3 - Alpha",
"License :: OSI Approved :: GPLv3 License",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
]
[project.urls]
@ -45,40 +45,41 @@ warn_unused_configs = true
[tool.ruff]
extend-select = [
"B",
"BLE",
"C4",
"ERA",
"I",
"ICN",
"INP",
"ISC",
"N",
"NPY",
"PGH",
"PIE",
# "PTH",
"Q",
"RET",
"RSE",
"RUF",
"S",
"SIM",
"T20",
"TCH",
"TID",
"YTT",
"B",
"BLE",
"C4",
"ERA",
"I",
"ICN",
"INP",
"ISC",
"N",
"NPY",
"PGH",
"PIE",
# "PTH",
"Q",
"RET",
"RSE",
"RUF",
"S",
"SIM",
"T20",
"TCH",
"TID",
"YTT",
]
ignore = ["E741"]
show-fixes = true
line-length = 120
indent-width = 4
target-version = "py38"
target-version = "py310"
[tool.ruff.lint]
extend-select = ["I"]
preview = true
fixable = ["ALL"]
[tool.ruff.format]
quote-style = "double"

View File

@ -1,3 +1,4 @@
mypy==1.8.0
pytest==7.4.3
ruff==0.1.9
types-toml==0.10.8.7

View File

@ -355,10 +355,10 @@ class Tetris(BaseScreen):
def _initialize_timers(self) -> None:
"""Initialize game timers."""
self.timers = Timers(
Timer(self.initial_block_speed, True, self.move_down),
Timer(CONFIG.game.movment_delay),
Timer(CONFIG.game.rotation_delay),
Timer(CONFIG.game.drop_delay),
Timer(self.initial_block_speed, True, self.move_down), # type: ignore
Timer(CONFIG.game.movment_delay), # type: ignore
Timer(CONFIG.game.rotation_delay), # type: ignore
Timer(CONFIG.game.drop_delay), # type: ignore
)
self.timers.vertical.activate()

6
tests/test_blank.py Normal file
View File

@ -0,0 +1,6 @@
import unittest
class TestBlank(unittest.TestCase):
def test(self) -> None:
pass

View File

@ -57,10 +57,10 @@ def run() -> None:
game.Main(GameMode.PLAYER).run()
def main(args: argparse.ArgumentParser) -> None:
if args.debug:
def main(args) -> None:
if args.debug: # type: ignore
level = "debug"
elif args.verbose:
elif args.verbose: # type: ignore
level = "info"
else:
level = "warning"
@ -72,4 +72,4 @@ def main(args: argparse.ArgumentParser) -> None:
if __name__ == "__main__":
args = parser.parse_args()
main(args)
main(args) # type: ignore