From 3b7c86a22829a0049dbafa0346b6cc80e96d37e6 Mon Sep 17 00:00:00 2001 From: shmyga Date: Sat, 26 Sep 2026 15:22:28 +0300 Subject: [PATCH] ci(action): add setup composite action --- .gitea/actions/setup/action.yaml | 34 ++++++++++++++++++++++++ .gitea/workflows/test.yaml | 44 ++------------------------------ 2 files changed, 36 insertions(+), 42 deletions(-) create mode 100644 .gitea/actions/setup/action.yaml diff --git a/.gitea/actions/setup/action.yaml b/.gitea/actions/setup/action.yaml new file mode 100644 index 0000000..e9693be --- /dev/null +++ b/.gitea/actions/setup/action.yaml @@ -0,0 +1,34 @@ +name: "Setup" +description: "Setup project" +inputs: + python-version: + default: "3.14" +runs: + using: "composite" + steps: + - uses: actions/checkout@v7 + + - id: setup-python + uses: actions/setup-python@v7 + with: + python-version: ${{ inputs.python-version }} + cache: "pip" + + - run: | + pip install project-manager \ + --index-url https://git.shmyga.ru/api/packages/InfernalGames/pypi/simple/ \ + --extra-index-url https://pypi.org/simple + + - run: pm setup:config -vv + + # setup python venv + - run: pip install poetry + + - id: cache-venv + uses: actions/cache@v6 + with: + path: .venv + key: venv-${{ runner.os }}-python-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} + + - if: steps.cache-venv.outputs.cache-hit != 'true' + run: pm setup:python -vv diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 6a2b73e..96fc8fb 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -6,45 +6,5 @@ jobs: test: runs-on: ubuntu-latest steps: - # repo - - name: Check out repository - uses: actions/checkout@v7 - # python - - name: Set up python - id: setup-python - uses: actions/setup-python@v7 - with: - python-version: "3.14" - # poetry - - name: Load cached Poetry installation - id: cached-poetry - uses: actions/cache@v5 - with: - path: ~/.local - key: poetry-1 # increment to reset cache - - name: Install Poetry - if: steps.cached-poetry.outputs.cache-hit != 'true' - uses: snok/install-poetry@v1 - with: - virtualenvs-create: true - virtualenvs-in-project: true - virtualenvs-path: .venv - installer-parallel: true - # venv - - name: Load cached venv - id: cached-poetry-dependencies - uses: actions/cache@v5 - with: - path: .venv - key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }} - - name: Install dependencies - if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' - run: ~/.local/bin/poetry install --no-interaction --no-root - - name: Install project - run: ~/.local/bin/poetry install --no-interaction - # test - - name: Run tests - run: | - source .venv/bin/activate - coverage run -m pytest tests/ - coverage report + - uses: .gitea/actions/setup + - run: pm test -vv