Skip to content

Commit

Permalink
Add inputs for removing docker images and codeql
Browse files Browse the repository at this point in the history
  • Loading branch information
davidmhewitt authored and easimon committed Mar 31, 2023
1 parent 70f0831 commit 67afc2d
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 14 deletions.
40 changes: 26 additions & 14 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ jobs:
remove-haskell:
- 'true'
- 'false'
remove-codeql:
- 'true'
- 'false'
remove-docker-images:
- 'true'
- 'false'

steps:
- name: Determine free space before
Expand All @@ -50,17 +56,19 @@ jobs:
- name: Maximize build space
uses: ./.github/actions/maximize-test
with:
remove-android: ${{ matrix.remove-android }}
remove-dotnet: ${{ matrix.remove-dotnet }}
remove-haskell: ${{ matrix.remove-haskell }}
remove-android: ${{ matrix.remove-android }}
remove-dotnet: ${{ matrix.remove-dotnet }}
remove-haskell: ${{ matrix.remove-haskell }}
remove-codeql: ${{ matrix.remove-codeql }}
remove-docker-images: ${{ matrix.remove-docker-images }}

- name: Determine free space after
run: |
echo "FREE_GIG_AFTER=$(df --output=avail --sync -BG "${{ github.workspace }}" | tail -1 | sed 's/[^0-9]*//g')" >> $GITHUB_ENV
- name: Calculate freed space
run: |
REPORT_FILENAME_BASE="${REPORT_DIR}/${{ matrix.os }}_${{ matrix.remove-android }}_${{ matrix.remove-dotnet }}_${{ matrix.remove-haskell }}"
REPORT_FILENAME_BASE="${REPORT_DIR}/${{ matrix.os }}_${{ matrix.remove-android }}_${{ matrix.remove-dotnet }}_${{ matrix.remove-haskell }}_${{ matrix.remove-codeql }}_${{ matrix.remove-docker-images }}"
FREED_GIG=$(expr ${FREE_GIG_AFTER} - ${FREE_GIG_BEFORE})
echo "Free space before: ${FREE_GIG_BEFORE}G"
Expand All @@ -72,19 +80,23 @@ jobs:
REMOVE_ANDROID="${{ matrix.remove-android }}"
REMOVE_DOTNET="${{ matrix.remove-dotnet }}"
REMOVE_HASKELL="${{ matrix.remove-haskell }}"
REMOVE_CODEQL="${{ matrix.remove-codeql }}"
REMOVE_DOCKER_IMAGES="${{ matrix.remove-docker-images }}"
cat <<EOF > "${REPORT_FILENAME_BASE}.json"
{
"os": "${{ matrix.os }}",
"remove_android": "${REMOVE_ANDROID//false/}",
"remove_dotnet": "${REMOVE_DOTNET//false/}",
"remove_haskell": "${REMOVE_HASKELL//false/}",
"space_free_before": "${FREE_GIG_BEFORE}",
"space_free_after": "${FREE_GIG_AFTER}",
"space_freed": "${FREED_GIG}"
"os": "${{ matrix.os }}",
"remove_android": "${REMOVE_ANDROID//false/}",
"remove_dotnet": "${REMOVE_DOTNET//false/}",
"remove_haskell": "${REMOVE_HASKELL//false/}",
"remove_codeql": "${REMOVE_CODEQL//false/}",
"remove_docker_images": "${REMOVE_DOCKER_IMAGES//false/}",
"space_free_before": "${FREE_GIG_BEFORE}",
"space_free_after": "${FREE_GIG_AFTER}",
"space_freed": "${FREED_GIG}"
}
EOF
jq -r '[.os, .remove_android, .remove_dotnet, .remove_haskell, .space_freed, .space_free_after] | join(" | ")' < "${REPORT_FILENAME_BASE}.json" >> "${REPORT_FILENAME_BASE}.txt"
jq -r '[.os, .remove_android, .remove_dotnet, .remove_haskell, .remove_codeql, .remove_docker_images, .space_freed, .space_free_after] | join(" | ")' < "${REPORT_FILENAME_BASE}.json" >> "${REPORT_FILENAME_BASE}.txt"
- name: Upload disk space report
uses: actions/upload-artifact@v2
Expand All @@ -108,8 +120,8 @@ jobs:

- name: Join Markdown report
run: |
echo 'OS | Android SDKs removed | .NET SDKs removed | Haskell removed | GB freed | GB free' > "${REPORT_DIR}/${REPORT_FILE}"
echo '---|:--------------------:|:-----------------:|:---------------:|---------:|-------:' >> "${REPORT_DIR}/${REPORT_FILE}"
echo 'OS | Android SDKs removed | .NET SDKs removed | Haskell removed | CodeQL Removed | Cached Docker Images Removed | GB freed | GB free' > "${REPORT_DIR}/${REPORT_FILE}"
echo '---|:--------------------:|:-----------------:|:---------------:|:--------------:|:----------------------------:|---------:|-------:' >> "${REPORT_DIR}/${REPORT_FILE}"
cat ${REPORT_DIR}/*.txt >> "${REPORT_DIR}/${REPORT_FILE}"
- name: Upload collected report
Expand Down
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,4 +119,12 @@ All inputs are optional and default to the following, gaining about 7-8 GB addit
description: 'Removes GHC (Haskell) artifacts.'
required: false
default: 'false'
remove-codeql:
description: 'Removes CodeQL Action Bundles.'
required: false
default: 'false'
remove-docker-images:
description: 'Removes cached Docker images.'
required: false
default: 'false'
```
20 changes: 20 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,14 @@ inputs:
description: 'Removes GHC (Haskell) artifacts. (frees ~2.7 GB)'
required: false
default: 'false'
remove-codeql:
description: 'Removes CodeQL Action Bundles. (frees ~5.4 GB)'
required: false
default: 'false'
remove-docker-images:
description: 'Removes cached Docker images. (frees ~3 GB)'
required: false
default: 'false'
runs:
using: "composite"
steps:
Expand Down Expand Up @@ -91,6 +99,12 @@ runs:
if [[ ${{ inputs.remove-haskell }} == 'true' ]]; then
echo -n "haskell "
fi
if [[ ${{ inputs.remove-codeql }} == 'true' ]]; then
echo -n "codeql "
fi
if [[ ${{ inputs.remove-docker-images }} == 'true' ]]; then
echo -n "docker "
fi
echo
echo "Removing unwanted software... "
Expand All @@ -103,6 +117,12 @@ runs:
if [[ ${{ inputs.remove-haskell }} == 'true' ]]; then
sudo rm -rf /opt/ghc
fi
if [[ ${{ inputs.remove-codeql }} == 'true' ]]; then
sudo rm -rf /opt/hostedtoolcache/CodeQL
fi
if [[ ${{ inputs.remove-docker-images }} == 'true' ]]; then
sudo docker image prune --all --force
fi
echo "... done"
VG_NAME=buildvg
Expand Down

0 comments on commit 67afc2d

Please sign in to comment.