68 lines
1.9 KiB
YAML
68 lines
1.9 KiB
YAML
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
|