Archive latest release in InvenioRDM #25
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
env: | |
INVENIO_SERVER: https://data.caltech.edu | |
# These variables are IGA options. Please see the docs for info. | |
draft: false | |
all_assets: false | |
all_metadata: false | |
community: none | |
parent_record: "6qhkm-7n074" | |
debug: false | |
# This variable is a setting for post-archiving CodeMeta file updates. | |
# If you don't have a CodeMeta file, you can remove the add_doi_codemeta | |
# and Coremeta2CFF jobs at the bottom of this file. | |
ref: main | |
# ╭────────────────────────────────────────────╮ | |
# │ The rest of this file should be left as-is │ | |
# ╰────────────────────────────────────────────╯ | |
name: InvenioRDM GitHub Archiver | |
on: | |
release: | |
types: [published] | |
workflow_dispatch: | |
inputs: | |
release_tag: | |
description: The release tag (empty = latest) | |
parent_record: | |
description: ID of parent record (for versioning) | |
community: | |
description: Name of InvenioRDM community (if any) | |
draft: | |
description: Mark the record as a draft | |
type: boolean | |
all_assets: | |
description: Attach all GitHub assets | |
type: boolean | |
all_metadata: | |
description: Include additional GitHub metadata | |
type: boolean | |
debug: | |
description: Print debug info in the GitHub log | |
type: boolean | |
run-name: Archive ${{inputs.release_tag || 'latest release'}} in InvenioRDM | |
jobs: | |
run_iga: | |
name: Send to ${{needs.get_repository.outputs.server}} | |
runs-on: ubuntu-latest | |
needs: get_repository | |
outputs: | |
record_doi: ${{steps.iga.outputs.record_doi}} | |
steps: | |
- uses: caltechlibrary/iga@v1 | |
id: iga | |
with: | |
INVENIO_SERVER: ${{env.INVENIO_SERVER}} | |
INVENIO_TOKEN: ${{secrets.INVENIO_TOKEN}} | |
all_assets: ${{github.event.inputs.all_assets || env.all_assets}} | |
all_metadata: ${{github.event.inputs.all_metadata || env.all_metadata}} | |
debug: ${{github.event.inputs.debug || env.debug}} | |
draft: ${{github.event.inputs.draft || env.draft}} | |
community: ${{github.event.inputs.community || env.community}} | |
parent_record: ${{github.event.inputs.parent_record || env.parent_record}} | |
release_tag: ${{github.event.inputs.release_tag || 'latest'}} | |
get_repository: | |
name: Get repository name | |
runs-on: ubuntu-latest | |
outputs: | |
server: ${{steps.parse.outputs.host}} | |
steps: | |
- name: Extract name from INVENIO_SERVER | |
id: parse | |
run: echo "host=$(cut -d'/' -f3 <<< ${{env.INVENIO_SERVER}} | cut -d':' -f1)" >> $GITHUB_OUTPUT | |
add_doi_codemeta: | |
name: "Add ${{needs.run_iga.outputs.record_doi}} to codemeta.json" | |
needs: run_iga | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ env.ref }} | |
- name: Install sde | |
run: pip install sde | |
- name: Add DOI to CodeMeta File | |
run: sde identifier ${{needs.run_iga.outputs.record_doi}} codemeta.json | |
- name: Commit CFF | |
uses: EndBug/add-and-commit@v9 | |
with: | |
message: 'Add DOI to codemeta.json file' | |
add: 'codemeta.json' | |
CodeMeta2CFF: | |
runs-on: ubuntu-latest | |
needs: add_doi_codemeta | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ env.ref }} | |
- name: Convert CFF | |
uses: caltechlibrary/codemeta2cff@main | |
- name: Commit CFF | |
uses: EndBug/add-and-commit@v9 | |
with: | |
message: 'Add updated CITATION.cff from codemeta.json file' | |
add: 'CITATION.cff' |