From 5d6ab3a11baa1d092e319fd29ea9eac08816f4d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20R=C3=B6ger?= Date: Fri, 4 Sep 2026 15:25:19 +0200 Subject: [PATCH] ci: use skopeo --- .gitea/workflows/docker.yaml | 49 ++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 19 deletions(-) diff --git a/.gitea/workflows/docker.yaml b/.gitea/workflows/docker.yaml index 5e7ff27..3714568 100644 --- a/.gitea/workflows/docker.yaml +++ b/.gitea/workflows/docker.yaml @@ -1,6 +1,7 @@ name: Build a docker image. -on: [push] +on: + push: jobs: build-docker-image: @@ -10,25 +11,35 @@ jobs: - name: Check out repository code uses: actions/checkout@v4 - - name: Build flake - run: nix build .#docker - - - name: Load Docker image - run: docker load < result - - - name: Login to local Gitea registry + - name: Build image run: | - echo "${{ secrets.GITEA_TOKEN }}" | \ - docker login ${{ gitea.server_url }} \ - --username "${{ gitea.actor }}" \ - --password-stdin - - - name: Tag image - run: | - docker tag my-image:latest \ - ${{ gitea.server_url }}/${{ gitea.repository }}:latest + nix build .#docker - name: Push image + env: + REGISTRY: "${{ gitea.server_url }}" + REPOSITORY: "${{ gitea.repository }}" + USERNAME: "${{ gitea.actor }}" + PASSWORD: "${{ secrets.GITEA_TOKEN }}" + TAG: "${{ gitea.sha }}" run: | - docker push \ - ${{ gitea.server_url }}/${{ gitea.repository }}:latest + REGISTRY="${REGISTRY#https://}" + REGISTRY="${REGISTRY#http://}" + REGISTRY="${REGISTRY%/}" + + IMAGE="${REGISTRY}/${REPOSITORY}:${TAG}" + + echo "Pushing ${IMAGE}" + + skopeo copy \ + --dest-creds "${USERNAME}:${PASSWORD}" \ + "docker-archive:result" \ + "docker://${IMAGE}" + + # Also update latest + if [ "${GITEA_REF_TYPE}" = "branch" ] && [ "${GITEA_REF_NAME}" = "main" ]; then + skopeo copy \ + --dest-creds "${USERNAME}:${PASSWORD}" \ + "docker-archive:result" \ + "docker://${REGISTRY}/${REPOSITORY}:latest" + fi