From 6f1422bff02abb7dc81d6726f940958d6aa51682 Mon Sep 17 00:00:00 2001 From: Alejandro Villar Date: Mon, 29 Jan 2024 17:52:30 +0100 Subject: [PATCH] Add modified and git metadata to register.json --- .github/workflows/validate-and-process.yml | 2 ++ Dockerfile | 3 +- ogc/bblocks/entrypoint.py | 38 ++++++++++++++-------- 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/.github/workflows/validate-and-process.yml b/.github/workflows/validate-and-process.yml index d8fb3a5..f071c31 100644 --- a/.github/workflows/validate-and-process.yml +++ b/.github/workflows/validate-and-process.yml @@ -99,6 +99,8 @@ jobs: ref: ${{ inputs.ref }} - name: Update submodules run: git submodule update --recursive --remote + - name: Use Docker in rootless mode + uses: ScribeMD/rootless-docker@0.2.2 - name: OGC BB postprocess if: ${{ !inputs.skip-build }} uses: opengeospatial/bblocks-postprocess/full@v1 diff --git a/Dockerfile b/Dockerfile index 17a580f..9a1fbe1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,8 @@ RUN apk update && \ /venv/bin/python -m pip install --upgrade pip && \ git config --global --add safe.directory '*' && \ npm install jsonld && \ - echo "$BBP_GIT_INFO" > /GIT_INFO + echo "$BBP_GIT_INFO" > /GIT_INFO && \ + git config --global --add safe.directory '*' RUN /venv/bin/python -m pip install -r /requirements.txt diff --git a/ogc/bblocks/entrypoint.py b/ogc/bblocks/entrypoint.py index 24371f7..f1d007c 100644 --- a/ogc/bblocks/entrypoint.py +++ b/ogc/bblocks/entrypoint.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +import datetime import os import shutil import subprocess @@ -181,6 +182,8 @@ if sparql_conf and sparql_conf.get('query'): register_additional_metadata['sparqlEndpoint'] = sparql_conf['query'] + register_additional_metadata['modified'] = datetime.datetime.now().isoformat() + if os.environ.get('BBP_GIT_INFO_FILE'): with open(os.environ['BBP_GIT_INFO_FILE']) as f: git_info = f.readline().strip() @@ -196,22 +199,29 @@ base_url = args.base_url github_base_url = args.github_base_url git_repo_path = None - if not base_url or not github_base_url: - try: - import git - repo = git.Repo() - git_repo_path = Path(repo.working_dir) - remote_branch = repo.active_branch.tracking_branch() - remote = repo.remote(remote_branch.remote_name) - remote_url = next(remote.urls) - gh_repo = get_github_repo(remote_url) - if gh_repo: + try: + import git + repo = git.Repo() + git_repo_path = Path(repo.working_dir) + remote_branch = repo.active_branch.tracking_branch() + remote = repo.remote(remote_branch.remote_name) + remote_url = next(remote.urls) + if remote_url: + register_additional_metadata['gitRepository'] = remote_url + + gh_repo = get_github_repo(remote_url) + if gh_repo: + if not base_url: base_url = f"https://{gh_repo[0]}.github.io/{gh_repo[1]}/" + if not github_base_url: github_base_url = f"https://github.com/{gh_repo[0]}/{gh_repo[1]}/" - print(f"Autodetected GitHub repo {gh_repo[0]}/{gh_repo[1]}") - except: - print('[WARN] Could not autodetect base_url / github_base_url', file=sys.stderr) - pass + print(f"Autodetected GitHub repo {gh_repo[0]}/{gh_repo[1]}") + + if github_base_url: + register_additional_metadata['gitHubRepository'] = github_base_url + except Exception as e: + print(f"[WARN] Could not autodetect base_url / github_base_url ({e})", file=sys.stderr) + pass steps = args.steps.split(',') if args.steps else None