name: test on: push: branches-ignore: [deploy] pull_request: branches: [master] jobs: build: runs-on: ${{ matrix.os }} continue-on-error: ${{ matrix.experimental }} strategy: matrix: os: [ubuntu-latest] python-version: ['3.10', '3.11', '3.12'] deps: [newest-deps] experimental: [false] include: - os: ubuntu-latest python-version: '3.11' deps: minimal-deps experimental: false #- os: ubuntu-latest # python-version: '3.13-dev' # deps: newest-deps # experimental: true - os: macos-latest python-version: '3.11' deps: newest-deps experimental: false fail-fast: false steps: - name: Checkout code uses: actions/checkout@v4 - name: Pin dependencies to minimal versions if: ${{ matrix.deps == 'minimal-deps' }} run: sed -e '/dependencies/,$s/~=/==/' -i pyproject.toml - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: 'pip' cache-dependency-path: pyproject.toml # experimental targets generally lack lxml wheels - name: Install libxml2 and libxslt development packages if: ${{ matrix.experimental }} run: sudo apt install libxml2-dev libxslt-dev python3-dev # macos needs newer bash - name: Install macos deps if: ${{ matrix.os == 'macos-latest' }} run: brew install bash - name: Install dependencies run: | python -m pip install --upgrade pip pip install ".[test]" pytest-github-actions-annotate-failures - name: Test with pytest env: PY_COLORS: 1 # forcibly enable pytest colors run: | pytest --cov --cov-report=term --cov-report=xml -v - name: Submit code coverage to codecov if: ${{ matrix.os == 'ubuntu-latest' }} uses: codecov/codecov-action@v3 with: files: ./coverage.xml pkgcheck-test: runs-on: ubuntu-latest steps: - name: Checkout pkgcore uses: actions/checkout@v4 with: path: pkgcore - name: Checkout pkgcheck uses: actions/checkout@v4 with: repository: pkgcore/pkgcheck path: pkgcheck - name: Set up Python 3.11 uses: actions/setup-python@v5 with: python-version: '3.11' cache: 'pip' cache-dependency-path: | pkgcore/pyproject.toml pkgcheck/pyproject.toml - name: Install pip dependencies run: | python -m pip install --upgrade pip pip install -e "./pkgcore" pip install "./pkgcheck[test]" - name: Test with pytest working-directory: ./pkgcheck env: PY_COLORS: 1 # forcibly enable pytest colors run: pytest -v pkgdev-test: runs-on: ubuntu-latest steps: - name: Checkout pkgcore uses: actions/checkout@v4 with: path: pkgcore - name: Checkout pkgdev uses: actions/checkout@v4 with: repository: pkgcore/pkgdev path: pkgdev - name: Set up Python 3.11 uses: actions/setup-python@v5 with: python-version: '3.11' cache: 'pip' cache-dependency-path: | pkgcore/pyproject.toml pkgdev/pyproject.toml - name: Install pip dependencies run: | python -m pip install --upgrade pip pip install -e "./pkgcore" pip install "./pkgdev[test]" - name: Test with pytest working-directory: ./pkgdev env: PY_COLORS: 1 # forcibly enable pytest colors run: pytest -v format: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Install black version run: | python -m pip install --upgrade pip pip install -e .[formatter] black --check --diff . gentoo-regen: runs-on: ubuntu-latest steps: - name: Checkout pkgcore uses: actions/checkout@v4 with: path: pkgcore - name: Checkout gentoo uses: actions/checkout@v4 with: repository: gentoo/gentoo path: gentoo - name: Set up Python 3.11 uses: actions/setup-python@v5 with: python-version: '3.11' - name: Install pip dependencies run: | python -m pip install --upgrade pip pip install -e "./pkgcore" - name: Run pmaint regen working-directory: ./gentoo run: pmaint regen --use-local-desc --pkg-desc-index --rsync --force .