# SPDX-FileCopyrightText: 2023 DB Systel GmbH # # SPDX-License-Identifier: Apache-2.0 name: Test suites on: push: branches: - main pull_request: jobs: # # Test using the tool via poetry on different OSes and python versions # test-os-python-matrix: # runs-on: ${{ matrix.os }} # strategy: # max-parallel: 10 # # do not abort the whole test job if one combination in the matrix fails # fail-fast: false # matrix: # python-version: ["3.9", "3.10", "3.11"] # os: [ubuntu-20.04] # include: # - python-version: "3.9" # os: macos-latest # - python-version: "3.9" # os: windows-latest # steps: # - uses: actions/checkout@v2 # - uses: ./.gitea/actions/poetrybuild # - name: Execute seafile-mirror # run: poetry run ossrfc --help # Test building the package and installing it via pip3 test-build-install: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install poetry run: pip install poetry - name: Build package run: poetry build - name: Install package run: pip3 install dist/seafile_mirror-*.tar.gz - name: Run package run: seafile-mirror --help # Run tool and sync a test library selftest: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install dependencies uses: ./.gitea/actions/poetrybuild - name: Install and configure seaf-cli run: | apt-get update apt-get install -y seafile-cli seaf-cli init -d /tmp - name: Fill configuration for test library run: | sed -i "s|__seafile_server__|${{ secrets.SEAFILE_SERVER }}|" tests/seafile_mirror.conf.yaml sed -i "s|__seafile_user__|${{ secrets.SEAFILE_USER }}|" tests/seafile_mirror.conf.yaml sed -i "s|__seafile_pass__|${{ secrets.SEAFILE_PASS }}|" tests/seafile_mirror.conf.yaml - name: Sync the library 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