56e227267c
Internal CI systems and the new GitHub CI system were out of sync, with the external system not doing any linting. Further, the internal system was using an internal-only linter for Python. This creates a script for Python linting based on the open-source pylint tool, checks in the Google Style Guide's pylintrc file, creates a custom action for linting and adds it to the existing workflows, fixes pre-existing linter errors in Python scripts, and updates pylint overrides. b/190743862 Change-Id: Iff1f5d4690b32479af777ded0834c31c2161bd10 |
||
---|---|---|
.. | ||
custom-actions | ||
README.md | ||
build_and_test.yaml | ||
docker_hub_release.yaml | ||
github_release.yaml | ||
npm_release.yaml | ||
update_docs.yaml |
README.md
GitHub Actions CI
Actions
custom-actions/lint-packager
: Lints Shaka Packager. You must passfetch-depth: 2
toactions/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 accountDOCKERHUB_CI_TOKEN
: An access token for Docker Hub- To generate, visit https://hub.docker.com/settings/security
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 theshaka-bot
account- To generate, visit https://www.npmjs.com/settings/shaka-bot/tokens and select the "Automation" type
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
SHAKA_BOT_TOKEN
: A GitHub personal access token for theshaka-bot
account, withworkflow
scope- To generate, visit https://github.com/settings/tokens/new and select the
workflow
scope
- To generate, visit https://github.com/settings/tokens/new and select the