Spaces:
Configuration error
Configuration error
name: 'generate and publish GRPC docker caches' | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- master | |
concurrency: | |
group: grpc-cache-${{ github.head_ref || github.ref }}-${{ github.repository }} | |
cancel-in-progress: true | |
jobs: | |
generate_caches: | |
strategy: | |
matrix: | |
include: | |
- grpc-base-image: ubuntu:22.04 | |
runs-on: 'ubuntu-latest' | |
platforms: 'linux/amd64,linux/arm64' | |
runs-on: ${{matrix.runs-on}} | |
steps: | |
- name: Release space from worker | |
if: matrix.runs-on == 'ubuntu-latest' | |
run: | | |
echo "Listing top largest packages" | |
pkgs=$(dpkg-query -Wf '${Installed-Size}\t${Package}\t${Status}\n' | awk '$NF == "installed"{print $1 "\t" $2}' | sort -nr) | |
head -n 30 <<< "${pkgs}" | |
echo | |
df -h | |
echo | |
sudo apt-get remove -y '^llvm-.*|^libllvm.*' || true | |
sudo apt-get remove --auto-remove android-sdk-platform-tools || true | |
sudo apt-get purge --auto-remove android-sdk-platform-tools || true | |
sudo rm -rf /usr/local/lib/android | |
sudo apt-get remove -y '^dotnet-.*|^aspnetcore-.*' || true | |
sudo rm -rf /usr/share/dotnet | |
sudo apt-get remove -y '^mono-.*' || true | |
sudo apt-get remove -y '^ghc-.*' || true | |
sudo apt-get remove -y '.*jdk.*|.*jre.*' || true | |
sudo apt-get remove -y 'php.*' || true | |
sudo apt-get remove -y hhvm powershell firefox monodoc-manual msbuild || true | |
sudo apt-get remove -y '^google-.*' || true | |
sudo apt-get remove -y azure-cli || true | |
sudo apt-get remove -y '^mongo.*-.*|^postgresql-.*|^mysql-.*|^mssql-.*' || true | |
sudo apt-get remove -y '^gfortran-.*' || true | |
sudo apt-get remove -y microsoft-edge-stable || true | |
sudo apt-get remove -y firefox || true | |
sudo apt-get remove -y powershell || true | |
sudo apt-get remove -y r-base-core || true | |
sudo apt-get autoremove -y | |
sudo apt-get clean | |
echo | |
echo "Listing top largest packages" | |
pkgs=$(dpkg-query -Wf '${Installed-Size}\t${Package}\t${Status}\n' | awk '$NF == "installed"{print $1 "\t" $2}' | sort -nr) | |
head -n 30 <<< "${pkgs}" | |
echo | |
sudo rm -rfv build || true | |
sudo rm -rf /usr/share/dotnet || true | |
sudo rm -rf /opt/ghc || true | |
sudo rm -rf "/usr/local/share/boost" || true | |
sudo rm -rf "$AGENT_TOOLSDIRECTORY" || true | |
df -h | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@master | |
with: | |
platforms: all | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@master | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Cache GRPC | |
uses: docker/build-push-action@v6 | |
with: | |
builder: ${{ steps.buildx.outputs.name }} | |
# The build-args MUST be an EXACT match between the image cache and other workflow steps that want to use that cache. | |
# This means that even the MAKEFLAGS have to be an EXACT match. | |
# If the build-args are not an EXACT match, it will result in a cache miss, which will require GRPC to be built from scratch. | |
build-args: | | |
GRPC_BASE_IMAGE=${{ matrix.grpc-base-image }} | |
GRPC_MAKEFLAGS=--jobs=4 --output-sync=target | |
GRPC_VERSION=v1.65.0 | |
context: . | |
file: ./Dockerfile | |
cache-to: type=gha,ignore-error=true | |
cache-from: type=gha | |
target: grpc | |
platforms: ${{ matrix.platforms }} | |
push: false | |