55 Commits

Author SHA1 Message Date
Joey Parrish
e8c2b9f598 ci: Pin clang-format-18 in linter workflow (#1560)
Some checks failed
Update Issues / update-issues (push) Has been cancelled
Release / Settings (push) Has been cancelled
Release / release (push) Has been cancelled
Release / Compute latest release flag (push) Has been cancelled
Release / Update docs (push) Has been cancelled
Release / Update docker image (push) Has been cancelled
Release / Build (push) Has been cancelled
Release / Artifacts (push) Has been cancelled
Release / Update NPM (push) Has been cancelled
Sync Labels / sync-labels (push) Has been cancelled
Also drop the explicit --style argument, letting .clang-format rule
2026-03-14 16:27:30 -07:00
Joey Parrish
ca04689c94 ci: Make linting happen entirely in parallel (#1556)
It has been very, very annoying lately to have PRs get stuck in several
loops of linter failures without finding out if the thing builds or
passes tests. From now on, lint in parallel with everything else.
2026-03-14 16:05:45 -07:00
Cosmin Stejerean
e46b7591e1 fix: Upgrade deps that are meant for older versions of CMake (#1508)
Some checks failed
Update Issues / update-issues (push) Has been cancelled
Release / Settings (push) Has been cancelled
Release / Update docs (push) Has been cancelled
Release / Update docker image (push) Has been cancelled
Release / Build (push) Has been cancelled
Release / Artifacts (push) Has been cancelled
Release / Update NPM (push) Has been cancelled
Release / release (push) Has been cancelled
Release / Compute latest release flag (push) Has been cancelled
Current deps require an old CMake version, support for which has been
removed from latest CMake in Ubuntu and Arch.

```
CMake Error at packager/third_party/c-ares/source/CMakeLists.txt:3 (CMAKE_MINIMUM_REQUIRED):
  Compatibility with CMake < 3.5 has been removed from CMake.
```

This upgrades:
 - abseil-cpp, 20240116.0 => 20260107.1
 - c-ares, v1.20.1 => v1.34.5
 - json, v3.10.1-115-g954b10ad => v3.12.0
 - libwebm, 1.0.0.28 => 1.0.0.32

With these changes, the build has been verified with CMake 3.31.11
(latest v3) and CMake 4.2.3 (latest v4).

---------

Co-authored-by: Joey Parrish <joeyparrish@google.com>
2026-03-11 18:24:15 -07:00
Joey Parrish
4b3d1f98f9 fix(ci): Update release for trusted publishing to NPM (#1544)
This handles trusted publishing for Shaka Packager to NPM without
tokens.

This also updates upload/download actions, and adds a filter on specific
artifacts downloaded to avoid conflicts that have arisen since the last
release.

Also updates the images used in the build matrix.

Issue shaka-project/shaka-player#9132
2026-03-04 13:30:04 -08:00
Joey Parrish
7cd7e48e9c fix: Upgrade libpng to fix build on new macs (#1507)
This upgrades libpng from v1.6.37 to v1.6.50

This newer libpng doesn't assume the existence of fp.h on Mac (which
isn't present on newer ones), but the CMake options for libpng changed
and had to be adjusted somewhat.
2025-11-21 11:13:11 -08:00
Joey Parrish
71ef59150f ci: Use a mirror of musl.cc (#1505)
musl.cc is overwhelmed by GitHub traffic, and therefore has blocked all
of Microsoft. This switches to a mirror run on GitHub so that we can
continue to access the toolchains.
2025-08-08 11:00:37 -07:00
Joey Parrish
9a6b2a50c0 feat(ci): Official multiarch docker images for x64 + arm64 (#1490)
Some checks failed
Release / Settings (push) Has been cancelled
Release / release (push) Has been cancelled
Release / Compute latest release flag (push) Has been cancelled
Release / Update docs (push) Has been cancelled
Release / Update docker image (push) Has been cancelled
Release / Build (push) Has been cancelled
Release / Artifacts (push) Has been cancelled
Release / Update NPM (push) Has been cancelled
Sync Labels / sync-labels (push) Has been cancelled
This adds support for Docker-based testing on arm64 images and runners.

This also adds a multiarch build process so that future releases cover
both x64 and arm64.

This is tagged as "feat" so that this gets called out in the changelog
for the next release.
2025-03-15 11:56:24 -07:00
Joey Parrish
89d59a3601 ci: Update comments for the settings workflow (#1476)
Since the introduction of `vars` to GitHub Actions, I started using that
instead of the "environments" trick I used in Packager. However, it has
become clear now that the `vars` strategy has major drawbacks, such as
requiring the use of `pull_request_target`, which should only be used
for actions that do not execute PR-author-controlled code.

This updates the comments to clarify why this is used. This reusable
settings workflow will also be deployed now in other repos to
standardize on this "environments" mechanism, which is safer than
`vars`.
2025-01-17 14:18:54 -08:00
Joey Parrish
b882572b54 fix(ci): Fix incomplete 3.4.1 release (#1471)
Some checks are pending
Release / Settings (push) Waiting to run
Release / release (push) Blocked by required conditions
Release / Compute latest release flag (push) Blocked by required conditions
Release / Update docs (push) Blocked by required conditions
Release / Update docker image (push) Blocked by required conditions
Release / Build (push) Blocked by required conditions
Release / Artifacts (push) Blocked by required conditions
Release / Update NPM (push) Blocked by required conditions
google-github-actions/release-please-action has been deprecated and
replaced with googleapis/release-please-action.
2025-01-16 15:44:10 -08:00
Joey Parrish
ea48ee46bf ci: Upgrade pylint to support Python 3.12 (#1472)
Some checks failed
Release / Settings (push) Has been cancelled
Release / release (push) Has been cancelled
Release / Compute latest release flag (push) Has been cancelled
Release / Update docs (push) Has been cancelled
Release / Update docker image (push) Has been cancelled
Release / Build (push) Has been cancelled
Release / Artifacts (push) Has been cancelled
Release / Update NPM (push) Has been cancelled
Sync Labels / sync-labels (push) Has been cancelled
Also fixes issues raised by the newer, stricter pylint
2025-01-10 08:11:04 -08:00
Joey Parrish
038b8571a3 ci: Update nodejs to a maintained version (#1466)
Some checks are pending
Release / release (push) Blocked by required conditions
Release / Compute latest release flag (push) Blocked by required conditions
Release / Update docs (push) Blocked by required conditions
Release / Update docker image (push) Blocked by required conditions
Release / Build (push) Blocked by required conditions
Release / Settings (push) Waiting to run
Release / Artifacts (push) Blocked by required conditions
Release / Update NPM (push) Blocked by required conditions
2024-12-19 17:53:50 -08:00
Shaka Bot
091f0f3e03 chore: Sync common workflows (#1465)
Some checks failed
Release / Settings (push) Has been cancelled
Release / Update NPM (push) Has been cancelled
Release / release (push) Has been cancelled
Release / Compute latest release flag (push) Has been cancelled
Release / Update docs (push) Has been cancelled
Release / Update docker image (push) Has been cancelled
Release / Build (push) Has been cancelled
Release / Artifacts (push) Has been cancelled
This is an automated sync of common workflows for this organization.
The upstream source is:

be928d3061

Co-authored-by: Shaka Bot <shaka-bot@users.noreply.github.com>
2024-12-18 08:35:37 -08:00
Joey Parrish
57330eda4a ci: Do not persist credentials after checkout (#1464)
See actions/checkout#485 and
https://johnstawinski.com/2024/01/11/playing-with-fire-how-we-executed-a-critical-supply-chain-attack-on-pytorch/

In short, it is a terrible idea to persist even our default credentials
after checkout. There's no call for that, so we will now set
`persist-credentials: false` on all checkout actions.
2024-12-18 08:25:39 -08:00
Joey Parrish
4e6a79f5d7 ci: Update workflow permissions (#1462)
Some checks are pending
Release / Update docker image (push) Blocked by required conditions
Release / Build (push) Blocked by required conditions
Release / Artifacts (push) Blocked by required conditions
Release / Update NPM (push) Blocked by required conditions
Release / Update docs (push) Blocked by required conditions
Release / Settings (push) Waiting to run
Release / release (push) Blocked by required conditions
Release / Compute latest release flag (push) Blocked by required conditions
Now that default permissions are read-only, we must enable specific
permissions for certain workflow jobs.
2024-12-17 09:30:05 -08:00
Joey Parrish
774cd3f1bc ci: Read build matrix JSON explicitly (#1461)
Some checks are pending
Release / release (push) Blocked by required conditions
Release / Settings (push) Waiting to run
Release / Compute latest release flag (push) Blocked by required conditions
Release / Update docs (push) Blocked by required conditions
Release / Update docker image (push) Blocked by required conditions
Release / Build (push) Blocked by required conditions
Release / Artifacts (push) Blocked by required conditions
Release / Update NPM (push) Blocked by required conditions
Because we used require() to read build-matrix.json, the file could be
replaced with build-matrix.json.js, allowing code injection into our CI
pipelines. This fixes this vulnerability by reading the JSON text with
the fs module, then explicitly parsing it, rather than relying on
require().

This also changes the location of the file, to match its location in
other projects.

Note that this workflow is not currently giving any elevated permissions
to users, so it is not currently possible to damage the repo through a
PR. But this might have been possible in the past, due to
organization-wide defaults for token permissions (recently fixed). No
evidence has been found of past exploit.

See also https://github.com/shaka-project/shaka-streamer/issues/216 and
https://github.com/shaka-project/static-ffmpeg-binaries/issues/57
2024-12-16 15:02:21 -08:00
Joey Parrish
154c1b3a18 ci: Ignore cert error for apt.kitware.com (#1459)
This should fix the retrieval of the GPG key and allow an updated cmake to be installed.
2024-12-12 10:22:30 -08:00
Shaka Bot
a26e6623d6 chore: Sync common workflows (#1456)
Some checks failed
Release / Settings (push) Has been cancelled
Release / release (push) Has been cancelled
Release / Compute latest release flag (push) Has been cancelled
Release / Update docs (push) Has been cancelled
Release / Update docker image (push) Has been cancelled
Release / Build (push) Has been cancelled
Release / Artifacts (push) Has been cancelled
Release / Update NPM (push) Has been cancelled
This is an automated sync of common workflows for this organization.
The upstream source is:

11128e0985

Co-authored-by: Shaka Bot <shaka-bot@users.noreply.github.com>
2024-12-10 09:56:59 -08:00
Joey Parrish
0857653338 ci: Fix workflow events (#1446)
Some checks failed
Release / Settings (push) Has been cancelled
Release / release (push) Has been cancelled
Release / Compute latest release flag (push) Has been cancelled
Release / Update docs (push) Has been cancelled
Release / Update docker image (push) Has been cancelled
Release / Build (push) Has been cancelled
Release / Artifacts (push) Has been cancelled
Release / Update NPM (push) Has been cancelled
This was found by auditing workflows based on research published here:

https://github.com/joeyparrish/workflow-cheat-sheet

The research was prompted by a workflow bug in Shaka Streamer
2024-11-05 14:34:47 -08:00
Cosmin Stejerean
62f861c9c2 docs: Fix missing graphviz outputs in generated docs (#1392)
Fixes #1388
2024-05-01 14:20:35 -07:00
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
Joey Parrish
d83c7b1d45 fix: Fix tags in official Docker images and binaries (#1370)
The release workflows did not run checkout with `fetch-tags: true`, so
the builds were unable to compute the correct release version number. I
audited all instances of `actions/checkout` to add `fetch-tags` where
needed and clean up unneeded options.

I also had to fix options to `docker/build-push-action`, which by
default ignores `actions/checkout` and tries to pull from git itself.
This led to the Docker build running in a context without the new tag.

Finally, to make verification easier and provide version info in the
build logs, this adds debugging info to the version-generation script
via stderr.

Closes #1366
2024-03-12 13:09:38 -07:00
Joey Parrish
ebd608ae68 ci: Update actions (#1360)
This silences warnings about outdated node runtimes in CI jobs.

 - Trivial upgrades:
   - actions/checkout@v3 => v4
   - actions/deploy-pages@v2 => v4
   - actions/upload-pages-artifact@v2 => v3
   - mxschmitt/action-tmate@v3.6 => v3.17
   - mikepenz/action-junit-report@v3.8.0 => v4
 - Upgrades that required small changes or deeper testing:
   - actions/download-artifact@v3 => v4
   - actions/upload-artifact@v3 => v4
   - google-github-actions/release-please-action@v3 => v4
 - Replaced:
   - svenstaro/upload-release-action@v2 => gh CLI

See also:
- https://github.com/actions/upload-artifact/blob/main/docs/MIGRATION.md
2024-03-05 09:28:51 -08:00
Joey Parrish
c456ad64d1 fix(CI): Add Mac-arm64 to build matrix (#1359)
Support for this came out in January, 2024. Explicit macos versions seem
to be necessary for now, until GitHub offers "latest" labels targeting
specific architectures.
2024-03-04 14:02:39 -08:00
Joey Parrish
9c033b9d40 ci: Add missing arm64 (self-hosted) builds on release (#1358)
The build invocation from the release workflow needs settings to trigger
self-hosted builds, including Linux arm64.
2024-03-04 11:06:43 -08:00
Joey Parrish
9be7c2b1ac feat: Portable, fully-static release executables on Linux (#1351)
This adds the option FULLY_STATIC to create fully-static executables.

To create portable, fully-static release executables on Linux, we need
to use musl instead of glibc. Static executables from glibc are not
portable.

The popular musl-gcc wrapper does not support C++, so instead we use a
full musl cross-compiler toolchain in the build workflow.

To build FULLY_STATIC, the user must point to the appropriate
cross-compiler, as we do in the workflow. On systems where musl is the
native libc (such as Alpine Linux), this is not necessary.

I have also read that musl's allocator is not very fast in
multi-threaded applications. So when FULLY_STATIC is enabled, we will
also enable mimalloc, a replacement allocator that is very fast.

I tested a very basic packaging command to compare speeds of dynamic
glibc, static musl, and static musl+mimalloc:

dynamic glibc:
runs: 2.527, 2.798, 2.703, 2.756, 2.959
avg = 2.749, std dev = 0.156s

static musl:
runs: 2.813, 2.920, 3.129, 3.003, 2.738
avg = 2.921s, std dev = 0.154s

static musl+mimalloc:
runs: 2.291, 2.034, 2.415, 2.303, 2.265
avg = 2.262s, std dev = 0.140s

The mimalloc build is 82% faster than musl default allocator, 77% faster
than glibc, and has more consistent runtime characteristics (lower
standard deviation).
2024-02-27 10:47:04 -08:00
Joey Parrish
1f71fa0a0e build: Fix absl log flags being stripped (#1340)
According to a comment in
packager/third_party/abseil-cpp/source/absl/log/CMakeLists.txt, many
linkers will strip the contents of absl::log_flags because its symbols
symbols are only used in a global constructor, and that for now, clients
should link using
$<LINK_LIBRARY:WHOLE_ARCHIVE,absl::log_flags>.

Closes #1325
2024-02-14 13:59:18 -08:00
Joey Parrish
3e71302ba4 feat!: Rewrite build system and third-party dependencies (#1310)
This work was done over ~80 individual commits in the `cmake` branch,
which are now being merged back into `main`. As a roll-up commit, it is
too big to be reviewable, but each change was reviewed individually in
context of the `cmake` branch. After this, the `cmake` branch will be
renamed `cmake-porting-history` and preserved.

---------

Co-authored-by: Geoff Jukes <geoffjukes@users.noreply.github.com>
Co-authored-by: Bartek Zdanowski <bartek.zdanowski@gmail.com>
Co-authored-by: Carlos Bentzen <cadubentzen@gmail.com>
Co-authored-by: Dennis E. Mungai <2356871+Brainiarc7@users.noreply.github.com>
Co-authored-by: Cosmin Stejerean <cstejerean@gmail.com>
Co-authored-by: Carlos Bentzen <carlos.bentzen@bitmovin.com>
Co-authored-by: Cosmin Stejerean <cstejerean@meta.com>
Co-authored-by: Cosmin Stejerean <cosmin@offbytwo.com>
2023-12-01 09:32:19 -08:00
Shaka Bot
b7660590a6 chore: Sync common workflows (#1262)
This is an automated sync of common workflows for this organization.
The upstream source is:

4245160a0b

Co-authored-by: Shaka Bot <shaka-bot@users.noreply.github.com>
2023-09-01 19:26:57 -07:00
Shaka Bot
6d745460b6 chore: Sync common workflows (#1250)
This is an automated sync of common workflows for this organization.
The upstream source is:
208556c5ea

Co-authored-by: Shaka Bot <shaka-bot@users.noreply.github.com>
2023-07-24 17:17:54 -07:00
Joey Parrish
d5ca6e84e6 ci: Fix main workflows (#1122)
This brings some workflow improvements and fixes from the `cmake` branch
to `main`, as well as some unique fixes to keep gclient working, so that
we can continue to accept contributions in `main` until the `cmake`
merge is ready.

 - Fix docs build in GitHub Actions (from `cmake` branch)
 - Cancel workflow when a PR is updated (from `cmake` branch)
 - Fix docker failures caused by running as root (from `cmake` branch)
 - Work around exception in depot_tools on Windows
 - Use Windows 2019 images in GitHub Actions for compatibility with gyp
- Remove Docker build on ArchLinux, which no longer supports python2 at
all
- (NOTE: The `cmake` branch is still building on ArchLinux. Docker
builds for Arch will be restored to the `main` branch when the `cmake`
branch is finally merged to `main`.)
2022-10-28 15:46:33 -07:00
Shaka Bot
3d60105738 chore: Sync common workflows (#1120)
This is an automated sync of common workflows for this organization.
The upstream source is:

8bfe75f0d2

Co-authored-by: Shaka Bot <shaka-bot@users.noreply.github.com>
2022-10-27 11:20:43 -07:00
Joey Parrish
3fd538a587 fix: Roll back depot_tools, bypass vpython (#1045)
Using the latest depot_tools no longer works.  depot_tools also wants
to auto-update itself, which must now be disabled.

We also need to disable the copy of python (vpython) included in
depot_tools, since for some distros, it has dependencies on system
libraries that no longer exist.

Finally, we need to force some distros to use python 2, because our
build system is ancient and needs to be ripped out and replaced some
day soon.

This fixes build issues in our CI, our Dockerfiles, and in general on
certain platforms or distros.

Closes #1023
2022-03-08 16:46:18 -08:00
Joey Parrish
2f9065349f ci: Fix macOS build by downgrading to 10.15 (#1044) 2022-03-08 09:04:49 -08:00
Joey Parrish
f577e2a0cf chore: Update URLs after moving projects (#1042)
Since a project URL is encoded into outputs, this means also updating
the golden output files.

Closes #1043
2022-03-07 11:56:34 -08:00
Shaka Bot
576889eecc chore: Sync common workflows (#1039)
This is an automated sync of common workflows for this organization.
The upstream source is:
b39597e92d

Co-authored-by: Shaka Bot <shaka-bot@users.noreply.github.com>
2022-02-28 21:14:32 -08:00
Shaka Bot
362a2a5dd1 chore: Sync common workflows (#1037)
This is an automated sync of common workflows for this organization.
The upstream source is:
9517df8f73

Co-authored-by: Shaka Bot <shaka-bot@users.noreply.github.com>
2022-02-25 10:12:44 -08:00
Shaka Bot
f68108b1f9 chore: Sync common workflows (#1034)
This is an automated sync of common workflows for this organization.
The upstream source is:
aa5e38eb86

Co-authored-by: Shaka Bot <shaka-bot@users.noreply.github.com>
2022-02-24 14:38:50 -08:00
Joey Parrish
157f8bb060 ci: Add workflow to sync issue labels with central config (#1031) 2022-02-16 08:34:19 -08:00
Joey Parrish
e2d66b33fa fix: Fix crash in static-linked linux builds
The official, static-linked linux builds were crashing in their use of
getaddrinfo, which libcurl was configured to use.  Both getaddrinfo
and all of its alternatives available in glibc fail with static
linking.

We can fix this by configuring libcurl to use libc-ares on Linux
instead.  This allows us to keep the benefits of a statically-linked
Linux binary.

Closes #996

Change-Id: Ib4a9eb939813fd165727788726459ef4adf3fc4d
2021-10-14 10:35:49 -07:00
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
Joey Parrish
d02b960452 test: Pin pylint to a specific version in GitHub Actions
This should prevent us from failing new pylint rules without any code
changes on our part.

Change-Id: If8b8c2a180e921cdfc3b99a9e17a798599ebe19b
2021-10-13 12:25:34 -07:00
Joey Parrish
f332e42600 CI: update runner labels for self-hosted runners
It was suggested in code review for another project that we update the
runner labels for clarity.  This brings Packager in line with that, so
that we are using the same labels across projects.

The runners have already been updated to register with the new label.

Change-Id: I30b22530225b5bd22b965ba98d276bcd74ade6cf
2021-08-26 14:02:51 -07:00
Joey Parrish
bbd0a1afa6 build: Make release binary names more consistent
Now that we have multiple architectures, we should factor both OS and
architecture into the names of release binaries.  This makes the names
more formulaic, as well as consistent with the static-ffmpeg-binaries
repository.  Shaka Streamer will pull binaries from both this repo and
that one, so consistent names would be helpful.

The pssh-box release is actually OS and architecture independent, so
remove the suffix from that and only release one copy of it.

Change-Id: Ief3de49fae267c5267647a8dd4377023777ead37
2021-08-26 20:44:40 +00:00
Joey Parrish
6cbc797ccc build: Fix missing target_arch parameter in build action
This was causing failures on arm64, where the build action had an
arm-specific clause that was skipped due to the missing parameter.

Change-Id: I71b7fb15120855c444749dc2216b5f19f0561f6e
2021-08-23 22:14:14 -07:00
Joey Parrish
879e2fef16 build: Add arm64 to the build matrix
This will also allow us to create official arm64 builds starting with
our next release.

Change-Id: Iaca5e8406c5e28883346a7884eb0f30815ad0d19
2021-08-16 19:41:19 +00:00
Joey Parrish
b411af7ed9 ci: Produce static release executables on Linux (#978)
We never produced static release executables on Linux before, but the dynamic libraries they depended on were universal enough that nobody noticed. Now that we have released v2.5 and switched to GitHub Actions for CI builds, the Linux executables depend on libatomic, which is causing issues for some users.

Although we can't create fully-static executables on macOS or Windows, we can at least do so on Linux.

This adds a GYP variable static_link_binaries which can be set to request full-static binaries on Linux. This also exposes the Chromium build variable disable_fatal_linker_warnings, which is necessary when static linking on Linux due to static-link-related warnings generated by libcurl for its use of getaddrinfo. Finally, this enforces the definition of __UCLIBC__ with static linking on Linux, which is the only way to disable malloc hooks in Chromium base. Those hooks cause linker failures when linking statically on Linux.

A new check has been added to the release workflow to ensure that the builds we create are statically linked on Linux.

Closes #965
2021-08-12 20:14:43 -07:00
Joey Parrish
507a731a9a ci: Use GITHUB_TOKEN instead of SHAKA_BOT_TOKEN (#977)
There is not a good reason to use a long-lived token attached to
shaka-bot.  Instead, use a short-lived, automatic token generated by
GitHub Actions for the workflow run.
2021-08-12 10:50:29 -07:00
Joey Parrish
68b50f656d build: Stop using hermetic clang, libc++, etc
This brings our default build config more in line with what is
necessary for some platforms anyway: using the system-installed
toolchain and sysroot to build everything.

We will no longer fetch source or binaries for any specific build
tools, such as libc++, clang, gold, binutils, or valgrind.

The main part of this change is the changing of default gyp settings
in gyp_packager.py.  For this, a bug in gyp_packager.py had to be
fixed, in which similar GYP_DEFINE key names (such as clang and
host_clang) would conflict, causing some defaults not to be installed
properly.

In order to enable clang=0 by default, some changes had to be made in
common.gypi:
  - compiler macros added to fix a compatibility issue between
    Chromium's base/mac/ folder and the actual OSX SDK
	- replaced clang_warning_flags variables with standard cflags
	  settings, plus xcode_settings for OSX
  - turned off warnings-as-errors for non-shaka code, rather than
		allow-listing specific warning types, since we can't actually fix
    those warnings on any platform
  - disabled two specific warnings in shaka code, both of which are
    caused by headers from our non-shaka dependencies

Also, one warning (missing "override" keyword) has been fixed in
vod_media_info_dump_muxer_listener.h.

Although these changes were done to make building simpler on a wider
array of platforms (arm64, for example), it seems to make the build a
bit faster, too.  For me, at least, on my main Linux workstation:
  - "gclient sync" now runs 20-30% faster
  - "ninja -C out/Release" now runs 5-13% faster

The following environment variables are no longer required:
  - DEPOT_TOOLS_WIN_TOOLCHAIN
  - MACOSX_DEPLOYMENT_TARGET
Documentation, Dockerfiles, and GitHub Actions workflows have been
updated to reflect this.

The following GYP_DEFINES are no longer required for anyone:
  - clang=0
  - host_clang=0
  - clang_xcode=1
  - use_allocator=none
  - use_experimental_allocator_shim=0
Documentation, Dockerfiles, and GitHub Actions workflows have been
updated to reflect this.

The following repos are no longer dependencies in gclient:
  - binutils
  - clang
  - gold
  - libc++
  - libc++abi
  - valgrind

The following gclient hooks have been removed:
  - clang
  - mac_toolchain
  - sysroot

Change-Id: Ie94ccbeec722ab73c291cb7df897d20761a09a70
2021-07-29 13:54:44 -07:00
Joey Parrish
9f11077768 Install pylint explicitly in custom linter action
Change-Id: I61891ef6682af209ee94b187b247f5b779e83c8a
2021-06-21 16:37:24 -07:00
Joey Parrish
56e227267c Fix python linter errors and add linter checks to CI
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
2021-06-21 21:46:48 +00:00