asgas
CI / Load gitea-env.conf to pipeline env (push) Successful in 13s
ci-check Build version 0.1.7 required
ci-docker-build Docker build 0.1.7 OK
ci-docker-push Docker push 0.1.7 OK
ci-docker-tag Tag 0.1.7 OK
CI / Build & Push Artifact (push) Successful in 1m24s
CI / Load gitea-env.conf to pipeline env (push) Successful in 13s
ci-check Build version 0.1.7 required
ci-docker-build Docker build 0.1.7 OK
ci-docker-push Docker push 0.1.7 OK
ci-docker-tag Tag 0.1.7 OK
CI / Build & Push Artifact (push) Successful in 1m24s
This commit is contained in:
@@ -259,26 +259,46 @@ jobs:
|
||||
source /tmp/build-ctx/build.env
|
||||
bash scripts/report-status.sh failure "Docker push $NEXT_VERSION FAILED" ci-docker-push
|
||||
|
||||
- name: Delete Docker image artifact from Gitea
|
||||
if: always() # Ajetaan aina, jotta levy ei täyty virhetilanteessakaan
|
||||
- name: Delete Docker image artifact from Gitea (Python)
|
||||
if: always()
|
||||
shell: python
|
||||
env:
|
||||
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||
SERVER_URL: ${{ gitea.server_url }}
|
||||
REPOSITORY: ${{ gitea.repository }}
|
||||
RUN_ID: ${{ gitea.run_id }}
|
||||
ARTIFACT_NAME: "docker-image"
|
||||
run: |
|
||||
echo "Haetaan artifaktit Giteasta..."
|
||||
# Haetaan lista tämän ajon artifakteista
|
||||
ARTIFACTS_JSON=$(curl -s -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \
|
||||
"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/actions/runs/${{ gitea.run_id }}/artifacts")
|
||||
import os, urllib.request, json
|
||||
|
||||
# Etsitään oikean artifaktin ID JSON-vastauksesta
|
||||
# (Jos klusterissa ei ole jq-työkalua, käytetään grepiä id:n erottamiseen)
|
||||
ART_ID=$(echo "$ARTIFACTS_JSON" | grep -B 2 '"name": "docker-image"' | grep '"id":' | awk -F: '{print $2}' | tr -d ', ')
|
||||
token = os.environ['GITEA_TOKEN']
|
||||
server = os.environ['SERVER_URL']
|
||||
repo = os.environ['REPOSITORY']
|
||||
run_id = os.environ['RUN_ID']
|
||||
target_name = os.environ['ARTIFACT_NAME']
|
||||
|
||||
if [ -n "$ART_ID" ]; then
|
||||
echo "Löytyi artifakti ID:llä $ART_ID. Poistetaan..."
|
||||
curl -X DELETE -s -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \
|
||||
"${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/actions/artifacts/$ART_ID"
|
||||
echo "Artifakti poistettu onnistuneesti Giteasta!"
|
||||
else
|
||||
echo "Artifaktia 'docker-image' ei löytynyt tai se on jo poistettu."
|
||||
fi
|
||||
# 1. Haetaan listaus artifakteista
|
||||
url = f"{server}/api/v1/repos/{repo}/actions/runs/{run_id}/artifacts"
|
||||
req = urllib.request.Request(url, headers={"Authorization": f"token {token}"})
|
||||
|
||||
try:
|
||||
with urllib.request.urlopen(req) as response:
|
||||
data = json.loads(response.read().decode())
|
||||
|
||||
# 2. Etsitään oikea ID
|
||||
artifacts = data.get("artifacts", [])
|
||||
artifact_id = next((a["id"] for a in artifacts if a["name"] == target_name), None)
|
||||
|
||||
# 3. Jos löytyi, lähetetään DELETE-pyyntö
|
||||
if artifact_id:
|
||||
del_url = f"{server}/api/v1/repos/{repo}/actions/artifacts/{artifact_id}"
|
||||
del_req = urllib.request.Request(del_url, headers={"Authorization": f"token {token}"}, method="DELETE")
|
||||
with urllib.request.urlopen(del_req) as del_res:
|
||||
print(f"Artifakti {target_name} (ID: {artifact_id}) poistettu onnistuneesti levyltä.")
|
||||
else:
|
||||
print(f"Artifaktia '{target_name}' ei löytynyt listalta. Se on jo poistettu.")
|
||||
except Exception as e:
|
||||
print(f"Poisto ohitettiin virheen vuoksi (esim. puuttuvat oikeudet): {e}")
|
||||
|
||||
tag-commit:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
Reference in New Issue
Block a user