shaka-packager/.github/workflows
Joey Parrish 9fc3ee1186 test: Run docker-based Linux distro tests in GitHub Actions
When testing a PR or release, make sure the build still passes on all
supported Linux distros.

Change-Id: Id7046e8eb8fe999965ea22e12dd1ffdce2fa2d63
2021-10-14 10:16:22 -07:00
..
custom-actions test: Pin pylint to a specific version in GitHub Actions 2021-10-13 12:25:34 -07:00
README.md ci: Use GITHUB_TOKEN instead of SHAKA_BOT_TOKEN (#977) 2021-08-12 10:50:29 -07:00
build_and_test.yaml test: Run docker-based Linux distro tests in GitHub Actions 2021-10-14 10:16:22 -07:00
docker_hub_release.yaml Make CI workflows safe when testing in a fork 2021-06-17 13:36:59 -07:00
github_release.yaml test: Run docker-based Linux distro tests in GitHub Actions 2021-10-14 10:16:22 -07:00
npm_release.yaml Make CI workflows safe when testing in a fork 2021-06-17 13:36:59 -07:00
update_docs.yaml ci: Use GITHUB_TOKEN instead of SHAKA_BOT_TOKEN (#977) 2021-08-12 10:50:29 -07:00

README.md

GitHub Actions CI

Actions

  • custom-actions/lint-packager: Lints Shaka Packager. You must pass fetch-depth: 2 to actions/checkout in order to provide enough history for the linter to tell which files have changed.
  • 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

  • DOCKERHUB_CI_USERNAME: The username of the Docker Hub CI account
  • DOCKERHUB_CI_TOKEN: An access token for Docker Hub
  • DOCKERHUB_PACKAGE_NAME: Not a true "secret", but stored here to avoid someone pushing bogus packages to Docker Hub during CI testing from a fork
    • In a fork, set to a private name which differs from the production one
  • NPM_CI_TOKEN: An "Automation"-type access token for NPM for the shaka-bot account
  • NPM_PACKAGE_NAME: Not a true "secret", but stored here to avoid someone pushing bogus packages to NPM during CI testing from a fork
    • In a fork, set to a private name which differs from the production one