mirror of
https://github.com/edgelesssys/constellation.git
synced 2024-12-19 12:54:39 -05:00
c14e551af5
Signed-off-by: Fabian Kammel <fk@edgeless.systems>
92 lines
2.5 KiB
YAML
92 lines
2.5 KiB
YAML
name: Purge old images from main branch
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: "0 0/3 * * *"
|
|
- cron: "0 1/3 * * *"
|
|
- cron: "0 2/3 * * *"
|
|
|
|
jobs:
|
|
find-version:
|
|
name: Delete version from main ref
|
|
runs-on: ubuntu-22.04
|
|
outputs:
|
|
version: ${{ steps.find.outputs.version }}
|
|
permissions:
|
|
id-token: write
|
|
contents: read
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
|
with:
|
|
ref: ${{ github.head_ref }}
|
|
|
|
- name: Login to AWS
|
|
uses: aws-actions/configure-aws-credentials@67fbcbb121271f7775d2e7715933280b06314838 # v1.7.0
|
|
with:
|
|
role-to-assume: arn:aws:iam::795746500882:role/GithubConstellationVersionsAPIRead
|
|
aws-region: eu-central-1
|
|
|
|
- name: Determine stream
|
|
id: stream
|
|
run: |
|
|
case "${{ github.event.schedule }}" in
|
|
"0 0/3 * * *")
|
|
echo "stream=debug" >> "$GITHUB_OUTPUT"
|
|
;;
|
|
"0 1/3 * * *")
|
|
echo "stream=console" >> "$GITHUB_OUTPUT"
|
|
;;
|
|
"0 2/3 * * *")
|
|
echo "stream=nightly" >> "$GITHUB_OUTPUT"
|
|
;;
|
|
*)
|
|
echo "Unknown schedule: ${{ github.event.schedule }}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
- name: List versions
|
|
id: list
|
|
uses: ./.github/actions/versionsapi
|
|
with:
|
|
command: list
|
|
ref: main
|
|
stream: ${{ steps.stream.outputs.stream }}
|
|
|
|
- name: Find version to delete
|
|
id: find
|
|
shell: bash
|
|
run: |
|
|
versions=$(cat versionsapi_output.txt)
|
|
echo "Found versions:"
|
|
echo "${versions}"
|
|
|
|
echo "Newest 10 versions shouldn't be deleted"
|
|
deletable=$(echo "${versions}" | head -n -10)
|
|
if [ -z "${deletable}" ]; then
|
|
echo "No deletable versions found"
|
|
exit 0
|
|
fi
|
|
echo "Found deletable versions:"
|
|
echo "${deletable}"
|
|
|
|
ver=$(echo "${deletable}" | head -n 1)
|
|
echo "Deleting oldest version: ${ver}"
|
|
echo "version=${ver}" >> "$GITHUB_OUTPUT"
|
|
|
|
delete:
|
|
name: Delete version
|
|
if: needs.find-version.outputs.version != ''
|
|
permissions:
|
|
id-token: write
|
|
contents: read
|
|
uses: ./.github/workflows/versionsapi.yml
|
|
needs: find-version
|
|
secrets: inherit
|
|
with:
|
|
command: remove
|
|
dryrun: true
|
|
version_path: ${{ needs.find-version.outputs.version }}
|