-
Notifications
You must be signed in to change notification settings - Fork 7
64 lines (52 loc) · 2.05 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
name: Clean release assets
on:
push:
branches:
- "post-actions"
jobs:
clean-release:
runs-on: ubuntu-latest
steps:
- name: Get the release data
id: releases_data
env:
HOST: "https://api.github.com"
ENDPOINT: "/repos/${{ github.event.repository.owner.name }}/${{ github.event.repository.name }}/releases"
run: |
data=$(
curl -X GET -s \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
"${HOST}${ENDPOINT}"
)
data=$(echo "${data}" | jq '.[0] | {name, id, assets: (.assets | map({name, id}))} | tostring')
echo "release_data=${data}" >> $GITHUB_OUTPUT
- name: Read the output
run: |
echo ${{ steps.releases_data.outputs.release_data }} | jq '.'
- name: Filter requested data
id: jq_filter
run: |
blockmaps=$(
echo '${{ steps.releases_data.outputs.release_data }}' | jq -r \
'fromjson | .assets | map(select(.name | endswith(".blockmap"))) | map(.id | tostring) | join(" ")'
)
echo "( ${blockmaps} )"
echo "blockmap_list=( ${blockmaps} )" >> $GITHUB_OUTPUT
- name: Remove the blockmap files
env:
HOST: "https://api.github.com"
ENDPOINT: "/repos/${{ github.event.repository.owner.name }}/${{ github.event.repository.name }}/releases/assets/"
run: |
assets_array="${{ steps.jq_filter.outputs.blockmap_list }}"
assets_array="${assets_array#(}"
assets_array="${assets_array%)}"
# Convert the array string to an actual array
IFS=', ' read -ra assets <<< "$assets_array"
# Iterate over the array elements
echo "Iterating over the assets:"
for asset_id in "${assets[@]}"; do
echo "Deleting asset with ID: $asset_id"
curl -X DELETE -s \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
"${HOST}${ENDPOINT}$asset_id"
done