name: Build_Subgen_Dockerfile_GPU on: push: paths: - requirements.txt - Dockerfile workflow_dispatch: jobs: docker: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 - name: Get version from subgen.py id: get_version run: | version=$(grep -oP "subgen_version\s*=\s*'\K[^']+" subgen.py) echo "version=$version" >> "$GITHUB_ENV" - name: Pre-job:free disk space shell: bash run: | set -euo pipefail echo "Disk before cleanup:" df -h / # Prune buildx builder data and docker caches sudo docker builder prune --all --force || true sudo docker system prune -af --volumes || true # Remove temp files sudo rm -rf /tmp/* || true # Remove old buildkit cache if present sudo rm -rf /var/lib/docker/buildkit || true echo "Disk after cleanup:" df -h / - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push GPU Docker image uses: docker/build-push-action@v5 with: context: . push: true tags: | mccloud/subgen:latest mccloud/subgen:${{ env.version }} - name: Post-job:cleanup local docker artifacts if: always() shell: bash run: | set -euo pipefail sudo docker builder prune --all --force || true sudo docker image prune -af || true sudo docker container prune -f || true sudo docker system prune -af --volumes || true df -h /