From 15e328a8a53be37ff957400f9e0e39ee32ef6aa4 Mon Sep 17 00:00:00 2001 From: TheFox0x7 Date: Sun, 19 May 2024 14:20:33 +0000 Subject: [PATCH] Add opencontainer labels to container (#195) Closes: forgejo/runner#162 Reviewed-on: https://code.forgejo.org/forgejo/runner/pulls/195 Reviewed-by: earl-warren Co-authored-by: TheFox0x7 Co-committed-by: TheFox0x7 --- .forgejo/labelscompare.py | 24 +++++++++++++++++++ .../workflows/build-release-integration.yml | 3 +++ Dockerfile | 14 +++++++++-- RELEASE-NOTES.md | 1 + 4 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 .forgejo/labelscompare.py diff --git a/.forgejo/labelscompare.py b/.forgejo/labelscompare.py new file mode 100644 index 0000000..2274d38 --- /dev/null +++ b/.forgejo/labelscompare.py @@ -0,0 +1,24 @@ +import json + +expectedLabels = { + "maintainer": "contact@forgejo.org", + "org.opencontainers.image.authors": "Forgejo", + "org.opencontainers.image.url": "https://forgejo.org", + "org.opencontainers.image.documentation": "https://forgejo.org/docs/latest/admin/actions/#forgejo-runner", + "org.opencontainers.image.source": "https://code.forgejo.org/forgejo/runner", + "org.opencontainers.image.version": "1.2.3", + "org.opencontainers.image.vendor": "Forgejo", + "org.opencontainers.image.licenses": "MIT", + "org.opencontainers.image.title": "Forgejo Runner", + "org.opencontainers.image.description": "A runner for Forgejo Actions.", +} +inspect = None +with open("./labels.json", "r") as f: + inspect = json.load(f) + +assert inspect +labels = inspect[0]["Config"]["Labels"] + +for k, v in expectedLabels.items(): + assert k in labels, f"'{k}' is missing from labels" + assert labels[k] == v, f"expected {v} in key {k}, found {labels[k]}" diff --git a/.forgejo/workflows/build-release-integration.yml b/.forgejo/workflows/build-release-integration.yml index 1f95c25..7f92218 100644 --- a/.forgejo/workflows/build-release-integration.yml +++ b/.forgejo/workflows/build-release-integration.yml @@ -85,3 +85,6 @@ jobs: done docker pull ${{ steps.forgejo.outputs.host-port }}/root/runner:$version + + docker inspect ${{ steps.forgejo.outputs.host-port}}/root/runner:$version > labels.json + python3 .forgejo/labelscompare.py diff --git a/Dockerfile b/Dockerfile index ce36d7a..95136e2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,12 +20,22 @@ WORKDIR /srv RUN make clean && make build FROM docker.io/library/alpine:3.18 -LABEL maintainer="contact@forgejo.org" - +ARG RELEASE_VERSION RUN apk add --no-cache git bash COPY --from=build-env /srv/forgejo-runner /bin/forgejo-runner +LABEL maintainer="contact@forgejo.org" \ + org.opencontainers.image.authors="Forgejo" \ + org.opencontainers.image.url="https://forgejo.org" \ + org.opencontainers.image.documentation="https://forgejo.org/docs/latest/admin/actions/#forgejo-runner" \ + org.opencontainers.image.source="https://code.forgejo.org/forgejo/runner" \ + org.opencontainers.image.version="${RELEASE_VERSION}" \ + org.opencontainers.image.vendor="Forgejo" \ + org.opencontainers.image.licenses="MIT" \ + org.opencontainers.image.title="Forgejo Runner" \ + org.opencontainers.image.description="A runner for Forgejo Actions." + ENV HOME=/data USER 1000:1000 diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index f49e69d..cbf737b 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -6,6 +6,7 @@ * [Fix the docker compose example](https://code.forgejo.org/forgejo/runner/pulls/175) to workaround the race on labels. * [Fix the kubernetes dind example](https://code.forgejo.org/forgejo/runner/pulls/169). * [Rewrite ::group:: and ::endgroup:: commands like github](https://code.forgejo.org/forgejo/runner/pulls/183). +* [Added opencontainers labels to the image](https://code.forgejo.org/forgejo/runner/pulls/195) ## 3.4.1