name: Auto Deploy Flask with Docker on: push: branches: - main jobs: deploy: runs-on: self-hosted steps: - name: Checkout code uses: actions/checkout@v4 # Update to the latest version of checkout action - name: Log in to Docker (optional, if using a registry) run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin if: env.DOCKER_REGISTRY # Only run if you push to a registry - name: Build Docker image run: docker build --no-cache -t flask-app:latest . - name: Stop and remove old container run: | docker stop flask-app || true docker rm flask-app || true - name: Run new container run: | docker run -d -p 5000:5000 --name flask-app flask-app:latest