pipeline {
    agent any

    environment {
        REGISTRY_HOST = 'gitea.mindboost.team'
        IMAGE_NAME    = 'interkollektives/lichterei-web'
        IMAGE_TAG     = '0.0.1'
        IMAGE_REF     = "${REGISTRY_HOST}/${IMAGE_NAME}:${IMAGE_TAG}"
    }

    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }

        stage('Build & Push image') {
            steps {
                withCredentials([usernamePassword(
                    credentialsId: 'gitea-container-registry',
                    usernameVariable: 'REGISTRY_USER',
                    passwordVariable: 'REGISTRY_PASSWORD'
                )]) {
                    sh """
                        if ! docker buildx inspect jenkins-builder >/dev/null 2>&1; then
                          docker buildx create --name jenkins-builder --use
                        else
                          docker buildx use jenkins-builder
                        fi
                        docker buildx inspect --bootstrap

                        echo "${REGISTRY_PASSWORD}" | docker login ${REGISTRY_HOST} \
                            --username "${REGISTRY_USER}" --password-stdin

                        docker buildx build \
                          --platform linux/amd64 \
                          --file Dockerfile \
                          --tag ${IMAGE_REF} \
                          --push \
                          .

                        docker logout ${REGISTRY_HOST}
                    """
                }
            }
        }
    }

    post {
        always {
            sh 'docker image prune --force'
        }
    }
}
