| name: Docker |
| on: |
| push: |
| branches: |
| - main |
| workflow_dispatch: {} |
| jobs: |
| docker-build: |
| runs-on: ubuntu-latest |
| if: github.repository_owner == 'mosaicml' |
| strategy: |
| matrix: |
| include: |
| - name: '1.13.1_cu117' |
| base_image: mosaicml/pytorch:1.13.1_cu117-python3.10-ubuntu20.04 |
| - name: '2.0.1_cu118' |
| base_image: mosaicml/pytorch:2.0.1_cu118-python3.10-ubuntu20.04 |
|
|
| steps: |
| - name: Maximize Build Space on Worker |
| uses: easimon/maximize-build-space@v4 |
| with: |
| overprovision-lvm: true |
| remove-dotnet: true |
| remove-android: true |
| remove-haskell: true |
|
|
| - name: Checkout |
| uses: actions/checkout@v3 |
|
|
| - name: Setup QEMU |
| uses: docker/setup-qemu-action@v2 |
|
|
| - name: Setup Docker Buildx |
| uses: docker/setup-buildx-action@v2 |
|
|
| - name: Login to DockerHub |
| uses: docker/login-action@v2 |
| with: |
| username: ${{ secrets.DOCKER_HUB_USERNAME }} |
| password: ${{ secrets.DOCKER_HUB_PASSWORD }} |
|
|
| - name: Calculate Docker Image Variables |
| run: | |
| set -euxo pipefail |
| |
| |
| |
| |
| GIT_SHA=$(echo ${{ github.sha }} | cut -c1-7) |
| echo "IMAGE_TAG=${GIT_SHA}" >> ${GITHUB_ENV} |
|
|
| - name: Build and Push the Docker Image |
| uses: docker/build-push-action@v3 |
| with: |
| context: . |
| tags: mosaicml/llm-foundry:${{ matrix.name }}-latest, |
| mosaicml/llm-foundry:${{ matrix.name }}-${{ env.IMAGE_TAG }} |
| push: true |
| cache-from: type=registry,ref=mosaicml/llm-foundry:${{ matrix.name }}-buildcache |
| cache-to: type=registry,ref=mosaicml/llm-foundry:${{ matrix.name }}-buildcache,mode=max |
| build-args: BASE_IMAGE=${{ matrix.base_image }} |
|
|