diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index cc6b463b0..38d4c9a50 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -121,7 +121,7 @@ jobs: - name: Unpack repository archive run: | - tar -x -z -f ${{ needs.build.outputs.archive }} + tar --zstd -x -f ${{ needs.build.outputs.archive }} ls -lsha - name: Download code coverage data diff --git a/.github/workflows/reusable-build.yml b/.github/workflows/reusable-build.yml index 87a4052d7..f19fa4ad1 100644 --- a/.github/workflows/reusable-build.yml +++ b/.github/workflows/reusable-build.yml @@ -88,8 +88,9 @@ jobs: working-directory: ${{ github.workspace }} run: | # Name of the archive must be unique based on the build parameters - ARCHIVE=verilator-${{ inputs.sha }}-${{ inputs.os }}-${{ inputs.cc }}-${{ inputs.dev-asan }}-${{ inputs.dev-gcov }}.tar.gz - tar --posix -c -z -f $ARCHIVE repo + ARCHIVE=verilator-${{ inputs.sha }}-${{ inputs.os }}-${{ inputs.cc }}-${{ inputs.dev-asan }}-${{ inputs.dev-gcov }}.tar.zst + # zstd compresses faster than gzip and decompresses far faster in the many downstream test jobs + ZSTD_NBTHREADS=0 tar --posix --zstd -c -f $ARCHIVE repo echo "archive=$ARCHIVE" >> "$GITHUB_OUTPUT" - name: Upload repository archive @@ -97,3 +98,5 @@ jobs: with: path: ${{ github.workspace }}/${{ steps.create-archive.outputs.archive }} name: ${{ steps.create-archive.outputs.archive }} + # Archive is already zstd-compressed; skip upload-artifact's zip pass + compression-level: 0 diff --git a/.github/workflows/reusable-rtlmeter-build.yml b/.github/workflows/reusable-rtlmeter-build.yml index b38ed62cf..1c0078207 100644 --- a/.github/workflows/reusable-rtlmeter-build.yml +++ b/.github/workflows/reusable-rtlmeter-build.yml @@ -84,8 +84,9 @@ jobs: id: create-archive run: | SHA=$(git -C repo rev-parse HEAD) - ARCHIVE=verilator-$SHA-rtlmeter-${{ inputs.runs-on }}-${{ inputs.cc }}.tar.gz - tar --posix -c -z -f $ARCHIVE install + ARCHIVE=verilator-$SHA-rtlmeter-${{ inputs.runs-on }}-${{ inputs.cc }}.tar.zst + # zstd compresses faster than gzip and decompresses far faster in the downstream run jobs + ZSTD_NBTHREADS=0 tar --posix --zstd -c -f $ARCHIVE install echo "archive=$ARCHIVE" >> $GITHUB_OUTPUT - name: Upload Verilator installation archive @@ -94,3 +95,5 @@ jobs: path: ${{ steps.create-archive.outputs.archive }} name: ${{ steps.create-archive.outputs.archive }} overwrite: true + # Archive is already zstd-compressed; skip upload-artifact's zip pass + compression-level: 0 diff --git a/.github/workflows/reusable-rtlmeter-run.yml b/.github/workflows/reusable-rtlmeter-run.yml index ab66647db..c4dfbf913 100644 --- a/.github/workflows/reusable-rtlmeter-run.yml +++ b/.github/workflows/reusable-rtlmeter-run.yml @@ -101,7 +101,7 @@ jobs: - name: Unpack Verilator installation archive - new run: | - tar -x -z -f ${{ inputs.verilator-archive-new }} + tar --zstd -x -f ${{ inputs.verilator-archive-new }} mv install verilator-new - name: Compile cases - new @@ -164,7 +164,7 @@ jobs: - name: Unpack Verilator installation archive - old if: ${{ inputs.verilator-archive-old != '' }} run: | - tar -x -z -f ${{ inputs.verilator-archive-old }} + tar --zstd -x -f ${{ inputs.verilator-archive-old }} mv install verilator-old - name: Compile cases - old diff --git a/.github/workflows/reusable-test.yml b/.github/workflows/reusable-test.yml index ffec26b84..b36134108 100644 --- a/.github/workflows/reusable-test.yml +++ b/.github/workflows/reusable-test.yml @@ -63,7 +63,7 @@ jobs: - name: Unpack repository archive working-directory: ${{ github.workspace }} run: | - tar -x -z -f ${{ inputs.archive }} + tar --zstd -x -f ${{ inputs.archive }} ls -lsha - name: Cache $CCACHE_DIR