Compare commits

6 Commits

Author SHA1 Message Date
0351e55f7c split runs in action
All checks were successful
Test suites / test-build-install (pull_request) Successful in 28s
Test suites / selftest (pull_request) Successful in 53s
Test suites / pylint (pull_request) Successful in 34s
Test suites / formatting (pull_request) Successful in 27s
Test suites / mypy (pull_request) Successful in 30s
Test suites / reuse (pull_request) Successful in 7s
2024-01-16 16:25:22 +01:00
59a435c247 fix reuse/gitignore 2024-01-16 16:25:11 +01:00
31e48bbb03 test additional poetry install args
Some checks failed
Test suites / test-build-install (pull_request) Successful in 28s
Test suites / selftest (pull_request) Successful in 51s
Test suites / pylint (pull_request) Successful in 29s
Test suites / formatting (pull_request) Successful in 25s
Test suites / mypy (pull_request) Successful in 27s
Test suites / reuse (pull_request) Failing after 7s
2024-01-16 16:22:07 +01:00
d51a5b89fc add version command
Some checks failed
Test suites / test-build-install (pull_request) Successful in 27s
Test suites / selftest (pull_request) Successful in 55s
Test suites / pylint (pull_request) Successful in 33s
Test suites / formatting (pull_request) Successful in 28s
Test suites / mypy (pull_request) Successful in 31s
Test suites / reuse (pull_request) Failing after 7s
2024-01-16 16:12:39 +01:00
40cba3b4f0 fix pylint by igoring some errors 2024-01-16 16:12:39 +01:00
041ccd24ef add CI tests and publishing workflows 2024-01-16 16:12:39 +01:00
9 changed files with 192 additions and 935 deletions

View File

@@ -12,10 +12,8 @@ inputs:
runs:
using: "composite"
steps:
- name: Add pipx to PATH
run: echo "/root/.local/bin" >> ${GITHUB_PATH}
- name: Install poetry
run: pipx install poetry
run: pip install poetry
- name: Install poetry package
run: poetry install --no-interaction ${{ inputs.poetry_install_args }}
shell: bash

View File

@@ -1,41 +0,0 @@
# SPDX-FileCopyrightText: 2023 Max Mehl <https://mehl.mx>
#
# SPDX-License-Identifier: Apache-2.0
name: Python Linters
on:
push:
branches:
- main
pull_request:
jobs:
pylint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install dependencies
uses: ./.gitea/actions/poetrybuild
- name: Lint with pylint
run: poetry run pylint seafile_mirror
formatting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install dependencies
uses: ./.gitea/actions/poetrybuild
- name: Test formatting with isort and black
run: |
poetry run isort --check seafile_mirror/
poetry run black .
mypy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install dependencies
uses: ./.gitea/actions/poetrybuild
- name: Test typing with mypy
run: poetry run mypy

View File

@@ -11,8 +11,8 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Build and publish to PyPI
uses: https://github.com/JRubics/poetry-publish@v2.1
- uses: actions/checkout@v4
- name: Build and publish to pypi
uses: https://github.com/JRubics/poetry-publish@v1.17
with:
pypi_token: ${{ secrets.PYPI_TOKEN }}

View File

@@ -1,19 +0,0 @@
# SPDX-FileCopyrightText: 2023 Max Mehl <https://mehl.mx>
#
# SPDX-License-Identifier: Apache-2.0
name: REUSE Compliance
on:
push:
branches:
- main
pull_request:
jobs:
reuse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Check REUSE Compliance
uses: https://github.com/fsfe/reuse-action@v6

View File

