Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
version: 2
updates:
# Python dependencies
- package-ecosystem: pip
directory: /
schedule:
interval: weekly
target-branch: main
open-pull-requests-limit: 3
commit-message:
prefix: deps(dependabot)
groups:
all-dependencies:
patterns:
- '*'

# Docker dependencies
- package-ecosystem: docker
directory: / # main Dockerfile
schedule:
interval: weekly
target-branch: main
open-pull-requests-limit: 5

# GitHub Actions workflows
- package-ecosystem: github-actions
directory: / # workflows are under .github/workflows
schedule:
interval: weekly
target-branch: main
open-pull-requests-limit: 10
22 changes: 22 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: DockerImage
on:
push:
branches: ['*']
permissions:
contents: read
packages: write
jobs:
docker:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v7
- name: Login to GHCR
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }}
--password-stdin
- name: Build image
run: |
make docker-build
- name: Push image
run: |-
make docker-upload
29 changes: 29 additions & 0 deletions .github/workflows/pypi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
name: Publish
on:
workflow_run:
workflows: [Release]
types: [completed]
permissions:
contents: read
id-token: write # Required for Trusted Publishing
jobs:
build-and-publish:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Set up Python
uses: actions/setup-python@v7
with:
python-version: 3.x
- name: Install build tool
run: |
python -m pip install --upgrade pip
pip install build
- name: Build package
run: python -m build
- name: Publish package to PyPI
# if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
uses: pypa/gh-action-pypi-publish@release/v1
35 changes: 35 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
name: Release
on:
push:
branches: [main]
env:
GH_TOKEN: ${{ secrets.REPO }}
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-24.04
concurrency:
group: ${{ github.workflow }}-release-${{ github.ref_name }}
cancel-in-progress: false
steps:
- name: Checkout repository
uses: actions/checkout@v7
with:
fetch-depth: 0
token: ${{ secrets.REPO }}
- name: Set up GitHub Token
run: |
git config --global user.name "Helmut Konrad Schewe"
git config --global user.email "helmutus@outlook.com"
git remote set-url origin https://x-access-token:${{ secrets.GH_TOKEN }}@github.com/anaticulae/decider-ref.git
- name: Release and Push
run: |
make docker-release
- name: Push commit and tag
run: |-
git config user.name "github-actions"
git config user.email "github-actions@github.com"
git push origin main
git push origin --tags
61 changes: 61 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
name: Tests
on:
push:
branches: ['*']
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v7
- name: build docker container
run: make docker-build
doctest:
runs-on: ubuntu-24.04
needs: build
steps:
- uses: actions/checkout@v7
- name: run doctest
run: make docker-doctest
fasttest:
runs-on: ubuntu-24.04
needs: build
steps:
- uses: actions/checkout@v7
with:
# required by test which requires commits
fetch-depth: 15
- name: run fasttest
run: make docker-fasttest
env:
HOVERPOWER_SECRET: ${{ secrets.HOVERPOWER_SECRET }}
longtest:
runs-on: ubuntu-24.04
needs: fasttest
steps:
- uses: actions/checkout@v7
- name: run longtest
run: make docker-longtest
env:
HOVERPOWER_SECRET: ${{ secrets.HOVERPOWER_SECRET }}
alltest:
runs-on: ubuntu-24.04
needs: longtest
steps:
- uses: actions/checkout@v7
with:
# required by test which requires commits
fetch-depth: 15
- name: run alltest
run: make docker-alltest
env:
HOVERPOWER_SECRET: ${{ secrets.HOVERPOWER_SECRET }}
linter:
runs-on: ubuntu-24.04
needs: build
steps:
- uses: actions/checkout@v7
- name: run linter
run: make docker-lint
27 changes: 27 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# =============================================================================
# C O P Y R I G H T
# -----------------------------------------------------------------------------
# Copyright (c) 2022-2023 by Helmut Konrad Schewe. All rights reserved.
# This file is property of Helmut Konrad Schewe. Any unauthorized copy,
# use or distribution is an offensive act against international law and may
# be prosecuted under federal law. Its content is company confidential.
# =============================================================================

