From 28e815f7a9edd5028ae16a3b187eeacbebecc984 Mon Sep 17 00:00:00 2001 From: kjeld Schouten-Lebbing Date: Tue, 31 Aug 2021 11:10:53 +0200 Subject: [PATCH] move pruning to github action --- .github/workflows/prune.yaml | 56 ++++++++++++++++++++++++++++++++++++ .tools/prune.sh | 23 --------------- 2 files changed, 56 insertions(+), 23 deletions(-) create mode 100644 .github/workflows/prune.yaml delete mode 100644 .tools/prune.sh diff --git a/.github/workflows/prune.yaml b/.github/workflows/prune.yaml new file mode 100644 index 0000000000..770bfc42e8 --- /dev/null +++ b/.github/workflows/prune.yaml @@ -0,0 +1,56 @@ +name: "Housekeeping" + +on: + workflow_dispatch: + push: + branches: + - main + paths: + - ".github/workflows/housekeeping.yaml" + schedule: + - cron: "0 5 * * *" + +jobs: + housekeeping: + runs-on: ubuntu-latest + name: "Housekeeping" + steps: + - name: Checkout branch + uses: actions/checkout@v2 + with: + fetch-depth: 0 + token: ${{ secrets.BOT_TOKEN }} + + - name: Containers - Fetch new application versions + run: | + for train in stable incubator + do + for chart in ${train}/*; do + if [ -f "${chart}/item.yaml" ]; then + maxchartversion=$(ls ${chart} | grep -v item.yaml | sort -Vr | head -n1) + maxchartversion=${maxchartversion%/} + chartname=$(basename ${chart}) + for version in ${chart}/*; do + versionname=$(basename ${version}) + if [ -f "${version}/Chart.yaml" ]; then + if [[ "${versionname}" != "${maxchartversion}" ]]; then + echo "Removing older version ${versionname} for ${chartname}" + rm -Rf ${version} + else + echo "${versionname} is the latest version, skipping..." + fi + fi + done + else + echo "Invalid App" + fi + done + done + + - name: Commit and Push Housekeeping + run: | + git config user.name "TrueCharts-Bot" + git config user.email "bot@truecharts.org" + git add --all + git commit -sm "Daily Prune" || exit 0 + git push diff --git a/.tools/prune.sh b/.tools/prune.sh deleted file mode 100644 index 9836832472..0000000000 --- a/.tools/prune.sh +++ /dev/null @@ -1,23 +0,0 @@ -for train in stable incubator develop non-free deprecated -do - for chart in ${train}/*; do - if [ -f "${chart}/item.yaml" ]; then - maxchartversion=$(ls ${chart} | grep -v item.yaml | sort -Vr | head -n1) - maxchartversion=${maxchartversion%/} - chartname=$(basename ${chart}) - for version in ${chart}/*; do - versionname=$(basename ${version}) - if [ -f "${version}/Chart.yaml" ]; then - if [[ "${versionname}" != "${maxchartversion}" ]]; then - echo "Removing older version ${versionname} for ${chartname}" - rm -Rf ${version} - else - echo "${versionname} is the latest version, skipping..." - fi - fi - done - else - echo "Invalid App" - fi - done -done