If another instance of the build-and-test workflow is started for the
same PR, cancel the old one. If a PR is updated and a new test run is
started, the old test run will be cancelled automatically to conserve
resources.
Includes a YAML config file for our lab, and documentation on how to
create a custom config for another Selenium grid.
A workflow will run tests nightly in the Shaka lab, using a
self-hosted runner with access to our private grid.
The workflow can also be triggered manually by maintainers to test a
PR in the lab. This will report status back to the PR.
Rather than runtime-querying of appengine versions within the
appengine environment, we can instead generate the index at deployment
time (from git tags) and just serve static content. This simplifies
the system and avoids dependence on Google Cloud.
This was less feasible before we adopted GitHub Actions, but is now
relatively simple. The index will be regenerated when the index code
is updated or when a new release is created.
Closes#4074
In the GitHub Actions environment, it is now possible to install and
run tests on Safari 14. Though not completely straightforward, it
doesn't add much code to the workflow and shouldn't be too difficult
to maintain.
Closes#3899
This fixes the workflow job failing because of missing sources, and it
also fixes the job to run the compiler, not just build the image that
_could_ run the compiler.
Closes#4076
There is a typo in the workflow that is causing the workflow to be
rejected by GitHub.
I am not sure how I managed to merge this mistake in the first place.
The "if" fields do not need to use expression syntax (`${{ }}`), and
some conditionals will be easier to read if we omit that.
<!--
Please remember to:
1. Use Conventional Commits syntax (fix: ..., feat: ..., etc.) in commits and
PR title (https://www.conventionalcommits.org/)
2. Tag any related or fixed issues ("Issue #123", "Closes #420")
3. Sign the Google CLA if you haven't (https://cla.developers.google.com)
You may delete this comment from the PR description.
-->
Now that we are building tools to keep common workflows in sync across
repos, we should use the same names across repos. This brings Shaka
Player workflow names in line with everything else.
See https://github.com/joeyparrish/shaka-github-tools/pull/5
1. When release-please creates release PRs, it removes the -uncompiled
tag in the version number in lib/player.js. This adds a step to the
workflow to maintain the player.js version manually.
2. This also adds a new job that tags the master branch after a
release PR is merged. We maintain the -master tags on the master
branch corresponding to each release so that it is easier to manage
the range of commits for cherry-picks.
3. The "npm ci" step was failing because our package-lock.json was not
compatible with v12 of NodeJS. This updates our workflow to use v16.
The npm release workflow has now been tested in a fork up until the
publish step.
4. The tagging and GitHub release publication parts of the workflow
were previously failing due to an issue with release-please parsing
the branch name. This has now been fixed, and is awaiting an upstream
merge. For now, we can use my forked version.
Closes#3968 (branch parsing failure)
Issue #3969 (npm release is now tested up to the publish step)
Closes#3971 (master branch tags)
Closes#3974 (missing -uncompiled in lib/player.js)
Force-pushes from automated PRs (like release-please) do not seem to
trigger any of the normal PR triggers (opened, edited, synchronize).
In fact, even an exhaustive list of types will not work. So here we
add triggers for reviews, so that the validation will run after
someone approves such a PR. This is critical since this is a required
status check in most of our repos. If the workflow doesn't run, the
release PR can't be merged.
This includes a temporary config file to bootstrap the workflow for
the master branch, whose commit and branch history is too confusing
for the tool to handle with defaults. After v3.4.0 is released from
the master branch, these configs can be deleted.
CI for Firefox on Linux is failing because of (I suspect) an outdated
package index in Ubuntu. This addresses it by updating the package
list before installing ffmpeg.