92 lines
3.0 KiB
YAML
92 lines
3.0 KiB
YAML
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"
|