name: Docker Build & Deploy on: push: branches: [ main, develop ] pull_request: branches: [ main ] jobs: build: runs-on: host steps: - name: Checkout code run: | echo "Current workspace: $(pwd)" # Clean workspace first rm -rf * .git* 2>/dev/null || true # Clone the repository since Gitea runner doesn't auto-checkout echo "Cloning repository..." git clone https://gitea.skalas.org/jskala/NFOguard.git /tmp/repo cp -r /tmp/repo/* . cp -r /tmp/repo/.* . 2>/dev/null || true rm -rf /tmp/repo echo "Repository cloned successfully" ls -la echo "Checking Dockerfile:" head -30 Dockerfile - name: Check Docker availability run: | echo "Checking Docker installation..." which docker || (echo "Docker not found in PATH" && exit 1) docker --version || (echo "Docker not available" && exit 1) docker info || (echo "Docker daemon not running" && exit 1) - name: Build Docker image run: | echo "Building Docker image..." docker build -t nfoguard:latest . docker tag nfoguard:latest nfoguard:${{ github.sha }} docker tag nfoguard:latest gitea.skalas.org/jskala/nfoguard:latest docker tag nfoguard:latest gitea.skalas.org/jskala/nfoguard:${{ github.sha }} echo "Docker image built successfully" - name: Login to Gitea registry run: | echo "Logging into Gitea container registry..." # Use a temporary config location to avoid permission issues export DOCKER_CONFIG=/tmp/docker-config mkdir -p $DOCKER_CONFIG echo "${{ secrets.token }}" | docker --config $DOCKER_CONFIG login gitea.skalas.org -u "${{ secrets.username }}" --password-stdin echo "Login successful, setting up config for push commands..." - name: Push to Gitea registry run: | echo "Pushing to Gitea container registry..." # Use the same config location for push export DOCKER_CONFIG=/tmp/docker-config docker --config $DOCKER_CONFIG push gitea.skalas.org/jskala/nfoguard:latest docker --config $DOCKER_CONFIG push gitea.skalas.org/jskala/nfoguard:${{ github.sha }} echo "Images pushed successfully" deploy: needs: build runs-on: host if: github.ref == 'refs/heads/main' steps: - name: Deploy application run: | echo "Deploying application..." # Add your deployment commands here # Examples: # docker-compose pull # docker-compose up -d # or # docker stop nfoguard || true # docker run -d --name nfoguard -p 8080:8080 nfoguard:latest echo "Deployment completed"