commit f808f51870029a42ad2336e85230a15c5c406d4d Author: Mplan Date: Mon Jun 8 22:27:17 2026 +0800 初始化 Python 项目,添加 Gitea Actions 工作流和基本测试 diff --git a/.gitea/workflows/python-action-test.yml b/.gitea/workflows/python-action-test.yml new file mode 100644 index 0000000..390fc20 --- /dev/null +++ b/.gitea/workflows/python-action-test.yml @@ -0,0 +1,27 @@ +name: Python Action Test +run-name: ${{ gitea.actor }} +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: 3.14 + + - name: Install test dependencies + run: | + python -m pip install --upgrade pip + python -m pip install pytest + + - name: Run unit tests + run: pytest diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..505a3b1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +# Python-generated files +__pycache__/ +*.py[oc] +build/ +dist/ +wheels/ +*.egg-info + +# Virtual environments +.venv diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..6324d40 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.14 diff --git a/README.md b/README.md new file mode 100644 index 0000000..b7f915f --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +# python-action-test + +这是一个简单的 Python 项目示例,包含一个 Gitea Actions 工作流。 + +## 说明 + +- `main.py` 包含一个简单的 `main()` 函数,用于打印欢迎消息。 +- `tests/test_main.py` 提供一个最小单元测试,检查 `main()` 是否输出预期文本。 +- `.gitea/workflows/python-action-test.yml` 是 Gitea Actions 的工作流配置,用于在 `push` 和 `pull_request` 事件时运行测试。 + +## 本地运行 + +```bash +python main.py +python -m pip install pytest +pytest +``` + +## Gitea Actions + +将此仓库推送到 Gitea 后,Gitea Actions 会触发以下流程: + +1. 检出仓库代码 +2. 安装 Python 3.14 +3. 安装 `pytest` +4. 执行单元测试 + +工作流文件路径:`.gitea/workflows/python-action-test.yml` diff --git a/main.py b/main.py new file mode 100644 index 0000000..3bc17b0 --- /dev/null +++ b/main.py @@ -0,0 +1,6 @@ +def main(): + print("Hello from python-action-test!") + + +if __name__ == "__main__": + main() diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..0d6c0cf --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,7 @@ +[project] +name = "python-action-test" +version = "0.1.0" +description = "Add your description here" +readme = "README.md" +requires-python = ">=3.14" +dependencies = [] diff --git a/tests/test_main.py b/tests/test_main.py new file mode 100644 index 0000000..d79c1b7 --- /dev/null +++ b/tests/test_main.py @@ -0,0 +1,6 @@ +import main + +def test_main_prints_message(capsys): + main.main() + captured = capsys.readouterr() + assert "Hello from python-action-test!" in captured.out