Skip to content

publish-docker-inner #13

publish-docker-inner

publish-docker-inner #13

Workflow file for this run

name: publish-docker-inner
on:
workflow_dispatch:
inputs:
image_tag:
required: true
description: 'Set docker image tag. Default is "latest", you can also set "auto" to genterate a formated tag, or input a manual tag'
type: string
default: auto
torch_version:
required: true
description: 'Set docker torch version. Default is "2.8.0"'
type: string
default: '2.8.0'
schedule:
- cron: '00 14 * * 0-4'
jobs:
publish_docker_image:
runs-on: [docker-inner]
env:
IMAGE_NAME: 'registry.h.pjlab.org.cn/ailab-llmrazor/xtuner'
IMAGE_TAG: ${{ inputs.image_tag || 'auto' }}
TORCH_VERSION: ${{ inputs.torch_version || '2.8.0' }}
SCHEDULE_TAG: 'pt28_latest'
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Parse tag
run: |
if [[ "${GITHUB_EVENT_NAME}" == 'schedule' ]]; then
IMAGE_TAG="${SCHEDULE_TAG}"
echo "IMAGE_TAG=${IMAGE_TAG}" >> $GITHUB_ENV
elif [[ "${IMAGE_TAG}" == 'auto' ]]; then
DATE_TODAY="$(date +'%Y%m%d')"
COMMIT_SHA="$(git rev-parse --short HEAD)"
IMAGE_TAG="pt$(echo ${TORCH_VERSION} | awk -F. '{print $1$2}')_${DATE_TODAY}_${COMMIT_SHA}"
echo "IMAGE_TAG=${IMAGE_TAG}" >> $GITHUB_ENV
fi
echo "DOCKER_TAG=${IMAGE_NAME}:${IMAGE_TAG}" >> $GITHUB_ENV
- name: Build image
run: |
cat ${{vars.EXTRA_DOCKERFILE}} >> ${{ github.workspace }}/Dockerfile
echo "IMAGE_NAME: ${IMAGE_NAME}, IMAGE_TAG: ${IMAGE_TAG}"
bash ${{ github.workspace }}/image_build.sh
echo "Built image with tag: ${DOCKER_TAG}"
- name: Push to cluster
run: |
echo "$DOCKER_TAG"
docker login registry.h.pjlab.org.cn -p ${{ secrets.CLUSTER_DOCKERHUB_TOKEN }} -u ${{ secrets.CLUSTER_DOCKERHUB_USERNAME }}
docker push $DOCKER_TAG