@@ -3,7 +3,7 @@
#
# SPDX-License-Identifier: Apache-2.0
name: Selftests
name: Test suites
on:
push:
@@ -14,13 +14,11 @@ on:
jobs:
# Test building the package and installing it via pip3
test-build-install:
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Add pipx to PATH
run: echo "/root/.local/bin" >> ${GITHUB_PATH}
- uses: actions/checkout@v4
- name: Install poetry
run: pipx install poetry
run: pip install poetry
- name: Build package
run: poetry build
- name: Install package
@@ -31,13 +29,12 @@ jobs:
seafile-mirror --help
# Run tool and sync a test library
test-sync:
selftest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v4
- name: Install dependencies
uses: ./.gitea/actions/poetrybuild
# using minimal set of dependencies
with:
poetry_install_args: "--without dev"
- name: Install seaf-cli
@@ -57,3 +54,41 @@ jobs:
run: poetry run seafile-mirror -c tests -v
- name: Attempt to find expected string in library
run: grep "__ci_test_expect__" tests/ci-test/testfile.txt
# PYLINT / BLACK / ISORT / MYPY
pylint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
uses: ./.gitea/actions/poetrybuild
- name: Lint with pylint
run: poetry run pylint seafile_mirror
formatting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
uses: ./.gitea/actions/poetrybuild
- name: Test formatting with isort and black
run: |
poetry run isort --check seafile_mirror/
poetry run black .
mypy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
uses: ./.gitea/actions/poetrybuild
- name: Test typing with mypy
run: poetry run mypy
# REUSE COMPLIANCE
reuse:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check REUSE Compliance
uses: https://github.com/fsfe/reuse-action@v2

956
poetry.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@
[tool.poetry]
name = "seafile-mirror"
version = "0.2.2"
version = "0.1.0"
description = "Handle clean read-only (re-)syncs of Seafile libraries to mirror them"
authors = ["Max Mehl <mail@mehl.mx>"]
license = "Apache-2.0"
@@ -20,13 +20,12 @@ python = "^3.10"
pyyaml = "^6.0.1"
[tool.poetry.group.dev.dependencies]
pylint = "^4.0.0"
isort = "^8.0.0"
black = "^26.0.0"
pylint = "^3.0.0"
isort = "^5.12.0"
black = "^23.9.1"
mypy = "^1.5.1"
pylama = "^8.4.1"
types-pyyaml = "^6.0.12.11"
bump-my-version = "^1.0.0"
[build-system]
requires = ["poetry-core"]
@@ -42,16 +41,3 @@ line-length = 100
# MYPY settings
[tool.mypy]
files = ["seafile_mirror/*.py"]
# Bump-My-Version
[tool.bumpversion]
commit = true
tag = true
allow_dirty = false
tag_name = "v{new_version}"
[[tool.bumpversion.files]]
filename = "pyproject.toml"
regex = true
search = "^version = \"{current_version}\""
replace = "version = \"{new_version}\""

View File

@@ -1,18 +1,4 @@
{
$schema: "https://docs.renovatebot.com/renovate-schema.json",
extends: ["local>renovate-bot/renovate-config"],
"packageRules": [
// Group and merge all dev dependencies, even major versions
{
"matchDepTypes": ["dev"],
"groupName": "all-dev-dependencies",
"automerge": true
},
// Merge all other patch and minor dependencies
{
"matchUpdateTypes": ["minor", "patch"],
"matchCurrentVersion": "!/^0/",
"automerge": true
}
]
}

View File

@@ -27,11 +27,6 @@ from ._seafile import (
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("-c", "--configdir", required=True, help="The config directory")
parser.add_argument(
"-l",
"--logfile",
help="The path to the logfile. Default: <configdir>/seafile_mirror.log",
)
parser.add_argument(
"-d",
"--dry",
@@ -57,17 +52,14 @@ parser.add_argument(
parser.add_argument("--version", action="version", version="%(prog)s " + __version__)
def main(): # pylint: disable=too-many-locals, too-many-statements, too-many-branches
def main(): # pylint: disable=too-many-locals, too-many-statements
"""Main function"""
args = parser.parse_args()
# Set files depending on configdir
configdir = args.configdir.rstrip("/") + "/"
configfile = configdir + "seafile_mirror.conf.yaml"
cachefile = configdir + ".seafile_mirror.db.json"
if args.logfile:
logfile = args.logfile
else:
logfile = configdir + "seafile_mirror.log"
logfile = configdir + "seafile_mirror.log"
# Logging
log = logging.getLogger()