Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automate releasing to BioSimulators #81

Open
jonrkarr opened this issue Jun 8, 2021 · 0 comments
Open

Automate releasing to BioSimulators #81

jonrkarr opened this issue Jun 8, 2021 · 0 comments
Labels
T: Enhancement Type: enhancement

Comments

@jonrkarr
Copy link

jonrkarr commented Jun 8, 2021

Information about jNeuroML is available in BioSimulators. To keep the version of jNeuroML in BioSimulators up to date, we recommend automating the release of new versions to BioSimulators.

This can be done using the GitHub API.

An easy way to do this is with the GitHub action below. This would automatically push jNeuroML to BioSimulators when releases are published to GitHub. To use the action:

  • Save the YAML below to .github/workflows/release-biosimulators.yml
  • Add two repository "secrets" at https://github.com/NeuroML/jNeuroML/settings/secrets/actions.
    • Click the "New repository secret" button
    • Add two secrets:
      • BIOSIMULATORS_GH_USERNAME: the name of the GitHub user who pushes jNeuroML to BioSimulators (e.g., pgleeson). pgleeson already has permissions for this.
      • BIOSIMULATORS_GH_TOKEN: token for BIOSIMULATORS_GH_USERNAME
  • A token for BIOSIMULATORS_GH_USERNAME can be created a https://github.com/settings/tokens
    • Select scope repo
name: Update BioSimulators command-line interface and Docker image

on:
  release:
    types:
      - published

jobs:
  updateBioSimulatorsCliAndDockerImage:
    name: Trigger the building and release of the BioSimulators version of jNeuroML
    if: startsWith(github.ref, 'refs/tags/v')
    runs-on: ubuntu-latest
    env:
      # Owner/repository-id for the GitHub repository for the downstream
      # command-line interface and Docker image.

      DOWNSTREAM_REPOSITORY: biosimulators/Biosimulators_jNeuroML

      # Username/token to use the GitHub API to trigger an action on the GitHub
      # repository for the downstream command line interface and Docker image.
      # Tokens can be generated at https://github.com/settings/tokens and should
      # have the scope "repo".

      BIOSIMULATORS_GH_USERNAME: ${{ secrets.BIOSIMULATORS_GH_USERNAME }}
      BIOSIMULATORS_GH_TOKEN: ${{ secrets.BIOSIMULATORS_GH_TOKEN }}
    steps:
      - name: Trigger a GitHub action that will build and release the BioSimulators version of jNeuroML
        run: |
          PACKAGE_VERSION="${GITHUB_REF/refs\/tags\/v/}"
          WORKFLOW_FILE=ci.yml

          curl -X POST \
               -u ${BIOSIMULATORS_GH_USERNAME}:${BIOSIMULATORS_GH_TOKEN} \
               -H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/${DOWNSTREAM_REPOSITORY}/actions/workflows/${WORKFLOW_FILE}/dispatches \
               -d "{\"inputs\": {\"simulator\": \"jneuroml\", \"simulatorVersion\": \"${PACKAGE_VERSION}\", \"simulatorVersionLatest\": \"true\"}}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
T: Enhancement Type: enhancement
Projects
Status: 🆕 New
Development

No branches or pull requests

2 participants