Skip to content

Commit 5fc9f28

Browse files
author
Encoded14
committed
workflow: fix removing older packages
1 parent 71add8d commit 5fc9f28

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

.github/workflows/build.yaml

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ jobs:
184184
fi
185185
186186
- name: Sign
187-
if: ${{ steps.changed.outputs.pkgs != '' }}
187+
if: ${{ steps.changed.outputs.pkgs != '' || steps.changed.outputs.removed != '' }}
188188
env:
189189
PRIV_KEY: ${{ secrets.PRIV_KEY }}
190190
XBPS_ARCH: ${{ matrix.config.arch }}
@@ -204,8 +204,9 @@ jobs:
204204
mkdir -p /tmp/oldrepo
205205
if git ls-remote --exit-code --heads "$REMOTE" "$BRANCH" >/dev/null 2>&1; then
206206
git clone --depth 1 --branch "$BRANCH" "$REMOTE" /tmp/oldrepo
207-
# copy all existing packages + metadata into current binpkgs dir
208-
cp -v /tmp/oldrepo/* . 2>/dev/null || true
207+
cp -v /tmp/oldrepo/*.xbps . 2>/dev/null || true
208+
cp -v /tmp/oldrepo/*.xbps.sig . 2>/dev/null || true
209+
cp -v /tmp/oldrepo/index* . 2>/dev/null || true
209210
else
210211
echo "No existing $BRANCH on remote, starting fresh."
211212
fi
@@ -219,10 +220,9 @@ jobs:
219220
fi
220221
221222
allow="${{ steps.repo_pkgs.outputs.all }}"
222-
echo "==> pruning packages not from our repo..."
223+
echo "==> pruning packages not from this repo..."
223224
for f in *.xbps; do
224225
[ -e "$f" ] || continue
225-
base="${f%%-*}"
226226
keep=0
227227
for pkg in $allow; do
228228
case "$f" in
@@ -238,6 +238,20 @@ jobs:
238238
fi
239239
done
240240
241+
echo "==> dropping older versions of packages..."
242+
for pkg in $allow; do
243+
# list all versions of this package, newest last
244+
matches=$(ls -1 ${pkg}-*.xbps 2>/dev/null | sort -V || true)
245+
[ -z "$matches" ] && continue
246+
newest=$(printf "%s\n" $matches | tail -n 1)
247+
for f in $matches; do
248+
if [ "$f" != "$newest" ]; then
249+
echo " - removing old $f"
250+
rm -f "$f" "$f".sig 2>/dev/null || true
251+
fi
252+
done
253+
done
254+
241255
echo "==> writing private key to file..."
242256
printf "%s\n" "$PRIV_KEY" > private.pem
243257
chmod 600 private.pem

0 commit comments

Comments
 (0)