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@v2 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 run: | set -euo pipefail echo "Disk before cleanup:" df -h / # Prune buildx builder data and docker caches (safe) sudo docker builder prune --all --force || true sudo docker system prune -af --volumes || true # remove temp files sudo rm -rf /tmp/* || true # small safety: remove old Docker buildkit cache dirs (if present) sudo rm -rf /var/lib/docker/buildkit || true echo "Disk after cleanup:" df -h / shell: bash - 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() run: | set -euo pipefail # remove images/containers/build cache used during this job to free disk 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 / shell: bash