Notes
- running the
live-testing.ymlworkflow creates tags and releases in this repository. They can be discarded once the correct operation of the workflow has been verified. - Zenodo doesn't like it when you make depositions with the same content. The errors you'll when this happens are 500 INTERNAL SERVER ERROR
Debugging the zenodraft workflow from the sibling repo can be difficult because it involves
- code from zenodraft/zenodraft
- code from zenodraft/action
- code from zenodraft/zenodraft-live-testing
- GitHub action environment
- Zenodo or Zenodo Sandbox API
Here are some steps to make it a bit easier. Assuming the three repos have been checked out locally,
- set
zenodraftto a development branch, e.g.lib-dev - set
actionto a development branch, e.gaction-dev - keep
zenodraft-live-testingon itsmainbranch to make manually triggering its workflows a bit easier - do your development on
zenodraft. When ready to test, - run
npm run allin your checked out copy ofzenodraftto transpile and generate the distributable code inzenodraft/dist/lib - check that
zenodraft's test still pass by runningnpm run test - check that the library is useable by importing the library into
node - check that the cli works as expected (see the repo's developer notes)
- copy the code from
zenodraft/dist/libtoaction'snode_modules/zenodraft/dist/lib, for example usingmeld - add, commit, push the update to
action'saction-devbranch - in
zenodraft-live-testing, check that thedebug.ymlworkflow is using the correct branch (i.e.action-dev) fromaction - check that
zenodraft-live-testingdoesn't have any tags or releases (releasing the same content twice will fail the workflow) - check the state of depositions on Zenodo or Zendo Sandbox, whichever is the publishing target
- verify that GitHub knows about the access tokens, renew the tokens if need be by generating new ones on Zenodo [Sandbox] and copy pasting them into
zenodraft-live-testingrepo's settings. - trigger the
debug.ymlworkflow fromzenodraft-live-testingrepo
Additionally, it is sometimes useful to manually craft requests to send to Zenodo. An easy way to do this is with Postman.
TODO:
- investigate: since clearing the metadata amounts to writing minimal metadata, there may be failures due to metadata that is exactly equal which Zenodo might not like. Could possibly be avoided by having zenodraft insert a
versionwith a datetime of now.