From 44c33b32f808cdddd5ac0366d70595ed63661ed8 Mon Sep 17 00:00:00 2001 From: Andrew Walsh Date: Mon, 30 Oct 2023 11:12:50 -0700 Subject: [PATCH] Pull staging changes upstream. (#113) * Pull dev upstream to staging. (#112) * Use awk to enclose filename in single quotes tar #99 * Add null field separator so filenames don't get broken up. * Move upload logs up in the action sequence so it captures data before it gets deleted. * Fix awk (#109) --------- Co-authored-by: sn-o-w * Fix awk delimiter. Pull in fix by @sn-o-w in https://github.com/sn-o-w/cache-apt-pkgs-action/commit/d0ee83b497ac30023e51cd526c62e57b07501912 mentioned in issue #99 --------- Co-authored-by: sn-o-w --- action.yml | 14 +++++++------- install_and_cache_pkgs.sh | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/action.yml b/action.yml index 035ace6..3e0dd2f 100644 --- a/action.yml +++ b/action.yml @@ -83,6 +83,13 @@ runs: DEBUG: "${{ inputs.debug }}" PACKAGES: "${{ inputs.packages }}" + - id: upload-logs + if: ${{ inputs.debug == 'true' }} + uses: actions/upload-artifact@v3 + with: + name: cache-apt-pkgs-logs_${{ env.CACHE_KEY }} + path: ~/cache-apt-pkgs/*.log + - id: save-cache if: ${{ ! steps.load-cache.outputs.cache-hit }} uses: actions/cache/save@v3 @@ -94,10 +101,3 @@ runs: run: | rm -rf ~/cache-apt-pkgs shell: bash - - - id: upload-logs - if: ${{ inputs.debug == 'true' }} - uses: actions/upload-artifact@v3 - with: - name: cache-apt-pkgs-logs_${{ env.CACHE_KEY }} - path: ~/cache-apt-pkgs/*.log diff --git a/install_and_cache_pkgs.sh b/install_and_cache_pkgs.sh index f81dacd..a35971f 100755 --- a/install_and_cache_pkgs.sh +++ b/install_and_cache_pkgs.sh @@ -92,7 +92,8 @@ for installed_package in ${installed_packages}; do & get_install_script_filepath "" "${package_name}" "preinst" \ & get_install_script_filepath "" "${package_name}" "postinst"; } | while IFS= read -r f; do test -f "${f}" -o -L "${f}" && get_tar_relpath "${f}"; done | - xargs -I {} echo \'{}\' | # Single quotes ensure literals like backslash get captured. + # Single quotes ensure literals like backslash get captured. Use \0 to avoid field separation. + awk -F"\0" '{print "\x27"$1"\x27"}' | sudo xargs tar -cf "${cache_filepath}" -C / log " done (compressed size $(du -h "${cache_filepath}" | cut -f1))."