[llvm] [libc][workflow] address permission concern and add more comments (PR #119320)
Schrodinger ZHU Yifan via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 9 20:11:11 PST 2024
https://github.com/SchrodingerZhu updated https://github.com/llvm/llvm-project/pull/119320
>From 301dc4aeba7169b5d5b0b486208ceac783fa84b7 Mon Sep 17 00:00:00 2001
From: schrodingerzhu <i at zhuyi.fan>
Date: Mon, 9 Dec 2024 23:07:55 -0500
Subject: [PATCH] [libc][workflow] address permission concern and add more
comments
---
.github/workflows/libc-fullbuild-tests.yml | 19 ++++++++++++++++---
.github/workflows/libc-overlay-tests.yml | 18 ++++++++++++++++--
2 files changed, 32 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/libc-fullbuild-tests.yml b/.github/workflows/libc-fullbuild-tests.yml
index fb73aa392f3433..b07e94244c2e8c 100644
--- a/.github/workflows/libc-fullbuild-tests.yml
+++ b/.github/workflows/libc-fullbuild-tests.yml
@@ -1,6 +1,7 @@
# This workflow is for pre-commit testing of the LLVM-libc project.
name: LLVM-libc Pre-commit Fullbuild Tests
-
+permissions:
+ contents: read
on:
pull_request:
branches: [ "main" ]
@@ -22,7 +23,13 @@ jobs:
# cpp_compiler: g++
steps:
- uses: actions/checkout at v4
-
+
+ # Libc's build is relatively small comparing with other components of LLVM.
+ # A fresh fullbuild takes about 190MiB of uncompressed disk space, which can
+ # be compressed into ~40MiB. Limiting the cache size to 1G should be enough.
+ # Prefer sccache as it is more modern.
+ # Do not use direct GHAC access even though it is supported by sccache. GHAC rejects
+ # frequent small object writes.
- name: Setup ccache
uses: hendrikmuhs/ccache-action at v1.2
with:
@@ -30,6 +37,10 @@ jobs:
key: libc_fullbuild_${{ matrix.c_compiler }}
variant: sccache
+ # Notice:
+ # - MPFR is required by some of the mathlib tests.
+ # - Debian has a multilib setup, so we need to symlink the asm directory.
+ # For more information, see https://wiki.debian.org/Multiarch/LibraryPathOverview
- name: Prepare dependencies (Ubuntu)
run: |
sudo apt-get update
@@ -42,7 +53,9 @@ jobs:
run: |
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
echo "build-install-dir=${{ github.workspace }}/install" >> "$GITHUB_OUTPUT"
-
+
+ # Configure libc fullbuild with scudo.
+ # Use MinSizeRel to reduce the size of the build.
- name: Configure CMake
run: >
cmake -B ${{ steps.strings.outputs.build-output-dir }}
diff --git a/.github/workflows/libc-overlay-tests.yml b/.github/workflows/libc-overlay-tests.yml
index d0cdfdef99fe96..8b59d76aed4a88 100644
--- a/.github/workflows/libc-overlay-tests.yml
+++ b/.github/workflows/libc-overlay-tests.yml
@@ -1,6 +1,7 @@
# This workflow is for pre-commit testing of the LLVM-libc project.
name: LLVM-libc Pre-commit Overlay Tests
-
+permissions:
+ contents: read
on:
pull_request:
branches: [ "main" ]
@@ -32,7 +33,14 @@ jobs:
steps:
- uses: actions/checkout at v4
-
+
+ # Libc's build is relatively small comparing with other components of LLVM.
+ # A fresh linux overlay takes about 180MiB of uncompressed disk space, which can
+ # be compressed into ~40MiB. MacOS and Windows overlay builds are less than 10MiB
+ # after compression. Limiting the cache size to 1G should be enough.
+ # Prefer sccache as it is modern and it has a guarantee to work with MSVC.
+ # Do not use direct GHAC access even though it is supported by sccache. GHAC rejects
+ # frequent small object writes.
- name: Setup ccache
uses: hendrikmuhs/ccache-action at v1
with:
@@ -40,12 +48,15 @@ jobs:
key: libc_overlay_build_${{ matrix.os }}_${{ matrix.compiler.c_compiler }}
variant: sccache
+ # MPFR is required by some of the mathlib tests.
- name: Prepare dependencies (Ubuntu)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libmpfr-dev libgmp-dev libmpc-dev ninja-build
+ # Chocolatey is shipped with Windows runners. Windows Server 2025 recommends WinGet.
+ # Consider migrating to WinGet when Windows Server 2025 is available.
- name: Prepare dependencies (Windows)
if: runner.os == 'Windows'
run: |
@@ -62,6 +73,9 @@ jobs:
run: |
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
+ # Use MinSizeRel to reduce the size of the build.
+ # Notice that CMP0141=NEW and MSVC_DEBUG_INFORMATION_FORMAT=Embedded are required
+ # by the sccache tool.
- name: Configure CMake
run: >
cmake -B ${{ steps.strings.outputs.build-output-dir }}
More information about the llvm-commits
mailing list