shaka-packager/.github/workflows
Joey Parrish 4cb6536060
fix: Fix NPM binary publication (#1371)
The default .npmignore would disallow bin/, which contains binaries for
our NPM release. Every release before v3.0.3 was missing .npmignore, and
therefore had no binaries. These were unusable in NPM, and have been
marked as deprecated because of it.

Closes #1369
2024-03-12 13:09:56 -07:00
..
README.md feat!: Rewrite build system and third-party dependencies (#1310) 2023-12-01 09:32:19 -08:00
build-docker.yaml ci: Update actions (#1360) 2024-03-05 09:28:51 -08:00
build-docs.yaml ci: Update actions (#1360) 2024-03-05 09:28:51 -08:00
build-matrix.json fix(CI): Add Mac-arm64 to build matrix (#1359) 2024-03-04 14:02:39 -08:00
build.yaml fix: Fix tags in official Docker images and binaries (#1370) 2024-03-12 13:09:38 -07:00
lint.yaml ci: Update actions (#1360) 2024-03-05 09:28:51 -08:00
pr.yaml feat!: Rewrite build system and third-party dependencies (#1310) 2023-12-01 09:32:19 -08:00
publish-docker.yaml fix: Fix tags in official Docker images and binaries (#1370) 2024-03-12 13:09:38 -07:00
publish-docs.yaml ci: Update actions (#1360) 2024-03-05 09:28:51 -08:00
publish-npm.yaml fix: Fix NPM binary publication (#1371) 2024-03-12 13:09:56 -07:00
release-please.yaml fix: Fix tags in official Docker images and binaries (#1370) 2024-03-12 13:09:38 -07:00
settings.yaml feat!: Rewrite build system and third-party dependencies (#1310) 2023-12-01 09:32:19 -08:00
sync-labels.yaml ci: Update actions (#1360) 2024-03-05 09:28:51 -08:00
test-linux-distros.yaml ci: Update actions (#1360) 2024-03-05 09:28:51 -08:00
update-issues.yaml ci: Update actions (#1360) 2024-03-05 09:28:51 -08:00
validate-pr-title.yaml chore: Sync common workflows (#1262) 2023-09-01 19:26:57 -07:00

README.md

GitHub Actions CI

Reusable workflows

  • build.yaml: Build and test all combinations of OS & build settings. Also builds docs on Linux.

  • build-docs.yaml: Build Packager docs. Runs only on Linux.

  • build-docker.yaml: Build the official Docker image.

  • lint.yaml: Lint Shaka Packager.

  • publish-docs.yaml: Publish Packager docs. Runs on the latest release.

  • publish-docker.yaml: Publish the official docker image. Runs on all releases.

  • publish-npm.yaml: Publish binaries to NPM. Runs on all releases.

  • test-linux-distros.yaml: Test the build on all Linux distros via docker.

Composed workflows

  • On PR (pr.yaml), invoke:
    • lint.yaml
    • build.yaml
    • build-docs.yaml
    • build-docker.yaml
    • test-linux-distros.yaml

Release workflow

  • release-please.yaml
    • Updates changelogs, version numbers based on conventional commits syntax and semantic versioning
    • Generates/updates a PR on each push
    • When the PR is merged, runs additional steps:
      • Creates a GitHub release
      • Invokes publish-docs.yaml to publish the docs
      • Invokes publish-docker.yaml to publish the docker image
      • Invokes build.yaml
      • Attaches the binaries from build.yaml to the GitHub release
      • Invokes publish-npm.yaml to publish the binaries to NPM

Common workflows from shaka-project

  • sync-labels.yaml
  • update-issues.yaml
  • validate-pr-title.yaml

Required Repo Secrets

  • RELEASE_PLEASE_TOKEN: A PAT for shaka-bot to run the release-please action. If missing, the release workflow will use the default GITHUB_TOKEN
  • 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

Repo Settings

Each of these workflow features can be enabled by creating a "GitHub Environment" with the same name in your repo settings. Forks will not have these enabled by default.

  • debug: enable debugging via SSH after a failure
  • self_hosted: enable self-hosted runners in the build matrix