From 83bbef592eaf5bed9b9733f478ac88a5f5820d0e Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Fri, 6 Sep 2024 15:13:46 +0300 Subject: [PATCH 01/13] ci: Speed up NSS build with `sccache` Maybe? --- .github/actions/nss/action.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/actions/nss/action.yml b/.github/actions/nss/action.yml index d851902eb3..b057815e7e 100644 --- a/.github/actions/nss/action.yml +++ b/.github/actions/nss/action.yml @@ -62,6 +62,23 @@ runs: # Ideally, we'd use actions/checkout. But things are sufficiently flaky that we're better off # trying both hg and git. + - name: Use sccache + uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd # v0.0.4 + + - name: Enable sscache + shell: bash + run: | + if [ "${{ runner.os }}" = "Windows" ]; then + echo "CC=sccache cl" >> "$GITHUB_ENV" + echo "CXX=sccache cl" >> "$GITHUB_ENV" + else + echo "CC=sccache cc" >> "$GITHUB_ENV" + echo "CXX=sccache c++" >> "$GITHUB_ENV" + fi + echo "SCCACHE_GHA_ENABLED=true" >> "$GITHUB_ENV" + echo "RUSTC_WRAPPER=sccache" >> "$GITHUB_ENV" + echo "CARGO_INCREMENTAL=0" >> "$GITHUB_ENV" + - name: Checkout NSS shell: bash if: env.BUILD_NSS == '1' From f48a286d21e438553f413874afc3c4c37c4ac53a Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Fri, 6 Sep 2024 15:34:02 +0300 Subject: [PATCH 02/13] Again --- .github/actions/nss/action.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/nss/action.yml b/.github/actions/nss/action.yml index b057815e7e..b75fbd0973 100644 --- a/.github/actions/nss/action.yml +++ b/.github/actions/nss/action.yml @@ -69,8 +69,8 @@ runs: shell: bash run: | if [ "${{ runner.os }}" = "Windows" ]; then - echo "CC=sccache cl" >> "$GITHUB_ENV" - echo "CXX=sccache cl" >> "$GITHUB_ENV" + echo "CC=sccache.exe cl" >> "$GITHUB_ENV" + echo "CXX=sccache.exe cl" >> "$GITHUB_ENV" else echo "CC=sccache cc" >> "$GITHUB_ENV" echo "CXX=sccache c++" >> "$GITHUB_ENV" From ab4dff798d57a2d935414ef91a9f27c793ec0590 Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Fri, 6 Sep 2024 15:52:44 +0300 Subject: [PATCH 03/13] No Windows --- .github/actions/nss/action.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/actions/nss/action.yml b/.github/actions/nss/action.yml index b75fbd0973..52bdd3c3b5 100644 --- a/.github/actions/nss/action.yml +++ b/.github/actions/nss/action.yml @@ -68,10 +68,8 @@ runs: - name: Enable sscache shell: bash run: | - if [ "${{ runner.os }}" = "Windows" ]; then - echo "CC=sccache.exe cl" >> "$GITHUB_ENV" - echo "CXX=sccache.exe cl" >> "$GITHUB_ENV" - else + if [ "${{ runner.os }}" != "Windows" ]; then + # TODO: Figure out if Windows can be supported echo "CC=sccache cc" >> "$GITHUB_ENV" echo "CXX=sccache c++" >> "$GITHUB_ENV" fi From ef489bdb3eb8fe57f12715f1321c6723d1a577b0 Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Mon, 9 Sep 2024 09:28:26 +0300 Subject: [PATCH 04/13] Fix cmake --- .github/actions/nss/action.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/actions/nss/action.yml b/.github/actions/nss/action.yml index 52bdd3c3b5..bfd9dfefb7 100644 --- a/.github/actions/nss/action.yml +++ b/.github/actions/nss/action.yml @@ -72,6 +72,8 @@ runs: # TODO: Figure out if Windows can be supported echo "CC=sccache cc" >> "$GITHUB_ENV" echo "CXX=sccache c++" >> "$GITHUB_ENV" + echo "DCMAKE_C_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" + echo "DCMAKE_CXX_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" fi echo "SCCACHE_GHA_ENABLED=true" >> "$GITHUB_ENV" echo "RUSTC_WRAPPER=sccache" >> "$GITHUB_ENV" From 49067f55a7e5d5f8b9b94949aaeb8d8cd2fac9f2 Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Mon, 9 Sep 2024 14:25:32 +0300 Subject: [PATCH 05/13] Fixes --- .github/actions/nss/action.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/actions/nss/action.yml b/.github/actions/nss/action.yml index bfd9dfefb7..5251ad9a4e 100644 --- a/.github/actions/nss/action.yml +++ b/.github/actions/nss/action.yml @@ -72,10 +72,12 @@ runs: # TODO: Figure out if Windows can be supported echo "CC=sccache cc" >> "$GITHUB_ENV" echo "CXX=sccache c++" >> "$GITHUB_ENV" - echo "DCMAKE_C_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" - echo "DCMAKE_CXX_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" + echo "CMAKE_C_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" + echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" + fi + if [ "$GITHUB_WORKFLOW" ]; then + echo "SCCACHE_GHA_ENABLED=true" >> "$GITHUB_ENV" fi - echo "SCCACHE_GHA_ENABLED=true" >> "$GITHUB_ENV" echo "RUSTC_WRAPPER=sccache" >> "$GITHUB_ENV" echo "CARGO_INCREMENTAL=0" >> "$GITHUB_ENV" From 45654da27cdfb706c2065e798612edaa1f2ca24b Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Mon, 9 Sep 2024 15:11:12 +0300 Subject: [PATCH 06/13] Fixes --- .github/actions/nss/action.yml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/actions/nss/action.yml b/.github/actions/nss/action.yml index 5251ad9a4e..38b0d90dcd 100644 --- a/.github/actions/nss/action.yml +++ b/.github/actions/nss/action.yml @@ -68,13 +68,8 @@ runs: - name: Enable sscache shell: bash run: | - if [ "${{ runner.os }}" != "Windows" ]; then - # TODO: Figure out if Windows can be supported - echo "CC=sccache cc" >> "$GITHUB_ENV" - echo "CXX=sccache c++" >> "$GITHUB_ENV" - echo "CMAKE_C_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" - echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" - fi + echo "CMAKE_C_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" + echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" if [ "$GITHUB_WORKFLOW" ]; then echo "SCCACHE_GHA_ENABLED=true" >> "$GITHUB_ENV" fi @@ -160,7 +155,7 @@ runs: echo "DYLD_FALLBACK_LIBRARY_PATH=$NSS_OUT/lib" >> "$GITHUB_ENV" echo "$NSS_OUT/lib" >> "$GITHUB_PATH" echo "NSS_DIR=$NSS_DIR" >> "$GITHUB_ENV" - $NSS_DIR/build.sh -g -Ddisable_tests=1 $OPT --static + echo CC="sccache cc" CXX="sccache c++" $NSS_DIR/build.sh -g -Ddisable_tests=1 $OPT --static env: NSS_DIR: ${{ github.workspace }}/nss NSPR_DIR: ${{ github.workspace }}/nspr From c5d3fe66660535362321dddce445faecfb0b5379 Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Mon, 9 Sep 2024 15:50:01 +0300 Subject: [PATCH 07/13] echo --- .github/actions/nss/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/nss/action.yml b/.github/actions/nss/action.yml index 38b0d90dcd..5a61d5e204 100644 --- a/.github/actions/nss/action.yml +++ b/.github/actions/nss/action.yml @@ -155,7 +155,7 @@ runs: echo "DYLD_FALLBACK_LIBRARY_PATH=$NSS_OUT/lib" >> "$GITHUB_ENV" echo "$NSS_OUT/lib" >> "$GITHUB_PATH" echo "NSS_DIR=$NSS_DIR" >> "$GITHUB_ENV" - echo CC="sccache cc" CXX="sccache c++" $NSS_DIR/build.sh -g -Ddisable_tests=1 $OPT --static + CC="sccache cc" CXX="sccache c++" $NSS_DIR/build.sh -g -Ddisable_tests=1 $OPT --static env: NSS_DIR: ${{ github.workspace }}/nss NSPR_DIR: ${{ github.workspace }}/nspr From 091ace31cc2139aa78858cb2b70d65368b498728 Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Mon, 9 Sep 2024 16:05:41 +0300 Subject: [PATCH 08/13] Again --- .github/actions/nss/action.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/actions/nss/action.yml b/.github/actions/nss/action.yml index 5a61d5e204..9b755539f8 100644 --- a/.github/actions/nss/action.yml +++ b/.github/actions/nss/action.yml @@ -68,6 +68,13 @@ runs: - name: Enable sscache shell: bash run: | + if [ "${{ runner.os }}" == "Windows" ]; then + echo "SCCACHE_CC=sccache cl" >> "$GITHUB_ENV" + echo "SCCACHE_CXX=sccache cl" >> "$GITHUB_ENV" + else + echo "SCCACHE_CC=sccache cc" >> "$GITHUB_ENV" + echo "SCCACHE_CXX=sccache c++" >> "$GITHUB_ENV" + fi echo "CMAKE_C_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" if [ "$GITHUB_WORKFLOW" ]; then @@ -155,7 +162,7 @@ runs: echo "DYLD_FALLBACK_LIBRARY_PATH=$NSS_OUT/lib" >> "$GITHUB_ENV" echo "$NSS_OUT/lib" >> "$GITHUB_PATH" echo "NSS_DIR=$NSS_DIR" >> "$GITHUB_ENV" - CC="sccache cc" CXX="sccache c++" $NSS_DIR/build.sh -g -Ddisable_tests=1 $OPT --static + CC="$SCCACHE_CC" CXX="$SCCACHE_CXX" $NSS_DIR/build.sh -g -Ddisable_tests=1 $OPT --static env: NSS_DIR: ${{ github.workspace }}/nss NSPR_DIR: ${{ github.workspace }}/nspr From f1e6e77bb208912e4dab952a38c2ba6ee3db9b42 Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Mon, 9 Sep 2024 16:13:37 +0300 Subject: [PATCH 09/13] exe --- .github/actions/nss/action.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/actions/nss/action.yml b/.github/actions/nss/action.yml index 9b755539f8..ed63619aaa 100644 --- a/.github/actions/nss/action.yml +++ b/.github/actions/nss/action.yml @@ -69,8 +69,8 @@ runs: shell: bash run: | if [ "${{ runner.os }}" == "Windows" ]; then - echo "SCCACHE_CC=sccache cl" >> "$GITHUB_ENV" - echo "SCCACHE_CXX=sccache cl" >> "$GITHUB_ENV" + echo "SCCACHE_CC=sccache.exe cl.exe" >> "$GITHUB_ENV" + echo "SCCACHE_CXX=sccache.exe cl.exe" >> "$GITHUB_ENV" else echo "SCCACHE_CC=sccache cc" >> "$GITHUB_ENV" echo "SCCACHE_CXX=sccache c++" >> "$GITHUB_ENV" @@ -162,6 +162,10 @@ runs: echo "DYLD_FALLBACK_LIBRARY_PATH=$NSS_OUT/lib" >> "$GITHUB_ENV" echo "$NSS_OUT/lib" >> "$GITHUB_PATH" echo "NSS_DIR=$NSS_DIR" >> "$GITHUB_ENV" + which sccache || true + which cl || true + which sccache.exe || true + which cl.exe || true CC="$SCCACHE_CC" CXX="$SCCACHE_CXX" $NSS_DIR/build.sh -g -Ddisable_tests=1 $OPT --static env: NSS_DIR: ${{ github.workspace }}/nss From 518eda8e002944a20eca7ecebdc229a39443cf27 Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Mon, 9 Sep 2024 16:21:36 +0300 Subject: [PATCH 10/13] No Windows --- .github/actions/nss/action.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/actions/nss/action.yml b/.github/actions/nss/action.yml index ed63619aaa..69694bba0b 100644 --- a/.github/actions/nss/action.yml +++ b/.github/actions/nss/action.yml @@ -68,10 +68,8 @@ runs: - name: Enable sscache shell: bash run: | - if [ "${{ runner.os }}" == "Windows" ]; then - echo "SCCACHE_CC=sccache.exe cl.exe" >> "$GITHUB_ENV" - echo "SCCACHE_CXX=sccache.exe cl.exe" >> "$GITHUB_ENV" - else + if [ "${{ runner.os }}" != "Windows" ]; then + # TODO: Figure out how to make this work on Windows echo "SCCACHE_CC=sccache cc" >> "$GITHUB_ENV" echo "SCCACHE_CXX=sccache c++" >> "$GITHUB_ENV" fi From e21fe3efe86a4f2bda1d323f3401b2f062a86bc2 Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Mon, 9 Sep 2024 16:23:25 +0300 Subject: [PATCH 11/13] No Windows --- .github/actions/nss/action.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/actions/nss/action.yml b/.github/actions/nss/action.yml index 69694bba0b..04bd002469 100644 --- a/.github/actions/nss/action.yml +++ b/.github/actions/nss/action.yml @@ -164,7 +164,11 @@ runs: which cl || true which sccache.exe || true which cl.exe || true - CC="$SCCACHE_CC" CXX="$SCCACHE_CXX" $NSS_DIR/build.sh -g -Ddisable_tests=1 $OPT --static + if [ "$SCCACHE_CC" ] && [ "$SCCACHE_CXX"]; then + export CC="$SCCACHE_CC" + export CXX="$SCCACHE_CXX" + fi + $NSS_DIR/build.sh -g -Ddisable_tests=1 $OPT --static env: NSS_DIR: ${{ github.workspace }}/nss NSPR_DIR: ${{ github.workspace }}/nspr From 0c5db075a08ec9418437b0b3164bd401c9a3677b Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Mon, 16 Sep 2024 08:27:57 +0300 Subject: [PATCH 12/13] Finalize --- .github/actions/nss/action.yml | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/.github/actions/nss/action.yml b/.github/actions/nss/action.yml index 04bd002469..d0495af904 100644 --- a/.github/actions/nss/action.yml +++ b/.github/actions/nss/action.yml @@ -70,8 +70,8 @@ runs: run: | if [ "${{ runner.os }}" != "Windows" ]; then # TODO: Figure out how to make this work on Windows - echo "SCCACHE_CC=sccache cc" >> "$GITHUB_ENV" - echo "SCCACHE_CXX=sccache c++" >> "$GITHUB_ENV" + echo "CC=sccache cc" >> "$GITHUB_ENV" + echo "CXX=sccache c++" >> "$GITHUB_ENV" fi echo "CMAKE_C_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" @@ -160,14 +160,6 @@ runs: echo "DYLD_FALLBACK_LIBRARY_PATH=$NSS_OUT/lib" >> "$GITHUB_ENV" echo "$NSS_OUT/lib" >> "$GITHUB_PATH" echo "NSS_DIR=$NSS_DIR" >> "$GITHUB_ENV" - which sccache || true - which cl || true - which sccache.exe || true - which cl.exe || true - if [ "$SCCACHE_CC" ] && [ "$SCCACHE_CXX"]; then - export CC="$SCCACHE_CC" - export CXX="$SCCACHE_CXX" - fi $NSS_DIR/build.sh -g -Ddisable_tests=1 $OPT --static env: NSS_DIR: ${{ github.workspace }}/nss From ec3213429088e895c1646247a69a0425d4fc5238 Mon Sep 17 00:00:00 2001 From: Lars Eggert Date: Mon, 16 Sep 2024 18:21:23 +0300 Subject: [PATCH 13/13] Only set compiler env for the NSS build --- .github/actions/nss/action.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/actions/nss/action.yml b/.github/actions/nss/action.yml index 4e40b4cbb2..591f0a2a7d 100644 --- a/.github/actions/nss/action.yml +++ b/.github/actions/nss/action.yml @@ -67,8 +67,8 @@ runs: run: | if [ "${{ runner.os }}" != "Windows" ]; then # TODO: Figure out how to make this work on Windows - echo "CC=sccache cc" >> "$GITHUB_ENV" - echo "CXX=sccache c++" >> "$GITHUB_ENV" + echo "SCCACHE_CC=sccache cc" >> "$GITHUB_ENV" + echo "SCCACHE_CXX=sccache c++" >> "$GITHUB_ENV" fi echo "CMAKE_C_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV" @@ -157,6 +157,7 @@ runs: echo "DYLD_FALLBACK_LIBRARY_PATH=$NSS_OUT/lib" >> "$GITHUB_ENV" echo "$NSS_OUT/lib" >> "$GITHUB_PATH" echo "NSS_DIR=$NSS_DIR" >> "$GITHUB_ENV" + [ "$SCCACHE_CC" ] && [ "$SCCACHE_CXX" ] && export CC="$SCCACHE_CC" CXX="$SCCACHE_CXX" $NSS_DIR/build.sh -g -Ddisable_tests=1 $OPT --static env: NSS_DIR: ${{ github.workspace }}/nss