FROM ghcr.io/anaticulae/baw:059f853-python

ENV HOVERPOWER_STORE=/var/workdir/hoverpower/repo

WORKDIR /var/install

COPY pyproject.toml .

RUN pip install .[dev]
RUN pip install .

COPY . /var/install

RUN pip install .

WORKDIR /var/workdir

ENTRYPOINT ["sh", "-c"]
67 changes: 67 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
.PHONY: docker-build docker-run build clean

VERSION := $(shell git rev-parse --short HEAD 2>/dev/null || echo "latest")
CURDIR := $(CURDIR)

NAME = decider_ref
IMAGE := $(NAME):$(VERSION)
IMAGE_NAME := ghcr.io/anaticulae/$(IMAGE)

docker-build:
docker build -t $(IMAGE_NAME) .

docker-upload: docker-build
docker push $(IMAGE_NAME)

docker-doctest: docker-build
docker run\
-v $(CURDIR):/var/workdir\
$(IMAGE_NAME)\
"baw test docs"

docker-fasttest: docker-decrypt
docker run\
-v $(CURDIR):/var/workdir\
-v /tmp/decider_chapter:/tmp/decider_chapter\
$(IMAGE_NAME)\
"baw test fast"

docker-longtest: docker-decrypt
docker run\
-v $(CURDIR):/var/workdir\
-v /tmp/decider_chapter:/tmp/decider_chapter\
$(IMAGE_NAME)\
"baw test long"

docker-alltest: docker-decrypt
docker run\
-v $(CURDIR):/var/workdir\
-v /tmp/decider_chapter:/tmp/decider_chapter\
$(IMAGE_NAME)\
"baw test all --generate"

docker-lint: docker-build
docker run\
-v $(CURDIR):/var/workdir\
$(IMAGE_NAME)\
"baw lint all"

docker-decrypt: docker-build
docker run\
-v $(CURDIR):/var/workdir\
-v /tmp/decider_chapter:/tmp/decider_chapter\
-e HOVERPOWER_STORE=/var/workdir/hoverpower/repo\
-e HOVERPOWER_SECRET\
$(IMAGE_NAME)\
"powerdownload && powerdecrypt"

