diff --git a/.github/workflows/update-citation-cff.yaml b/.github/workflows/update-citation-cff.yaml new file mode 100644 index 00000000..9926f8d7 --- /dev/null +++ b/.github/workflows/update-citation-cff.yaml @@ -0,0 +1,64 @@ +# Workflow derived from https://github.com/r-lib/actions/tree/master/examples +# The action runs when: +# - The DESCRIPTION or inst/CITATION are modified +# - Can be run manually +# For customizing the triggers, visit https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows +on: + push: + branches: + # This may seem like a no-op but it prevents triggering on tags. + # We use '**' rather '*' to accomodate names like 'dev/branch-1' + - '**' + paths: + - DESCRIPTION + - inst/CITATION + - .github/workflows/update-citation-cff.yaml + workflow_dispatch: + +name: Update CITATION.cff + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: write + +jobs: + update-citation-cff: + runs-on: ubuntu-latest + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v3 + - uses: r-lib/actions/setup-r@v2 + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: | + any::cffr + any::V8 + + - name: Update CITATION.cff + run: | + + library(cffr) + + # Customize with your own code + # See https://docs.ropensci.org/cffr/articles/cffr.html + + # Write your own keys + mykeys <- list() + + # Create your CITATION.cff file + cff_write(keys = mykeys) + + shell: Rscript {0} + + - name: Commit results + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add CITATION.cff + git commit -m 'Update CITATION.cff' || echo "No changes to commit" + git pull --rebase origin ${{ github.ref.name }} + git push origin || echo "No changes to commit"