2021-06-16 21:15:08 +00:00
|
|
|
# GitHub Actions CI
|
|
|
|
|
2021-06-17 04:32:05 +00:00
|
|
|
## 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.
|
|
|
|
|
2021-06-16 21:15:08 +00:00
|
|
|
## Workflows
|
|
|
|
- On PR:
|
2021-06-17 04:32:05 +00:00
|
|
|
- `build_and_test.yaml`:
|
|
|
|
Builds and tests all combinations of OS & build settings. Also builds
|
|
|
|
docs.
|
2021-06-16 21:15:08 +00:00
|
|
|
- On release tag:
|
2021-06-17 04:32:05 +00:00
|
|
|
- `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.
|
2021-06-16 21:15:08 +00:00
|
|
|
|
|
|
|
## Required Repo Secrets
|
|
|
|
- `DOCKERHUB_CI_USERNAME`: The username of the Docker Hub CI account
|
|
|
|
- `DOCKERHUB_CI_TOKEN`: An access token for Docker Hub
|
|
|
|
- To generate, visit https://hub.docker.com/settings/security
|
2021-06-17 20:36:56 +00:00
|
|
|
- `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
|
2021-06-16 21:15:08 +00:00
|
|
|
- `NPM_CI_TOKEN`: An "Automation"-type access token for NPM for the `shaka-bot`
|
|
|
|
account
|
|
|
|
- To generate, visit https://www.npmjs.com/settings/shaka-bot/tokens and
|
|
|
|
select the "Automation" type
|
2021-06-17 20:36:56 +00:00
|
|
|
- `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
|
2021-06-16 21:15:08 +00:00
|
|
|
- `SHAKA_BOT_TOKEN`: A GitHub personal access token for the `shaka-bot`
|
|
|
|
account, with `workflow` scope
|
|
|
|
- To generate, visit https://github.com/settings/tokens/new and select the
|
|
|
|
`workflow` scope
|