docker-release: docker-build
@if git describe --exact-match --tags HEAD >/dev/null 2>&1; then\
echo "Current commit is already tagged. Skipping release.";\
else \
docker run\
-v $(CURDIR):/var/workdir\
-e GH_TOKEN\
$(IMAGE_NAME)\
"baw release --no_test --no_linter";\
fi
2 changes: 1 addition & 1 deletion decider_bib/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
[
utilo.ResultFile('detector', 'bibliography_detected'),
utilo.ResultFile('detector', 'titlepage_detected'),
utilo.File('pdfinfo'),
utilo.File('pdflog'),
],
(USER, DEVELOPER),
),
Expand Down
6 changes: 3 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ requires = [
build-backend = "setuptools.build_meta"

[project]
name = "decider_ref"
name = "decider-ref"
version = "1.22.1"
description = ""
requires-python = ">=3.12"
Expand Down Expand Up @@ -68,8 +68,8 @@ dev = [
]

[project.urls]
Homepage = "https://github.com/anaticulae/decider_ref"
Repository = "https://github.com/anaticulae/decider_ref"
Homepage = "https://github.com/anaticulae/decider-ref"
Repository = "https://github.com/anaticulae/decider-ref"

[project.scripts]
decider_abbrev = "decider_abb.cli:main"
Expand Down
2 changes: 1 addition & 1 deletion tests/bibliography/test_label.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ def test_bib_no_page_master98(td, mp):
assert len(nopages) in {10, 9} # TODO: VALIDATE LATER


@pytest.mark.xfail(reason='enable later')
def test_bib_page_number_unprecise(td, mp):
unprecise = run_label(hoverpower.MASTER116_PDF, mp, td, {6062})
assert len(unprecise) in {2, 3} # TODO: VALIDATE LATER
Expand Down Expand Up @@ -78,7 +79,6 @@ def test_regression_bachelor75(td, mp):
assert len(linting) == 21 # NOT VALIDATED


@pytest.mark.xfail(reason='???')
def test_label_bib_ref_missing(td, mp):
"""No missing intext bib reference."""
linting = run_label(hoverpower.BACHELOR075_PDF, mp, td, {6050})
Expand Down
32 changes: 16 additions & 16 deletions tests/expected/bachelor_bachelor063
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,16 @@
01370 p7 Abschnitt zu lang
01384 p7 Sektion enthält Anführungszeichen
06006 p59 Anzahl der Quellen zu gering
06050 p10s15 Quelle nicht gefunden
06050 p10s5 Quelle nicht gefunden
06050 p10s18 Quelle nicht gefunden
06050 p10s7 Quelle nicht gefunden
06050 p11s6 Quelle nicht gefunden
06050 p11s8 Quelle nicht gefunden
06050 p12s11 Quelle nicht gefunden
06050 p13s13 Quelle nicht gefunden
06050 p13s5 Quelle nicht gefunden
06050 p13s8 Quelle nicht gefunden
06050 p14s15 Quelle nicht gefunden
06050 p14s8 Quelle nicht gefunden
06050 p12s10 Quelle nicht gefunden
06050 p13s10 Quelle nicht gefunden
06050 p13s16 Quelle nicht gefunden
06050 p13s7 Quelle nicht gefunden
06050 p14s16 Quelle nicht gefunden
06050 p14s9 Quelle nicht gefunden
06050 p15s3 Quelle nicht gefunden
06050 p16s4 Quelle nicht gefunden
06050 p17s0 Quelle nicht gefunden
Expand All @@ -43,16 +43,16 @@
06051 p59 Quelle überflüssig
06051 p59 Quelle überflüssig
06051 p59 Quelle überflüssig
06061 p10s15 Seitenangabe fehlt
06061 p10s5 Seitenangabe fehlt
06061 p10s18 Seitenangabe fehlt
06061 p10s7 Seitenangabe fehlt
06061 p11s6 Seitenangabe fehlt
06061 p11s8 Seitenangabe fehlt
06061 p12s11 Seitenangabe fehlt
06061 p13s13 Seitenangabe fehlt
06061 p13s5 Seitenangabe fehlt
06061 p13s8 Seitenangabe fehlt
06061 p14s15 Seitenangabe fehlt
06061 p14s8 Seitenangabe fehlt
06061 p12s10 Seitenangabe fehlt
06061 p13s10 Seitenangabe fehlt
06061 p13s16 Seitenangabe fehlt
06061 p13s7 Seitenangabe fehlt
06061 p14s16 Seitenangabe fehlt
06061 p14s9 Seitenangabe fehlt
06061 p15s3 Seitenangabe fehlt
06061 p16s4 Seitenangabe fehlt
06061 p17s0 Seitenangabe fehlt
Expand Down
8 changes: 4 additions & 4 deletions tests/expected/bachelor_bachelor067
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,15 @@
06061 p14s1 Seitenangabe fehlt
06061 p14s9 Seitenangabe fehlt
06061 p14s9 Seitenangabe fehlt
06061 p16s11 Seitenangabe fehlt
06061 p16s13 Seitenangabe fehlt
06061 p17s2 Seitenangabe fehlt
06061 p16s10 Seitenangabe fehlt
06061 p16s12 Seitenangabe fehlt
06061 p17s1 Seitenangabe fehlt
06061 p28s3 Seitenangabe fehlt
06061 p30s8 Seitenangabe fehlt
06061 p31s2 Seitenangabe fehlt
06061 p32s3 Seitenangabe fehlt
06061 p39s6 Seitenangabe fehlt
06061 p55s4 Seitenangabe fehlt
06061 p55s3 Seitenangabe fehlt
06061 p8s0 Seitenangabe fehlt
06061 p8s1 Seitenangabe fehlt
06061 p8s2 Seitenangabe fehlt
Expand Down
Loading
Loading