# -*- coding: utf-8 -*- # # Copyright (C) 2025 I-Form Advanced Manufacturing Research Centre. # # invenio-theme-iform is free software; you can redistribute it and/or # modify it under the terms of the MIT License; see LICENSE file for more # details. name: Tests on: push: branches: - master pull_request: branches: - master workflow_dispatch: inputs: reason: description: "Reason" required: false default: "Manual trigger" jobs: create-strategy: runs-on: ubuntu-latest outputs: matrix: ${{ steps.requirements.outputs.matrix }} steps: - name: Checkout uses: actions/checkout@v4 - name: requirements id: requirements run: | # Define a simple matrix with your Python version # Since we're using pyproject.toml with Python 3.12 requirement echo "matrix={\"include\": [{\"python-version\": \"3.12\"}]}" >> $GITHUB_OUTPUT # Print the matrix for debugging echo "-------------------" echo "Matrix: {\"include\": [{\"python-version\": \"3.12\"}]}" echo "-------------------" tests: needs: create-strategy runs-on: ubuntu-latest name: Test (Python ${{matrix.python-version}}) strategy: fail-fast: false matrix: ${{ fromJson(needs.create-strategy.outputs.matrix) }} # Simplified environment without service variables env: PYTHON_VERSION: ${{ matrix.python-version }} steps: - name: Checkout uses: actions/checkout@v4 - name: Set up uv uses: astral-sh/setup-uv@v6 with: python-version: "${{ matrix.python-version }}" enable-cache: true cache-dependency-glob: | pyproject.toml cache-suffix: ${{ matrix.python-version }} - name: Show configuration run: | uv --version uv run python --version - name: Install dependencies run: | uv sync --group tests - name: Run tests env: PYTEST_ADDOPTS: "--cov-report=lcov" run: | uv run test - name: Upload coverage to Coveralls uses: coverallsapp/github-action@master with: github-token: ${{ secrets.GITHUB_TOKEN }} path-to-lcov: coverage.lcov