name: Build & Push Monica Image to Gitea Registry on: push: branches: [main] env: REGISTRY: git.mischlabs.de REGISTRY_LAN_IP: 192.168.178.88 REGISTRY_USER: MrDiderot REGISTRY_IMAGE: git.mischlabs.de/mrdiderot/crm jobs: build-and-push: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Install Docker CLI shell: sh run: | if ! command -v docker >/dev/null 2>&1; then echo "Docker CLI not found. Installing static binary..." if command -v curl >/dev/null 2>&1; then curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-26.1.4.tgz | tar -xz -C /usr/local/bin --strip-components=1 docker/docker elif command -v wget >/dev/null 2>&1; then wget -qO- https://download.docker.com/linux/static/stable/x86_64/docker-26.1.4.tgz | tar -xz -C /usr/local/bin --strip-components=1 docker/docker else echo "Neither curl nor wget found! Attempting package manager install..." if command -v apt-get >/dev/null 2>&1; then apt-get update && apt-get install -y docker.io elif command -v apk >/dev/null 2>&1; then apk add --no-cache docker-cli else echo "Cannot install Docker CLI!" exit 1 fi fi else echo "Docker CLI already installed." fi docker --version - name: Log in to Gitea Package Registry shell: sh run: | if [ -n "${{ env.REGISTRY_LAN_IP }}" ]; then echo "${{ env.REGISTRY_LAN_IP }} ${{ env.REGISTRY }}" >> /etc/hosts fi if [ -z "${{ secrets.REGISTRY_TOKEN }}" ]; then echo "Missing REGISTRY_TOKEN secret." echo "Create a Gitea personal access token for MrDiderot with package Read and Write permission." exit 1 fi echo "${{ secrets.REGISTRY_TOKEN }}" | docker login "${{ env.REGISTRY }}" -u "${{ env.REGISTRY_USER }}" --password-stdin - name: Build and push Docker image shell: sh run: | echo "Workspace: $PWD" echo "Top-level files:" ls -la if [ ! -f Dockerfile ]; then echo "Could not find root Dockerfile in workspace." exit 1 fi docker build \ -f Dockerfile \ -t ${{ env.REGISTRY_IMAGE }}:latest \ -t ${{ env.REGISTRY_IMAGE }}:${{ github.sha }} \ . docker push ${{ env.REGISTRY_IMAGE }}:latest docker push ${{ env.REGISTRY_IMAGE }}:${{ github.sha }}