Skip to content

Postaction

Postaction #231

Workflow file for this run

name: Clean release assets
on:
push:
branches:
- "post-actions"
jobs:
clean-release:
runs-on: ubuntu-latest
env:
RELEASE_DATA: ""
steps:
# - name: Checkout code
# uses: actions/checkout@v2
# - name: Get latest release info
# id: get_latest_release
# uses: octokit/[email protected]
# with:
# query: |
# query release($owner:String!,$repo:String!) {
# repository(owner:$owner,name:$repo) {
# releases(first:1) {
# nodes {
# releaseAssets(first:20) {
# nodes {
# id
# name
# }
# }
# }
# }
# }
# }
# variables: |
# owner: ${{ github.event.repository.owner.name }}
# repo: ${{ github.event.repository.name }}
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - uses: octokit/[email protected]
# id: get_latest_release
# with:
# route: GET /repos/${{ github.event.repository.owner.name }}/${{ github.event.repository.name }}/releases/latest
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - run: |
# echo '${{ steps.get_latest_release.outputs.data }}' | jq '.[0] | .assets | map(select(.name | endswith(".blockmap")).id)'
- 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}))}')
# the following lines are only required for multi line json
data="${data//'%'/'%25'}"
data="${data//$'\n'/'%0A'}"
data="${data//$'\r'/'%0D'}"
# end of optional handling for multi line json
echo "release_data=${data}" >> $GITHUB_OUTPUT
- name: Read the output
run: |
decoded_json=$(echo -e "${{ steps.releases_data.outputs.release_data }}")
# Properly encode the decoded JSON back for the final output
encoded_json="${decoded_json//'%'/'%25'}"
encoded_json="${encoded_json//$'\n'/'%0A'}"
encoded_json="${encoded_json//$'\r'/'%0D'}"
# Print the final encoded JSON
echo -e "$encoded_json"
# - name: Filter requested data
# id: jq_filter
# run: |
# blockmaps=$(
# echo '${{ steps.releases_data.outputs.release_data }}' | jq \
# .[0] | .assets | map(select(.name | endswith(".blockmap")).id) | "\"" + . + "\"") | 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