1
0
Fork 0
mirror of https://github.com/qurator-spk/modstool.git synced 2025-06-25 19:49:54 +02:00

Merge pull request #55 from qurator-spk/github-actions

⚙  Switch to testing on GitHub Actions
This commit is contained in:
Mike Gerber 2025-06-13 17:44:18 +02:00 committed by GitHub
commit 76b36cb0ca
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 88 additions and 25 deletions

View file

@ -1,23 +0,0 @@
version: 2.1
jobs:
test:
parameters:
python-version:
type: string
docker:
- image: cimg/python:<< parameters.python-version >>
steps:
- checkout
- run: pip3 install --upgrade pip
- run: pip3 install -e .
- run: pip3 install -r requirements-test.txt
- run: pytest
workflows:
all-tests:
jobs:
- test:
matrix:
parameters:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]

64
.github/workflows/test.yml vendored Normal file
View file

@ -0,0 +1,64 @@
name: 'Test'
on:
push:
branches:
- master
pull_request:
branches:
- master
schedule:
- cron: "00 16 07 * *" # = monthly
# Allow manually running (from GitHub Web)
workflow_dispatch:
# Allow calling this workflow (e.g. from release workflow)
workflow_call:
jobs:
test:
strategy:
fail-fast: false
matrix:
python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" ]
runs-on: "ubuntu-latest"
steps:
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: Checkout
uses: actions/checkout@v4
- name: Install possible lxml build requirements (if building from source)
run: sudo apt-get install -y libxml2-dev libxslt-dev python3-dev
- name: Install possible shapely build requirements (if building from source)
run: sudo apt-get install -y libgeos-dev
- name: Update pip
run: python3 -m pip install -U pip
- name: Install requirements*.txt
run: |
for requirements_txt in requirements*.txt; do
python3 -m pip install -r $requirements_txt;
done
- name: Test
run: |
cd src
python3 -m pytest --junitxml=../${{matrix.python-version}}-junit.xml -o junit_family=legacy
- name: Upload test results
uses: actions/upload-artifact@v4
if: success() || failure()
with:
name: test-results-${{matrix.python-version}}
path: ${{matrix.python-version}}-junit.xml

20
.github/workflows/test_report.yml vendored Normal file
View file

@ -0,0 +1,20 @@
name: 'Test - Report results'
on:
workflow_run:
workflows: ['test']
types:
- completed
permissions:
contents: read
actions: read
checks: write
jobs:
report:
runs-on: ubuntu-latest
steps:
- uses: dorny/test-reporter@v1
with:
artifact: /test-results-(.*)/
name: 'test - Results ($1)'
path: '*junit.xml'
reporter: java-junit

View file

@ -1,6 +1,8 @@
Extract the MODS/ALTO metadata of a bunch of METS/ALTO files into pandas DataFrames.
[![Build Status](https://circleci.com/gh/qurator-spk/mods4pandas.svg?style=svg)](https://circleci.com/gh/qurator-spk/mods4pandas)
[![Tests](https://github.com/qurator-spk/mods4pandas/actions/workflows/test.yml/badge.svg)](https://github.com/qurator-spk/mods4pandas/actions?query=workflow:"test")
[![License](https://img.shields.io/badge/License-Apache-blue)](#license)
[![Issues](https://img.shields.io/github/issues/qurator-spk/mods4pandas)](https://github.com/qurator-spk/mods4pandas/issues)
**mods4pandas** converts the MODS metadata from METS files into a pandas DataFrame.

View file

@ -11,7 +11,7 @@ authors = [
description = "Convert MODS metadata to a pandas DataFrame"
readme = "README.md"
license.file = "LICENSE"
requires-python = ">=3.8"
requires-python = ">=3.9"
keywords = ["qurator", "mets", "mods", "metadata", "library"]
dynamic = ["dependencies", "optional-dependencies"]