editly icon indicating copy to clipboard operation
editly copied to clipboard

Create GitHub Action for creating and releasing videos

Open patcon opened this issue 3 years ago • 4 comments

Re-ticketed from: https://github.com/mifi/editly/issues/62#issuecomment-740241101

The proposal is to have a github action (or just a workflow template) to help FOSS projects keep a json config file in their project, and have videos generated automatically by GitHub Actions. This would allow supportive video resources to be created with very little maintenance burden on project owners.

The thought is that it might help projects to make it simple for them to generate videos. This could happen according to various triggers:

  • on changes to json config file or source material
  • on tagging (to generate a new video for docs on official release)
  • each commit (assuming e2e test specs are recorded as video content, see below)

Resources

  • Cypress GitHub Action: https://github.com/cypress-io/github-action
    • this action also updates videos as assets, so could use it as reference
    • perhaps there's a way to have Cypress also generate "walkthrough" videos for projects, which editly could assemble into supportive videos showcasing project behavior. I'm sure there's a pattern here worth thinking about, but i don't have a full view
  • https://github.com/actions/upload-artifact
    • how cypress action recommends uploading

To Do

  • [x] get editly working in docker (#96)
  • [x] get simple MVP GitHub Action build working in new repo: https://github.com/patcon/editly-videos
  • [x] get upload-artifact action working
  • [ ] Add simple cypress run workflow, and incorporate generated video into demo
  • [ ] stretch: create a github action repo
  • [ ] stretch: integrate GitHub Packages to store docker images (so no need to rebuild)

patcon avatar Dec 07 '20 23:12 patcon

💡 Might also be neat to have youtube-dl work automatically. I could imagine this happening by either:

  1. pre-downloading files in github action workflow, and dropping them into place as clips that json config uses
  2. storing urls directly in json file, but awk'ing the url for the local file before running editly on it (maybe this is a little too magic, but could have a flag that needs to be explicitly turned out, so ppl knew that the action was doing something special that wouldn't work locally)

patcon avatar Dec 08 '20 00:12 patcon

Working on this here: https://github.com/patcon/editly-videos

patcon avatar Dec 08 '20 16:12 patcon

  • 💡 Potentially could support use of releases to make embedding generated GIFs in readme simpler:
    • goal: consister urls where link can change underneath and not need to commit change to markdown file (which is doable with github actions, but messy)
    • GitHub Action to create release assets: https://github.com/marketplace/actions/upload-a-release-asset
    • release docs: https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/linking-to-releases
    • this approach also could work, but it would need file committed to repo instead of appended as release asset outside commit history: https://github.com/labnol/files
    • ~~try embedded release assets in README, as they have consistent url~~ doesn't work
      • alternative: build github pages site on gh-pages. pro = link to asset can be persistent. con = storing generated asset in git repo, which will inflate the repo size.
      • alternative: post generated asset to imgur, and just auto-update link in repo docs. pro = asset stored outside repo. con = need to update markdown and recommit.

patcon avatar Dec 08 '20 17:12 patcon

This is such a cool idea.

nabilfreeman avatar Feb 22 '21 00:02 nabilfreeman