Add all components allowing person depiction registration workflow #27
3 changed files with 83 additions and 0 deletions
9
.forgejo/actions/deposit-changes/action.yml
Normal file
9
.forgejo/actions/deposit-changes/action.yml
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Deposit changes
|
||||||
|
run: |
|
||||||
|
git add content
|
||||||
|
git diff --quiet --cached \
|
||||||
|
&& echo "Already up-to-date" \
|
||||||
|
|| ( git commit -m "chore: auto-generate content from metadata" && git push origin )
|
||||||
25
.forgejo/actions/prep-metadata-query/action.yml
Normal file
25
.forgejo/actions/prep-metadata-query/action.yml
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Install uv
|
||||||
|
uses: astral-sh/setup-uv@v6
|
||||||
|
- name: Install tools
|
||||||
|
run: |
|
||||||
|
# use a single environment for all tools
|
||||||
|
uv tool install https://hub.psychoinformatics.de/orinoco/query-things.git \
|
||||||
|
--with-executables-from dump-things-pyclient \
|
||||||
|
--with-executables-from git-annex
|
||||||
|
# we need git-annex even when we are not working with annex keys
|
||||||
|
# the repository is annex-init'ed on-clone, so git-annex tooling
|
||||||
|
# runs in commit hooks
|
||||||
|
- name: Prepare Git
|
||||||
|
run: |
|
||||||
|
git config --global user.name "Forgejo Actions"
|
||||||
|
git config --global user.email ${{ forgejo.actor }}@${FORGEJO_SERVER_URL#*://}
|
||||||
|
git config --global credential.helper cache
|
||||||
|
git credential approve <<EOF
|
||||||
|
url=${{ forgejo.server_url }}
|
||||||
|
username=${{ forgejo.actor }}
|
||||||
|
password=${{ forgejo.token }}
|
||||||
|
EOF
|
||||||
|
echo OK
|
||||||
49
.forgejo/workflows/register-person-depictions.yml
Normal file
49
.forgejo/workflows/register-person-depictions.yml
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
name: Register person depictions
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 3 * * 1-5'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
env:
|
||||||
|
DUMPTHINGS_APIURL: https://pool.v0.trr379.de/api
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
register_depictions:
|
||||||
|
runs-on: debian-latest
|
||||||
|
if: ${{ forgejo.repository == 'q04/www.trr379.de' }}
|
||||||
|
outputs:
|
||||||
|
committed: ${{ steps.commit.outputs.committed }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout project
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Prepare environment
|
||||||
|
uses: ./.forgejo/actions/prep-metadata-query
|
||||||
|
- name: git-annex init
|
||||||
|
run: |
|
||||||
|
git fetch --depth 1 origin git-annex:git-annex
|
||||||
|
git config --add annex.private true
|
||||||
|
git annex init
|
||||||
|
- name: Fetch python script
|
||||||
|
run: |
|
||||||
|
wget https://hub.psychoinformatics.de/orinoco/knowledge-enrichment/raw/branch/main/.forgejo/tools/get-person-depiction-urls.py
|
||||||
|
- name: Register depiction files
|
||||||
|
run: |
|
||||||
|
jq_output="$(
|
||||||
|
dtc get-records ${DUMPTHINGS_APIURL} public -C TRR379Person \
|
||||||
|
| qri filter-linked-pid --api-url ${DUMPTHINGS_APIURL} public trr379root:. associated_with \
|
||||||
|
| qri inject-links-pid --link about depictions --class TRR379Depiction \
|
||||||
|
| qri inline-records --api-url ${DUMPTHINGS_APIURL} -c public -p depictions::distributions \
|
||||||
|
| uv run get-person-depiction-urls.py --target-class 'trr379ri:TRR379Person' --depiction-type 'trr379:depiction-types/e9a34f7d-d05e-4591-bb45-f8a0c499e07b'
|
||||||
|
)"
|
||||||
|
if [[ -n "$jq_output" ]]; then
|
||||||
|
while IFS=$'\t' read -r curie ext url; do
|
||||||
|
git annex addurl --file="content/${curie}/portrait.${ext}" "$url" || \
|
||||||
|
echo "addurl failed for $url, continuing..."
|
||||||
|
done <<< "$jq_output"
|
||||||
|
git annex push --no-content
|
||||||
|
git annex push --cleanup
|
||||||
|
fi
|
||||||
|
- name: Deposit changes
|
||||||
|
uses: ./.forgejo/actions/deposit-changes
|
||||||
Loading…
Add table
Add a link
Reference in a new issue