shaka-packager/.github/workflows
Joey Parrish a2e07a901e Refactor actions and workflows
It turns out that workflows were the wrong way to abstract reusable
pieces of work.  This turns common steps into custom actions (build
docs, build packager, test packager) which can be used as encapsulated
steps in multiple workflows.

This is a much more natural way to avoid duplication compared to the
previous approach of triggering one workflow from another.  This also
has the benefit of all of the steps of a release being represented on
GitHub as a single workflow, making it easier to understand what is
happening and what event triggered those steps.

Change-Id: Ife156d60069a39594c7b3bb3bc32080e6453b544
2021-06-17 10:32:24 -07:00
..
custom-actions Refactor actions and workflows 2021-06-17 10:32:24 -07:00
README.md Refactor actions and workflows 2021-06-17 10:32:24 -07:00
build_and_test.yaml Refactor actions and workflows 2021-06-17 10:32:24 -07:00
docker_hub_release.yaml Refactor actions and workflows 2021-06-17 10:32:24 -07:00
github_release.yaml Refactor actions and workflows 2021-06-17 10:32:24 -07:00
npm_release.yaml CI overhaul based on GitHub Actions 2021-06-16 11:52:02 -07:00
update_docs.yaml Refactor actions and workflows 2021-06-17 10:32:24 -07:00

README.md

GitHub Actions CI

Actions

  • custom-actions/build-packager: Builds Shaka Packager. Leaves build artifacts in the "artifacts" folder. Requires OS-dependent and build-dependent inputs.
  • custom-actions/test-packager: Tests Shaka Packager. Requires OS-dependent and build-dependent inputs.
  • custom-actions/build-docs: Builds Shaka Packager docs.

Workflows

  • On PR:
    • build_and_test.yaml: Builds and tests all combinations of OS & build settings. Also builds docs.
  • On release tag:
    • github_release.yaml: Creates a draft release on GitHub, builds and tests all combinations of OS & build settings, builds docs on all OSes, attaches static release binaries to the draft release, then fully publishes the release.
  • On release published:
    • docker_hub_release.yaml: Builds a Docker image to match the published GitHub release, then pushes it to Docker Hub.
    • npm_release.yaml: Builds an NPM package to match the published GitHub release, then pushes it to NPM.
    • update_docs.yaml: Builds updated docs and pushes them to the gh-pages branch.

Required Repo Secrets