Revert "Merge pull request #1042 from cloudflare/harris/kj-stack-arra… #3702
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
pull_request: | |
paths-ignore: | |
- 'doc/**' | |
push: | |
branches: | |
- main | |
jobs: | |
test: | |
strategy: | |
matrix: | |
os: [ubuntu-20.04, macos-latest, windows-2022] | |
include: | |
- os-name: linux | |
os: ubuntu-20.04 | |
- os-name: macOS | |
os: macos-latest | |
- os-name: windows | |
os: windows-2022 | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
name: test (${{ matrix.os-name }}) | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache | |
id: cache | |
uses: actions/cache@v3 | |
with: | |
path: ~/bazel-disk-cache | |
key: bazel-disk-cache-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('.bazelversion', '.bazelrc', 'WORKSPACE') }} | |
# Intentionally not reusing an older cache entry using a key prefix, bazel frequently | |
# ends up with a larger cache at the end when starting with an available cache entry, | |
# resulting in a snowballing cache size and cache download/upload times. | |
- name: Setup Linux | |
if: runner.os == 'Linux' | |
# Install dependencies, including clang via through LLVM APT repository. Note that this | |
# will also install lldb and clangd alongside dependencies, which can be removed with | |
# `sudo apt-get remove -y lldb-14 clangd-14; sudo apt-get autoremove -y` if space is | |
# limited. | |
# libunwind, libc++abi1 and libc++1 should be automatically installed as dependencies of | |
# libc++, but this appears to cause errors so they are also being explicitly installed. | |
# Since the GitHub runner image comes with a number of preinstalled packages, we don't need | |
# to use APT much otherwise. | |
run: | | |
export DEBIAN_FRONTEND=noninteractive | |
wget https://apt.llvm.org/llvm.sh | |
chmod +x llvm.sh | |
sudo ./llvm.sh 14 | |
sudo apt-get install -y libunwind-14 libc++abi1-14 libc++1-14 libc++-14-dev | |
echo "build:linux --action_env=CC=/usr/lib/llvm-14/bin/clang --action_env=CXX=/usr/lib/llvm-14/bin/clang++" >> .bazelrc | |
echo "build:linux --host_action_env=CC=/usr/lib/llvm-14/bin/clang --host_action_env=CXX=/usr/lib/llvm-14/bin/clang++" >> .bazelrc | |
- name: Setup Windows | |
if: runner.os == 'Windows' | |
# Set a custom output dir and disable generating debug information on Windows. By default, | |
# bazel generates huge amounts of debug information on Windows which slows down the build | |
# and takes up an excessive amount of cache space. | |
run: | | |
[System.IO.File]::WriteAllLines((Join-Path -Path $env:USERPROFILE -ChildPath '.bazelrc'), 'startup --output_user_root=C:/tmp') | |
[System.IO.File]::WriteAllLines((Join-Path -Path $env:USERPROFILE -ChildPath '.bazelrc'), 'build:windows --config=windows_no_dbg') | |
# Upgrade to LLVM 16.0.6, default install is currently 15 (https://github.com/actions/runner-images/issues/8125). | |
# When we need to upgrade beyond LLVM 16.0.6, ${WORKSPACE}/.bazelrc will need updating. | |
choco upgrade llvm --version=16.0.6 | |
# Work around bazel clang 16 include path bug (https://github.com/bazelbuild/bazel/issues/17863) | |
Move-Item -Path "C:\Program Files\LLVM\lib\clang\16" -Destination "C:\Program Files\LLVM\lib\clang\16.0.6" | |
- name: Bazel build | |
# timestamps are no longer being added here, the GitHub logs include timestamps (Use | |
# 'Show timestamps' on the web interface) | |
run: | | |
bazelisk build --disk_cache=~/bazel-disk-cache --remote_cache=https://bazel:${{ secrets.BAZEL_CACHE_KEY }}@bazel-remote-cache.devprod.cloudflare.dev --verbose_failures //... | |
- name: Bazel tests | |
run: | | |
bazelisk test --disk_cache=~/bazel-disk-cache --remote_cache=https://bazel:${{ secrets.BAZEL_CACHE_KEY }}@bazel-remote-cache.devprod.cloudflare.dev --verbose_failures --keep_going --test_output=errors //... | |
- name: Report disk usage | |
if: always() | |
shell: bash | |
run: | | |
BAZEL_OUTPUT_BASE=$(bazel info --ui_event_filters=-WARNING output_base) | |
BAZEL_REPOSITORY_CACHE=$(bazel info --ui_event_filters=-WARNING repository_cache) | |
echo "Bazel cache usage statistics" | |
du -hs -t 1 ~/bazel-disk-cache/* $BAZEL_REPOSITORY_CACHE | |
echo "Bazel output usage statistics" | |
du -hs -t 1 $BAZEL_OUTPUT_BASE | |
echo "Workspace usage statistics" | |
du -hs -t 1 $GITHUB_WORKSPACE | |