Accept paper #1177
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
name: Accept paper | |
on: | |
workflow_dispatch: | |
inputs: | |
repository_url: | |
description: 'URL of the repository containing the paper file' | |
required: true | |
branch: | |
description: 'Git branch where the paper Markdown file is' | |
required: false | |
issue_id: | |
description: 'The issue number of the submission' | |
required: true | |
add_labels: | |
description: 'Labels to add to the issue after successful run' | |
required: false | |
default: '' | |
validation_mode: | |
description: "Validation of metadata files mode: draft|ignore-errors|strict" | |
required: false | |
default: 'strict' | |
jobs: | |
acceptance-and-publishing: | |
name: ${{ format('Accepting paper in issue {0}', github.event.inputs.issue_id) }} | |
runs-on: ubuntu-latest | |
env: | |
GH_ACCESS_TOKEN: ${{ secrets.BOT_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }} | |
GH_REPO: openjournals/joss-reviews | |
ISSUE_ID: ${{ github.event.inputs.issue_id }} | |
DEFAULT_ERROR: ":warning: Couldn't acccept/publish paper. [An error happened](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}?check_suite_focus=true)." | |
steps: | |
- name: Compile Paper | |
id: generate-files | |
uses: xuanxu/paper-action@main | |
with: | |
repository_url: ${{ github.event.inputs.repository_url }} | |
branch: ${{ github.event.inputs.branch }} | |
issue_id: ${{ github.event.inputs.issue_id }} | |
journal: joss | |
compile_mode: accepted | |
- name: Upload files to papers repo | |
id: upload-files | |
uses: xuanxu/upload-files-action@main | |
with: | |
papers_repo: openjournals/joss-papers | |
branch_prefix: joss | |
issue_id: ${{ github.event.inputs.issue_id }} | |
pdf_path: ${{ steps.generate-files.outputs.pdf_path}} | |
jats_path: ${{ steps.generate-files.outputs.jats_path}} | |
crossref_path: ${{ steps.generate-files.outputs.crossref_path}} | |
- name: Validate metadata files | |
id: validate-xml | |
uses: xuanxu/validate-xml-files-action@main | |
with: | |
jats_path: ${{ steps.generate-files.outputs.jats_path}} | |
crossref_path: ${{ steps.generate-files.outputs.crossref_path}} | |
validation_mode: ${{ github.event.inputs.validation_mode }} | |
- name: Create and Merge Pull Request | |
id: pull-request | |
uses: xuanxu/deposit-pull-request-action@main | |
with: | |
papers_repo: openjournals/joss-papers | |
papers_repo_main_branch: master | |
branch_prefix: joss | |
issue_id: ${{ github.event.inputs.issue_id }} | |
bot_token: ${{ secrets.BOT_TOKEN }} | |
mode: deposit | |
- name: Deposit with Crossref | |
uses: xuanxu/deposit-with-crossref-action@main | |
with: | |
crossref_filepath: ${{ steps.generate-files.outputs.crossref_path}} | |
crossref_username: ${{ secrets.CROSSREF_USERNAME }} | |
crossref_password: ${{ secrets.CROSSREF_PASSWORD }} | |
- name: Deposit with JOSS | |
id: oj-deposit | |
uses: xuanxu/deposit-with-openjournals-action@main | |
with: | |
journal_alias: joss | |
journal_secret: ${{ secrets.JOSS_SECRET }} | |
issue_id: ${{ github.event.inputs.issue_id }} | |
paper_path: ${{ steps.generate-files.outputs.paper_file_path}} | |
- name: Sleep for 300 seconds | |
run: sleep 300 | |
shell: bash | |
- name: Citation.cff file info | |
uses: xuanxu/citation-file-action@main | |
with: | |
citation_file_path: ${{ steps.generate-files.outputs.citation_file_path}} | |
issue_id: ${{ github.event.inputs.issue_id }} | |
reviews_repo: openjournals/joss-reviews | |
gh_token: ${{ secrets.BOT_TOKEN }} | |
- name: Post to social media | |
uses: xuanxu/acceptance-tweet-action@main | |
with: | |
journal_name: "JOSS" | |
paper_title: ${{ steps.generate-files.outputs.paper_title}} | |
paper_doi: ${{steps.oj-deposit.outputs.paper_doi}} | |
twitter_consumer_key: ${{ secrets.TWITTER_CONSUMER_KEY }} | |
twitter_consumer_secret: ${{ secrets.TWITTER_CONSUMER_SECRET }} | |
twitter_access_token: ${{ secrets.TWITTER_ACCESS_TOKEN }} | |
twitter_access_token_secret: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }} | |
twitter_user: ${{ secrets.TWITTER_USER }} | |
mastodon_access_token: ${{ secrets.MASTODON_ACCESS_TOKEN }} | |
mastodon_instance_url: ${{ secrets.MASTODON_INSTANCE_URL }} | |
mastodon_user: ${{ secrets.MASTODON_USER }} | |
reviews_repo: openjournals/joss-reviews | |
issue_id: ${{ github.event.inputs.issue_id }} | |
gh_token: ${{ secrets.BOT_TOKEN }} | |
- name: Reply message | |
if: ${{ success() }} | |
run: | | |
gh issue comment ${{ github.event.inputs.issue_id }} --body "π¨π¨π¨ **THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS!** π¨π¨π¨ | |
Here's what you must now do: | |
0. Check final PDF and Crossref metadata that was deposited :point_right: ${{steps.pull-request.outputs.pr_url}} | |
1. Wait five minutes, then verify that the paper DOI resolves [https://doi.org/${{steps.oj-deposit.outputs.paper_doi}}](https://doi.org/${{steps.oj-deposit.outputs.paper_doi}}) | |
2. If everything looks good, then close this review issue. | |
3. Party like you just published a paper! πππ¦ππ»π€ | |
Any issues? Notify your editorial technical team..." | |
- name: Labeling | |
if: ${{ success() && github.event.inputs.add_labels != '' }} | |
run: gh issue edit ${{ github.event.inputs.issue_id }} --add-label ${{ github.event.inputs.add_labels }} | |
- name: Error message | |
if: ${{ failure() && env.CUSTOM_ERROR_STATUS != 'sent' }} | |
run: | | |
gh issue comment ${{ github.event.inputs.issue_id }} --body "${{ env.DEFAULT_ERROR }} ${{ env.CUSTOM_ERROR }}" |