name: build-image on: push: branches: [ main ] workflow_dispatch: jobs: docker: runs-on: [docker, linux, x86_64] # Kør i container med docker-cli (runneren monterer docker.sock automatisk) container: image: docker:27-cli steps: - name: Install git + certs run: apk add --no-cache git ca-certificates - name: Sæt BASE_URL (offentlig adresse) run: echo "BASE_URL=https://git.ckvist.dk" >> $GITHUB_ENV # PUBLIC repo (ingen token nødvendig) - name: Checkout (public) if: ${{ !secrets.CI_CLONE_TOKEN }} run: | git clone "${BASE_URL}/${GITHUB_REPOSITORY}.git" . git rev-parse --short HEAD # PRIVATE repo (brug PAT/token i secret CI_CLONE_TOKEN) - name: Checkout (private) if: ${{ secrets.CI_CLONE_TOKEN }} run: | git clone "https://${{ secrets.CI_CLONE_TOKEN }}@${BASE_URL#https://}/${GITHUB_REPOSITORY}.git" . git rev-parse --short HEAD - name: Docker info run: docker version - name: Build image (amd64) run: | docker build -t jottacloud:latest . - name: Forbered tags til Gitea Registry id: meta run: | # Registry host (krævet som secret) REG="${{ secrets.REGISTRY }}" if [ -z "$REG" ]; then echo "Missing secret REGISTRY (fx git.ckvist.dk)"; exit 1 fi # Billednavn: brug secret IMAGE_NAME hvis sat, ellers owner/repo if [ -n "${{ secrets.IMAGE_NAME }}" ]; then IMG="${{ secrets.IMAGE_NAME }}" else IMG="$GITHUB_REPOSITORY" fi # Normalisér til lowercase (docker kræver lowercase repo-navne) IMG_LC="$(printf '%s' "$IMG" | tr '[:upper:]' '[:lower:]')" TAG_SHORT="$(git rev-parse --short HEAD)" echo "REG=$REG" >> $GITHUB_OUTPUT echo "IMG=$IMG_LC" >> $GITHUB_OUTPUT echo "TAG_SHORT=$TAG_SHORT" >> $GITHUB_OUTPUT echo "FULL_LATEST=$REG/$IMG_LC:latest" >> $GITHUB_OUTPUT echo "FULL_SHA=$REG/$IMG_LC:$TAG_SHORT" >> $GITHUB_OUTPUT - name: Login & push til Gitea Registry if: ${{ secrets.REGISTRY && secrets.REGISTRY_USER && secrets.REGISTRY_PASSWORD }} run: | docker login "${{ steps.meta.outputs.REG }}" \ -u "${{ secrets.REGISTRY_USER }}" \ -p "${{ secrets.REGISTRY_PASSWORD }}" docker tag jottacloud:latest "${{ steps.meta.outputs.FULL_LATEST }}" docker tag jottacloud:latest "${{ steps.meta.outputs.FULL_SHA }}" docker push "${{ steps.meta.outputs.FULL_LATEST }}" docker push "${{ steps.meta.outputs.FULL_SHA }}" - name: Vis push-resultat if: ${{ success() && secrets.REGISTRY }} run: | echo "Pushed:" echo " ${{ steps.meta.outputs.FULL_LATEST }}" echo " ${{ steps.meta.outputs.FULL_SHA }}" echo echo "Tjek i Gitea GUI: Repository → Packages → Container Registry"