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 | |